Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.trapezium.chisel
Class Optimizer  view Optimizer download Optimizer.java

java.lang.Object
  extended bycom.trapezium.chisel.Optimizer
All Implemented Interfaces:
java.util.EventListener, NodeLocatorListener, OptionHolder

public abstract class Optimizer
extends java.lang.Object
implements NodeLocatorListener, OptionHolder

The Optimizer is the base class for all chisels. It handles replacing a range of tokens through the replaceRange method.


Field Summary
(package private)  java.lang.String actionMessage
          Get a message used for display on status line
(package private)  java.util.Vector additionalNodes
           
(package private)  boolean allNodes
           
protected  java.lang.String baseFileName
           
protected  java.lang.String baseFilePath
           
(package private)  boolean coordinateOwnerNode
           
 com.trapezium.parse.TokenEnumerator dataSource
           
(package private)  boolean defOnly
           
(package private)  boolean interpolatorNode
           
(package private)  java.lang.String nodeName
           
(package private)  RangeReplacer rangeReplacer
           
(package private)  boolean specificNodeType
           
 
Constructor Summary
private Optimizer()
          Not available ...
  Optimizer(java.lang.String nodeName, java.lang.String actionMessage)
           
 
Method Summary
 void addAdditionalNode(java.lang.String nodeName)
           
 void attemptOptimization(com.trapezium.vrml.node.Node node)
          template, subclasses override this if they modify Nodes
 void attemptOptimization(com.trapezium.vrml.ROUTE route)
          template, subclasses override this if they modify ROUTEs
 java.lang.Object booleanToOptionValue(boolean value)
          Convert an integer to an option value
 void eofTokens(int firstTokenOffset, int lastTokenOffset)
           
 java.lang.String getActionMessage()
           
 java.lang.String getAdditionalName(int offset)
           
 java.lang.String getNodeName()
           
 int getNumberAdditionalNames()
           
 int getNumberOptions()
          Get the number of control options available for this chisel.
 java.lang.Class getOptionClass(int optionOffset)
          Get the class for an option
 java.lang.Object getOptionConstraints(int optionOffset)
          Get current option value
 java.lang.String getOptionLabel(int optionOffset)
          Get a specific control option label
 java.lang.Object getOptionValue(int optionOffset)
          Get current option value
 boolean hasFinalCode()
          default, chisel has no final code generation
 java.lang.Object intToOptionValue(int value)
          Convert an integer to an option value
 boolean isDEFlistener()
          NodeLocatorListener interface, subclasses override this to return true to force "attemptOptimization" calls on DEF nodes.
 boolean isDEFUSElistener()
          NodeLocatorListener interface, subclasses override this to return true to force "attemptOptimization" calls on DEF/USE nodes.
 boolean isPROTOlistener()
          template, subclasses override tihs to return true if they want access to the interior of PROTOs.
 boolean isROUTElistener()
          template, subclasses override this to return true if they want to define the "attemptOptimization( ROUTE )" method.
 void nodeFound(NodeFoundEvent nfe)
           
abstract  void optimize(TokenPrinter tp, java.lang.Object param, int startTokenOffset, int endTokenOffset)
           
 boolean optimizePossible(java.lang.Object param)
           
 boolean optionValueToBoolean(java.lang.Object value)
          Convert an option value to a boolean
 int optionValueToInt(java.lang.Object value)
          Convert an option value to an integer
 void printFinalCode(TokenPrinter tp)
          method which prints final code, subclasses may override this
protected  int printNumbers(TokenPrinter tp, int scanner, int endTokenOffset, int n)
          Print a sequence of numbers
protected  void replaceIndexFaceMultiple(TokenPrinter tp, com.trapezium.vrml.fields.Field indexField, int[] faceMultiple, int faceCount)
          Replace an index field when there is one index entry per face, and that one face has been converted into several faces.
 void replaceRange(int firstTokenOffset, int lastTokenOFfset, java.lang.Object param)
           
 void replaceStartEnd(int oldStartOffset, int oldEndOffset, int newStartOffset, int newEndOffset)
           
protected  void replaceValueNodeFaceMultiple(TokenPrinter tp, com.trapezium.vrml.fields.Field valueNode, int[] faceMultiple, int faceCount)
           
 void reset()
          reset optimizer, subclasses may need this
 void routeFound(RouteFoundEvent rfe)
           
 void setBaseFileName(java.lang.String baseFileName)
          Set the base file name for the source file being processed
 void setBaseFilePath(java.lang.String baseFilePath)
          Set the base file path for the source file being processed
 void setDataSource(com.trapezium.parse.TokenEnumerator v)
           
(package private)  void setFlags()
           
 void setNodeName(java.lang.String nodeName)
           
 void setOptionConstraints(int optionOffset, java.lang.Object constraints)
          Set option value
 void setOptionValue(int optionOffset, java.lang.Object value)
          Set option value
 void setRangeReplacer(RangeReplacer rr)
           
 void summarize(java.io.PrintStream ps)
          default summary (none), used by command line version
(package private)  void tryAdditional(NodeFoundEvent nfe)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rangeReplacer

RangeReplacer rangeReplacer

nodeName

java.lang.String nodeName

additionalNodes

java.util.Vector additionalNodes

specificNodeType

boolean specificNodeType

allNodes

boolean allNodes

coordinateOwnerNode

boolean coordinateOwnerNode

interpolatorNode

boolean interpolatorNode

defOnly

boolean defOnly

baseFilePath

protected java.lang.String baseFilePath

baseFileName

protected java.lang.String baseFileName

dataSource

public com.trapezium.parse.TokenEnumerator dataSource

actionMessage

java.lang.String actionMessage
Get a message used for display on status line

Constructor Detail

Optimizer

public Optimizer(java.lang.String nodeName,
                 java.lang.String actionMessage)

Optimizer

private Optimizer()
Not available ...

Method Detail

getNodeName

public java.lang.String getNodeName()
Specified by:
getNodeName in interface NodeLocatorListener

setNodeName

public void setNodeName(java.lang.String nodeName)

getNumberAdditionalNames

public int getNumberAdditionalNames()
Specified by:
getNumberAdditionalNames in interface NodeLocatorListener

getAdditionalName

public java.lang.String getAdditionalName(int offset)
Specified by:
getAdditionalName in interface NodeLocatorListener

addAdditionalNode

public void addAdditionalNode(java.lang.String nodeName)

setFlags

void setFlags()

reset

public void reset()
reset optimizer, subclasses may need this


getActionMessage

public java.lang.String getActionMessage()

getNumberOptions

public int getNumberOptions()
Get the number of control options available for this chisel.

Specified by:
getNumberOptions in interface OptionHolder

getOptionClass

public java.lang.Class getOptionClass(int optionOffset)
Get the class for an option

Specified by:
getOptionClass in interface OptionHolder

getOptionLabel

public java.lang.String getOptionLabel(int optionOffset)
Get a specific control option label

Specified by:
getOptionLabel in interface OptionHolder

getOptionValue

public java.lang.Object getOptionValue(int optionOffset)
Get current option value

Specified by:
getOptionValue in interface OptionHolder

setOptionValue

public void setOptionValue(int optionOffset,
                           java.lang.Object value)
Set option value

Specified by:
setOptionValue in interface OptionHolder

getOptionConstraints

public java.lang.Object getOptionConstraints(int optionOffset)
Get current option value

Specified by:
getOptionConstraints in interface OptionHolder

setOptionConstraints

public void setOptionConstraints(int optionOffset,
                                 java.lang.Object constraints)
Set option value

Specified by:
setOptionConstraints in interface OptionHolder

optionValueToBoolean

public boolean optionValueToBoolean(java.lang.Object value)
Convert an option value to a boolean


booleanToOptionValue

public java.lang.Object booleanToOptionValue(boolean value)
Convert an integer to an option value


optionValueToInt

public int optionValueToInt(java.lang.Object value)
Convert an option value to an integer


intToOptionValue

public java.lang.Object intToOptionValue(int value)
Convert an integer to an option value


setBaseFilePath

public void setBaseFilePath(java.lang.String baseFilePath)
Set the base file path for the source file being processed


setBaseFileName

public void setBaseFileName(java.lang.String baseFileName)
Set the base file name for the source file being processed


setRangeReplacer

public void setRangeReplacer(RangeReplacer rr)

setDataSource

public void setDataSource(com.trapezium.parse.TokenEnumerator v)

replaceRange

public void replaceRange(int firstTokenOffset,
                         int lastTokenOFfset,
                         java.lang.Object param)

replaceStartEnd

public void replaceStartEnd(int oldStartOffset,
                            int oldEndOffset,
                            int newStartOffset,
                            int newEndOffset)

eofTokens

public void eofTokens(int firstTokenOffset,
                      int lastTokenOffset)

tryAdditional

void tryAdditional(NodeFoundEvent nfe)

nodeFound

public void nodeFound(NodeFoundEvent nfe)
Specified by:
nodeFound in interface NodeLocatorListener

routeFound

public void routeFound(RouteFoundEvent rfe)
Specified by:
routeFound in interface NodeLocatorListener

optimizePossible

public boolean optimizePossible(java.lang.Object param)

isDEFUSElistener

public boolean isDEFUSElistener()
NodeLocatorListener interface, subclasses override this to return true to force "attemptOptimization" calls on DEF/USE nodes.

Specified by:
isDEFUSElistener in interface NodeLocatorListener

isDEFlistener

public boolean isDEFlistener()
NodeLocatorListener interface, subclasses override this to return true to force "attemptOptimization" calls on DEF nodes.

Specified by:
isDEFlistener in interface NodeLocatorListener

isROUTElistener

public boolean isROUTElistener()
template, subclasses override this to return true if they want to define the "attemptOptimization( ROUTE )" method.

Specified by:
isROUTElistener in interface NodeLocatorListener

isPROTOlistener

public boolean isPROTOlistener()
template, subclasses override tihs to return true if they want access to the interior of PROTOs.

Specified by:
isPROTOlistener in interface NodeLocatorListener

attemptOptimization

public void attemptOptimization(com.trapezium.vrml.ROUTE route)
template, subclasses override this if they modify ROUTEs


attemptOptimization

public void attemptOptimization(com.trapezium.vrml.node.Node node)
template, subclasses override this if they modify Nodes


printNumbers

protected int printNumbers(TokenPrinter tp,
                           int scanner,
                           int endTokenOffset,
                           int n)
Print a sequence of numbers


replaceIndexFaceMultiple

protected void replaceIndexFaceMultiple(TokenPrinter tp,
                                        com.trapezium.vrml.fields.Field indexField,
                                        int[] faceMultiple,
                                        int faceCount)
Replace an index field when there is one index entry per face, and that one face has been converted into several faces.


replaceValueNodeFaceMultiple

protected void replaceValueNodeFaceMultiple(TokenPrinter tp,
                                            com.trapezium.vrml.fields.Field valueNode,
                                            int[] faceMultiple,
                                            int faceCount)

optimize

public abstract void optimize(TokenPrinter tp,
                              java.lang.Object param,
                              int startTokenOffset,
                              int endTokenOffset)

summarize

public void summarize(java.io.PrintStream ps)
default summary (none), used by command line version


hasFinalCode

public boolean hasFinalCode()
default, chisel has no final code generation


printFinalCode

public void printFinalCode(TokenPrinter tp)
method which prints final code, subclasses may override this