org.makumba.providers.datadefinition.mdd
Class MDDAnalyzeWalker

java.lang.Object
  extended by antlr.TreeParser
      extended by org.makumba.providers.datadefinition.mdd.MDDAnalyzeBaseWalker
          extended by org.makumba.providers.datadefinition.mdd.MDDAnalyzeWalker
All Implemented Interfaces:
MDDAnalyzeBaseWalkerTokenTypes

public class MDDAnalyzeWalker
extends MDDAnalyzeBaseWalker

MDD analysis walker, collects useful information for creation of DataDefinition and FieldDefinition

Version:
$Id: MDDAnalyzeWalker.java,v 1.1 May 2, 2009 10:56:49 PM manu Exp $
Author:
Manuel Gay

Field Summary
protected  HashMap<String,FieldNode> typeShorthands
           
 
Fields inherited from class org.makumba.providers.datadefinition.mdd.MDDAnalyzeBaseWalker
_tokenNames, _tokenSet_0, _tokenSet_1, error, mdd, origin, typeName
 
Fields inherited from class antlr.TreeParser
_retTree, astFactory, ASTNULL, inputState, returnAST, tokenNames, traceDepth
 
Fields inherited from interface org.makumba.providers.datadefinition.mdd.MDDAnalyzeBaseWalkerTokenTypes
BINARY, BOOLEAN, CHAR, CHAR_LENGTH, CHARENUM, CHARENUMELEMENT, COLON, COMMA, COMPARE, COMPARE_EXPRESSION, DATE, DEPRECATED, DOT, EOF, EQ, ESC, EXMARK, FIELD, FIELDCOMMENT, FIELDNAME, FIELDTYPE, FILE, FIXED, FUNCTION, FUNCTION_ARGUMENT, FUNCTION_ARGUMENT_NAME, FUNCTION_BODY, FUNCTION_NAME, GE, GT, HEX_DIGIT, ID_LETTER, ID_START_LETTER, IDENT, INCLUDE, INCLUDED, INT, INTENUM, INTENUMINDEX, INTENUMTEXT, INTMARK, LE, LEFT_CUBR, LEFT_PAREN, LEFT_SQBR, LENGTH, LIKE, LINEBREAK, LITERAL_empty, LITERAL_not, LITERAL_notNull, LITERAL_null, LOWER, LT, MATCHES, MESSAGE, MINUS, MODIFIER, NAN, NATIVE_MESSAGE, NE, NEGATIVE_INTEGER, NOTBOOLEAN, NOTEMPTY, NOTINT, NOTNULL, NOTREAL, NOW, NULL_TREE_LOOKAHEAD, NUM_DOUBLE, NUM_FLOAT, NUM_LONG, NUMBER, PARENTFIELDNAME, PATH, PERCENT, PLUS, POINTED_TYPE, POSITIVE_INTEGER, PTR, PTRONE, QUOTMARK, RANGE, RANGE_FROM, RANGE_TO, REAL, RIGHT_CUBR, RIGHT_PAREN, RIGHT_SQBR, SEMICOLON, SESSIONVAR_NAME, SET, SETCHARENUM, SETCOMPLEX, SETINTENUM, SL_COMMENT, SQL_NE, STRING_LITERAL, SUBFIELD, SUBFIELDNAME, SUBFIELDTYPE, TEXT, TITLE, TITLEFIELD, TITLEFIELDFIELD, TITLEFIELDFUNCTION, TODAY, TRIPLE_DOT, TYPE, TYPEDEF, TYPENAME, UNIQUE, UNKNOWN_TYPE, UPPER, VALIDATION, VALIDATIONNAME, WHITESPACE
 
Constructor Summary
MDDAnalyzeWalker(String typeName, URL origin, MDDFactory factory, MDDParser parser, boolean strictTypeCheck)
           
 
Method Summary
protected  void addField(MDDNode mdd, FieldNode field)
           
protected  void addFunction(MDDNode mdd, FunctionNode function, antlr.collections.AST originalFunctionDeclaration, FieldNode subField)
           
protected  void addModifier(FieldNode field, String modifier)
           
protected  void addNativeValidationRuleMessage(antlr.collections.AST fieldName, antlr.collections.AST errorType, String message)
           
protected  void addSubfield(FieldNode parent, FieldNode field)
           
protected  void addTypeShorthand(antlr.collections.AST name, FieldNode fieldType)
           
protected  void addValidationRuleArgument(String name, ValidationRuleNode n)
           
protected  void checkFieldType(antlr.collections.AST type, FieldNode field)
           
protected  void checkRuleApplicability(ValidationRuleNode validation)
           
protected  void checkSubFieldName(String parentName, antlr.collections.AST name)
           
protected  void checkSubFieldType(antlr.collections.AST type, FieldNode field)
           
protected  ValidationRuleNode createMultiFieldValidationRule(antlr.collections.AST originAST, ValidationType type, FieldNode subField)
           
protected  ValidationRuleNode createSingleFieldValidationRule(antlr.collections.AST originAST, String fieldName, ValidationType type, FieldNode subField)
           
protected  FieldNode getParentField(antlr.collections.AST parentField)
           
 
Methods inherited from class org.makumba.providers.datadefinition.mdd.MDDAnalyzeBaseWalker
charEnumBody, comparisonValidationRule, dataDefinition, declaration, errorType, fieldDeclaration, fieldType, functionArgumentDeclaration, functionCall, functionDeclaration, intEnumBody, lengthValidationRule, multiUniquenessValidationRule, nativeValidationRuleMessage, rangeValidationRule, regexValidationRule, reportError, reportError, subField, subFieldDeclaration, titleDeclaration, typeDeclaration, validationRuleDeclaration
 
Methods inherited from class antlr.TreeParser
getAST, getASTFactory, getTokenName, getTokenNames, match, match, matchNot, panic, reportWarning, setASTFactory, setASTNodeClass, setASTNodeType, traceIn, traceIndent, traceOut
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

typeShorthands

protected HashMap<String,FieldNode> typeShorthands
Constructor Detail

MDDAnalyzeWalker

public MDDAnalyzeWalker(String typeName,
                        URL origin,
                        MDDFactory factory,
                        MDDParser parser,
                        boolean strictTypeCheck)
Method Detail

checkFieldType

protected void checkFieldType(antlr.collections.AST type,
                              FieldNode field)
Overrides:
checkFieldType in class MDDAnalyzeBaseWalker

checkSubFieldType

protected void checkSubFieldType(antlr.collections.AST type,
                                 FieldNode field)
Overrides:
checkSubFieldType in class MDDAnalyzeBaseWalker

checkSubFieldName

protected void checkSubFieldName(String parentName,
                                 antlr.collections.AST name)
Overrides:
checkSubFieldName in class MDDAnalyzeBaseWalker

getParentField

protected FieldNode getParentField(antlr.collections.AST parentField)
Overrides:
getParentField in class MDDAnalyzeBaseWalker

addTypeShorthand

protected void addTypeShorthand(antlr.collections.AST name,
                                FieldNode fieldType)
Overrides:
addTypeShorthand in class MDDAnalyzeBaseWalker

addModifier

protected void addModifier(FieldNode field,
                           String modifier)
Overrides:
addModifier in class MDDAnalyzeBaseWalker

addField

protected void addField(MDDNode mdd,
                        FieldNode field)
Overrides:
addField in class MDDAnalyzeBaseWalker

addSubfield

protected void addSubfield(FieldNode parent,
                           FieldNode field)
Overrides:
addSubfield in class MDDAnalyzeBaseWalker

addFunction

protected void addFunction(MDDNode mdd,
                           FunctionNode function,
                           antlr.collections.AST originalFunctionDeclaration,
                           FieldNode subField)
Overrides:
addFunction in class MDDAnalyzeBaseWalker

createMultiFieldValidationRule

protected ValidationRuleNode createMultiFieldValidationRule(antlr.collections.AST originAST,
                                                            ValidationType type,
                                                            FieldNode subField)
Overrides:
createMultiFieldValidationRule in class MDDAnalyzeBaseWalker

createSingleFieldValidationRule

protected ValidationRuleNode createSingleFieldValidationRule(antlr.collections.AST originAST,
                                                             String fieldName,
                                                             ValidationType type,
                                                             FieldNode subField)
Overrides:
createSingleFieldValidationRule in class MDDAnalyzeBaseWalker

addValidationRuleArgument

protected void addValidationRuleArgument(String name,
                                         ValidationRuleNode n)
Overrides:
addValidationRuleArgument in class MDDAnalyzeBaseWalker

checkRuleApplicability

protected void checkRuleApplicability(ValidationRuleNode validation)
Overrides:
checkRuleApplicability in class MDDAnalyzeBaseWalker

addNativeValidationRuleMessage

protected void addNativeValidationRuleMessage(antlr.collections.AST fieldName,
                                              antlr.collections.AST errorType,
                                              String message)
Overrides:
addNativeValidationRuleMessage in class MDDAnalyzeBaseWalker