schmitzm.data
Class RasterOperationTreeParser

java.lang.Object
  extended by schmitzm.lang.tree.OperationTreeParser
      extended by schmitzm.data.RasterOperationTreeParser

public class RasterOperationTreeParser
extends OperationTreeParser

Diese Klasse stellt einen Parser fuer einen Raster-Operatorbaum dar. Dieser erstellt einen Raster-Operatorbaum aus einem Formel-String, der neben den in OperationTreeParser beschriebenen Komponenten Raster- und Filter-Referenzen enthalten darf.

Raster-Referenz: RasterOperationTree.RasterReferenceNode
Eine Raster-Referenz wird durch einen int-Wert dargestellt, der von einem # eingeleitet wird (z.B. #0). Bei der Auswertung des Operatorbaums (auf einer bestimmten Raster-Koordinate) wird diese Referenz durch den entsprechenden Zell-Wert des referenzierten Rasters ersetzt.

Filter-Referenz: RasterOperationTree.FilterReferenceNode
Eine Filter-Referenz wird durch einen int-Wert dargestellt, der von einem F eingeleitet wird (z.B. F1(.)) Die Auswertung eines Filters kann nur direkt auf einer Raster-Referenz erfolgen, da ansonsten keine zellen-weise Abarbeitung des Rasters mehr moeglich ist, sondern komplette Raster als Zwischenergebnisse ausgewertet werden muessten.
Koordinaten-Referenz: X oder Y
Stellt einen Alias fuer die X- bzw. Y-Koordinate der Rasterzelle dar, die verarbeitet wird.
NoData: Konstante NoData und Funktion isNoData(.)
Stellen einen Alias fuer NaN, bzw. isNaN(.) dar.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Field Summary
 
Fields inherited from class schmitzm.lang.tree.OperationTreeParser
delimiter, openBrackets, tok
 
Constructor Summary
RasterOperationTreeParser()
           
 
Method Summary
 RasterOperationTree parse(String rule)
          Erstellt einen Raster-Operator-Baum aus einem Formel-String.
protected  BinaryTreeNode parseLiteral()
          Parst das naechste Literal aus dem Tokenizer OperationTreeParser.tok.
 
Methods inherited from class schmitzm.lang.tree.OperationTreeParser
checkCorrespondingBrackets, getAdditionOperatorChars, getBooleanOperatorChars, getClosingBracketChars, getCompareOperatorChars, getConnectingOperatorChars, getConstantFromString, getDoubleFromString, getIntFromString, getMaximumOperatorConnectivity, getMultiplyOperatorChars, getOpeningBracketChars, getOperatorChars, getOperatorConnectivity, getParameterSeperatorChars, getStringEncapsulationChars, isAdditionOperator, isBooleanOperator, isClosingBracket, isCompareOperator, isConnectingOperator, isMultiplyOperator, isOpeningBracket, isOperatorChar, isParameterSeperator, isStringEncapsulationChar, nextNonWSToken, parseOperand, parseRule, parseRulePart, pushbackWithWSToken, throwParseError, throwParseError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RasterOperationTreeParser

public RasterOperationTreeParser()
Method Detail

parse

public RasterOperationTree parse(String rule)
Erstellt einen Raster-Operator-Baum aus einem Formel-String.

Overrides:
parse in class OperationTreeParser
Parameters:
rule - Formel

parseLiteral

protected BinaryTreeNode parseLiteral()
Parst das naechste Literal aus dem Tokenizer OperationTreeParser.tok. Erweitert die Funktionalitaet der Oberklasse, so dass neben Konstanten auch Referenznummern auf ein Raster (eingeleitet durch #) und Referenznummern auf einen Filter (eingeleitet durch F) angegeben werden koennen. Zudem koennen die Konstanten X und Y verwendet werden, um die horizontale und vertikale Raster-Koordinate zu referenzieren und NoData, bzw. isNoData(.) als Alias fuer NaN, bzw. isNaN verwendet werden.

Overrides:
parseLiteral in class OperationTreeParser