CubeTwister 2.0alpha142 2012-02-11

ch.randelshofer.rubik.parser
Class InversionNode

java.lang.Object
  extended by javax.swing.tree.DefaultMutableTreeNode
      extended by ch.randelshofer.rubik.parser.Node
          extended by ch.randelshofer.rubik.parser.InversionNode
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, javax.swing.tree.MutableTreeNode, javax.swing.tree.TreeNode

public class InversionNode
extends Node

An InversionNode holds one child A. The side effect of an inversion node is A'.

Version:
5.1 2010-02-27 Special treatment of a single MoveNode child in method toResolvedList. end position of a single child Move node.
5.0.1 2007-07-19 Implemented method applyTo.
5.0 2005-01-31 Reworked.
1.1 20004-03-28 Two nested inversions cancel each other out.
1.0 2001-07-25
Author:
Werner Randelshofer, Hausmatt 10, Immensee, CH-6405, Switzerland
See Also:
ScriptParser, Serialized Form

Field Summary
 
Fields inherited from class ch.randelshofer.rubik.parser.Node
endpos, layerCount, startpos, symbol
 
Fields inherited from class javax.swing.tree.DefaultMutableTreeNode
allowsChildren, children, EMPTY_ENUMERATION, parent, userObject
 
Constructor Summary
InversionNode(int layerCount)
           
InversionNode(int layerCount, int startpos, int endpos)
           
 
Method Summary
 void applyTo(Cube cube, boolean inverse)
          Applies the symbol represented by this node to the cube.
 java.util.Enumeration resolvedEnumeration(boolean inverse)
          Enumerate this symbol and all of its children.
 java.util.List toResolvedList()
           
 void writeTokens(java.io.PrintWriter w, Notation p, java.util.Map<java.lang.String,MacroNode> macroMap)
          Writes the token(s) represented by the subtree starting at this node.
 
Methods inherited from class ch.randelshofer.rubik.parser.Node
cloneSubtree, dumpTree, enumerateChildrenReversed, getBlockTurnCount, getChildAt, getChildren, getEndPosition, getFaceTurnCount, getLayerTurnCount, getQuarterTurnCount, getStartPosition, getSymbol, inverse, overwritePositions, reflect, setEndPosition, setStartPosition, toString, toString, toString, transform, transform, transformOrientation
 
Methods inherited from class javax.swing.tree.DefaultMutableTreeNode
add, breadthFirstEnumeration, children, clone, depthFirstEnumeration, getAllowsChildren, getChildAfter, getChildBefore, getChildCount, getDepth, getFirstChild, getFirstLeaf, getIndex, getLastChild, getLastLeaf, getLeafCount, getLevel, getNextLeaf, getNextNode, getNextSibling, getParent, getPath, getPathToRoot, getPreviousLeaf, getPreviousNode, getPreviousSibling, getRoot, getSharedAncestor, getSiblingCount, getUserObject, getUserObjectPath, insert, isLeaf, isNodeAncestor, isNodeChild, isNodeDescendant, isNodeRelated, isNodeSibling, isRoot, pathFromAncestorEnumeration, postorderEnumeration, preorderEnumeration, remove, remove, removeAllChildren, removeFromParent, setAllowsChildren, setParent, setUserObject
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InversionNode

public InversionNode(int layerCount)

InversionNode

public InversionNode(int layerCount,
                     int startpos,
                     int endpos)
Method Detail

applyTo

public void applyTo(Cube cube,
                    boolean inverse)
Applies the symbol represented by this node to the cube.

Overrides:
applyTo in class Node
Parameters:
cube - A cube to be transformed by this symbol.
inverse - If true, the transform will be done in inverse order.

resolvedEnumeration

public java.util.Enumeration resolvedEnumeration(boolean inverse)
Enumerate this symbol and all of its children. Special operators (i. e. repeat and inverse) are resolved before the children are returned.

Overrides:
resolvedEnumeration in class Node
Parameters:
inverse - Set to true if you wish to get an inverted enumeration.

writeTokens

public void writeTokens(java.io.PrintWriter w,
                        Notation p,
                        java.util.Map<java.lang.String,MacroNode> macroMap)
                 throws java.io.IOException
Description copied from class: Node
Writes the token(s) represented by the subtree starting at this node. The syntax and the string representations of the tokens are provided by the parser.

Overrides:
writeTokens in class Node
Parameters:
w - This is where the tokens are written to.
p - The notation which provides the tokens.
macroMap - Local macros which are preserved by the translation.
Throws:
java.io.IOException

toResolvedList

public java.util.List toResolvedList()
Overrides:
toResolvedList in class Node

(c) Werner Randelshofer.
All rights reserved.