CubeTwister 2.0alpha142 2012-02-11

ch.randelshofer.rubik.parser
Class RepetitionNode

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

public class RepetitionNode
extends Node

RepetitionNode.

Version:
5.1.1 Repetition node must not resolve to a single MoveNode if result is an illegal move.
5.1 2010-02-27 Special treatment of a single MoveNode child in method toResolvedList.
5.0 2005-01-31 Reworked.
1.0.2 2003-06-20 WriteTokens should catch IOException when attempting to write brackets in a notation that does not support repetitions.
1.0.1 2002-12-30 Bug in inner class ResolvedEnumeration fixed.
1.0 2002-07-24
Author:
werni
See Also:
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
RepetitionNode(int layerCount)
          Creates new RepetitionNode
RepetitionNode(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 enumerateChildrenReversed()
          Enumerates the direct children of this node in reverse order.
 int getBlockTurnCount()
          Gets the block turn count of the subtree starting at this node.
 int getFaceTurnCount()
          Gets the face turn count of the subtree starting at this node.
 int getLayerTurnCount()
          Gets the layer turn count of the subtree starting at this node.
 int getQuarterTurnCount()
          Gets the quarter turn count of the subtree starting at this node.
 int getRepeatCount()
           
 java.util.Enumeration resolvedEnumeration(boolean inverse)
          Enumerate this symbol and all of its children.
 void setRepeatCount(int r)
           
 java.util.List<Node> toResolvedList()
           
 java.lang.String toString()
          Returns a string representation of this node.
 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, getChildAt, getChildren, getEndPosition, getStartPosition, getSymbol, inverse, overwritePositions, reflect, setEndPosition, setStartPosition, 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

RepetitionNode

public RepetitionNode(int layerCount)
Creates new RepetitionNode


RepetitionNode

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

setRepeatCount

public void setRepeatCount(int r)

getRepeatCount

public int getRepeatCount()

applyTo

public void applyTo(Cube cube,
                    boolean inverse)
Description copied from class: Node
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.

getFaceTurnCount

public int getFaceTurnCount()
Gets the face turn count of the subtree starting at this node.

Overrides:
getFaceTurnCount in class Node

getLayerTurnCount

public int getLayerTurnCount()
Gets the layer turn count of the subtree starting at this node.

Overrides:
getLayerTurnCount in class Node

getBlockTurnCount

public int getBlockTurnCount()
Gets the block turn count of the subtree starting at this node.

Overrides:
getBlockTurnCount in class Node

getQuarterTurnCount

public int getQuarterTurnCount()
Gets the quarter turn count of the subtree starting at this node.

Overrides:
getQuarterTurnCount in class Node

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.

enumerateChildrenReversed

public java.util.Enumeration enumerateChildrenReversed()
Description copied from class: Node
Enumerates the direct children of this node in reverse order.

Overrides:
enumerateChildrenReversed in class Node

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<Node> toResolvedList()
Overrides:
toResolvedList in class Node

toString

public java.lang.String toString()
Description copied from class: Node
Returns a string representation of this node. Use for debugging only.

Overrides:
toString in class Node

(c) Werner Randelshofer.
All rights reserved.