/** * Constructor. * * @param pTree The tree node representing a class declaration. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2AnnotationDeclaration(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.ANNOTATION_DECLARATION, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.AT) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing a variable declarator * identifier. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2VariableDeclaratorIdentifier(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.VARIABLE_DECLARATOR_IDENTIFIER,pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.IDENT) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing the literal. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2Identifier(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ExpressionType.IDENTIFIER, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.IDENT) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The root node of a parenthesized expression. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ParenthesizedExpression(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ExpressionType.PARENTHESIZED_EXPRESSION, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.PARENTESIZED_EXPR) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing an <code>throws</code> clause. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ThrowsClause(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.THROWS_CLAUSE, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.THROWS_CLAUSE) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing a <code>continue</code> * statement. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ContinueStatement(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ElementType.CONTINUE_STATEMENT,pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.CONTINUE) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } if (pTree.ChildCount == 1) { mHasLabelIdentifier = true; } }
/** * Constructor. * * @param pTree The tree node representing a <code>break</code> statement. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2BreakStatement(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ElementType.BREAK_STATEMENT, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.BREAK) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } if (pTree.ChildCount == 1) { mLabelNode = (AST2JSOMTree)pTree.GetChild(0); } }
/** * Constructor. * * @param pTree The tree node representing a formal parameter declaration. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. * */ public AST2FormalParameterDeclaration(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.FORMAL_PARAMETER_DECLARATION, pTokenRewriteStream) { if (pTree.Type == JavaTreeParser.FORMAL_PARAM_VARARG_DECL) { mIsVarArgParam = true; } else if (pTree.Type != JavaTreeParser.FORMAL_PARAM_STD_DECL) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } mHasModifier = pTree.GetChild(0).ChildCount > 0; }
/** * Constructor. * * @param pTree The tree node representing a <code>switch</code> statement. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2TryStatement(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ElementType.TRY_STATEMENT,pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.TRY) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } if (pTree.ChildCount > 1) { // The next child may be an 'catch' clause list or a 'finally' // clause. AST2JSOMTree child = (AST2JSOMTree)pTree.GetChild(1); if (child.Type == JavaTreeParser.CATCH_CLAUSE_LIST) { if (child.ChildCount > 0) { mCatchClauseListTree = child; } if (pTree.ChildCount == 3) { // Switch forward to the 'finally' clause. child = (AST2JSOMTree)pTree.GetChild(2); } else { child = null; } } if (child != null) { mFinallyBlockScopeTree = child; } } }
/** * Constructor. * * @param pTree The tree node representing a <code>throw</code> statement. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ThrowStatement( AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ElementType.THROW_STATEMENT, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.THROW) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * <p> * If classes derived from this class should be recognized by another JSOM * type than <code>JSOMType.VARIABLE_DECLARATION</code> they must call * this constructor via the explicit super constructor call. * * @param pTree The tree node representing a variable declaration. * @param pJSOMType The JSOM type of the new instance. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ protected AST2CommonVariableDeclaration( AST2JSOMTree pTree, JSOMType pJSOMType, TokenRewriteStream pTokenRewriteStream) : base(pTree, pJSOMType, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.VAR_DECLARATION) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } if (pTree.GetChild(0).ChildCount == 0) { mHasModifier = false; } }
/** * Constructor. * * @param pTree The tree node representing a modifier list. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ModifierList(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.MODIFIER_LIST, pTokenRewriteStream) { if (pTree.Type == JavaTreeParser.MODIFIER_LIST) { mIsLocalModifier = false; } else if (pTree.Type == JavaTreeParser.LOCAL_MODIFIER_LIST) { mIsLocalModifier = true; } else { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } resolveModifierList(pTree); }
/** * Constructor. * * @param pTree The tree node representing the literal. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2InstanceofExpression(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ExpressionType.INSTANCEOF_EXPRESSION, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.INSTANCEOF) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing a formal parameter list. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2FormalParameterList(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.FORMAL_PARAMETER_LIST, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.FORMAL_PARAM_LIST) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } mIsEmptyFormalParameterList = pTree.ChildCount == 0; }
/** * Constructor. * * @param pTree The tree node representing an annotation. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2Annotation(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.ANNOTATION, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.AT) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } if ( pTree.ChildCount == 2 && pTree.GetChild(1).ChildCount == 1) { mHasInitializers = true; } }
/** * Constructor. * * @param pTree The tree node representing local class declaration. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2LocalClassDeclaration(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.STATEMENT_BLOCK_ELEMENT, pTokenRewriteStream) { }
/** * Constructor. * * @param pTree The tree node representing a <code>forEach</code> * statement. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ForEachStatement(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ElementType.FOR_EACH_STATEMENT,pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.FOR_EACH) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } if (pTree.GetChild(0).ChildCount > 0) { mHasModifier = true; } mIdentifierTree = (AST2JSOMTree)pTree.GetChild(2); }
/** * Resolves a qualified type identifier. * * @param pTree The qualified type identifier's root node. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. * * @return A list containing the identifiers from the qualified type * identifier. */ public static List<AST2ComplexTypeIdentifier> resolveQualifiedTypeIdentifier( AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.QUALIFIED_TYPE_IDENT) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } int size = pTree.ChildCount; List<AST2ComplexTypeIdentifier> result = new List<AST2ComplexTypeIdentifier>(size); for (int offset = 0; offset < size; offset++) { result.Add(new AST2ComplexTypeIdentifier((AST2JSOMTree) pTree.GetChild(offset), pTokenRewriteStream)); } return result; }
/** * Resolves the content of the modifier list. * * @param pTree The tree node representing a modifier list. */ private void resolveModifierList(AST2JSOMTree pTree) { int numberOfChildren = pTree.ChildCount; if (numberOfChildren > 0) { mModifierTypes = new List<Modifier>(numberOfChildren); int numberOfAnnotations = 0; for (int offset = 0; offset < numberOfChildren; offset++) { if (pTree.GetChild(offset).Type == JavaTreeParser.AT) { numberOfAnnotations++; } } if (numberOfAnnotations > 0) { mAnnotationTrees = new List<AST2JSOMTree>(numberOfAnnotations); } if (numberOfChildren > numberOfAnnotations) { mHasModifiers = true; } for (int offset = 0; offset < numberOfChildren; offset++) { AST2JSOMTree child = (AST2JSOMTree)pTree.GetChild(offset); switch (child.Type) { // Handle annotations and the modifier 'final' at first // because the rest is irrelevant for local modifiers. case JavaTreeParser.AT: mAnnotationTrees.Add(child); mModifierTypes.Add(Modifier.ANNOTATION); break; case JavaTreeParser.FINAL: mModifierTypes.Add(Modifier.FINAL); break; case JavaTreeParser.PUBLIC: mModifierTypes.Add(Modifier.PUBLIC); break; case JavaTreeParser.PROTECTED: mModifierTypes.Add(Modifier.PROTECTED); break; case JavaTreeParser.PRIVATE: mModifierTypes.Add(Modifier.PRIVATE); break; case JavaTreeParser.STATIC: mModifierTypes.Add(Modifier.STATIC); break; case JavaTreeParser.ABSTRACT: mModifierTypes.Add(Modifier.ABSTRACT); break; case JavaTreeParser.NATIVE: mModifierTypes.Add(Modifier.NATIVE); break; case JavaTreeParser.SYNCHRONIZED: mModifierTypes.Add(Modifier.SYNCHRONIZED); break; case JavaTreeParser.TRANSIENT: mModifierTypes.Add(Modifier.TRANSIENT); break; case JavaTreeParser.VOLATILE: mModifierTypes.Add(Modifier.VOLATILE); break; case JavaTreeParser.STRICTFP: mModifierTypes.Add(Modifier.STRICTFP); break; default: mModifierTypes.Add(Modifier.NOT_SUPPORTED); break; } } } }
/** * Constructor. * * @param pTree The tree node representing a type identifier. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ComplexTypeIdentifier(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.COMPLEX_TYPE_IDENTIFIER, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.IDENT) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } if (pTree.ChildCount == 1) { mHasGenericTypeArg = true; } }
/** * Constructor. * <p> * Creates a new instance for a certain literal type. * * @param pTree The tree node representing the literal. * @param pLiteralType One of the 'LITERAL_???' constants defined by the * interface 'Literal'. Note that it's up to the caller * to ensure that the literal type matches the token * type. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2Literal(AST2JSOMTree pTree, LiteralType pLiteralType, TokenRewriteStream pTokenRewriteStream) : base(pTree, ExpressionType.LITERAL, pTokenRewriteStream) { mLiteralType = pLiteralType; }
/** * Constructor. * * @param pTree The tree node representing a method declaration. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2AnnotationMethodDeclaration(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.ANNOTATION_METHOD_DECLARATION, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.ANNOTATION_METHOD_DECL) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } mModifierListTree = (AST2JSOMTree)pTree.GetChild(0); mIdentifierTree = (AST2JSOMTree)pTree.GetChild(2); if (pTree.ChildCount == 4) { mHasDefaultValue = true; } }
/** * Constructor. * * @param pTree The tree node representing a type. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ExplicitConstructorCall( AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ExpressionType.EXPLICIT_CONSTRUCTOR_CALL,pTokenRewriteStream) { if (pTree.Type == JavaTreeParser.SUPER_CONSTRUCTOR_CALL) { mIsSuperConstructorCall = true; } else if (pTree.Type != JavaTreeParser.THIS_CONSTRUCTOR_CALL) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } int offset = 0; AST2JSOMTree child = (AST2JSOMTree)pTree.GetChild(offset); // 'super' constructor calls may be preceded by a primary expression // stating the constructor's owner. if (mIsSuperConstructorCall && child.Type != JavaTreeParser.GENERIC_TYPE_ARG_LIST && child.Type != JavaTreeParser.ARGUMENT_LIST) { // There must be a primary expression tree. mPrimaryExprTree = child; offset++; child = (AST2JSOMTree)pTree.GetChild(offset); } // Check if there is a generic type argument list. if (child.Type == JavaTreeParser.GENERIC_TYPE_ARG_LIST) { mGenericTypeArgumentListTree = child; offset++; child = (AST2JSOMTree)pTree.GetChild(offset); } // Get the optional arguments. if (child.ChildCount > 0) { mArgumentListTree = child; } }
/** * Constructor. * * @param pTree The tree node representing the literal. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2ConditionalExpression(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, ExpressionType.CONDITIONAL_EXPRESSION, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.QUESTION) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing a <code>synchronized</code> * statement. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2Catch(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.STATEMENT_BLOCK_ELEMENT_HELPER,pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.CATCH) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing a type. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2EnumConstant(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.ENUM_CONSTANT, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.IDENT) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } AST2JSOMTree child = (AST2JSOMTree)pTree.GetChild(0); if (child.ChildCount > 0) { mHasAnnotations = true; } if (pTree.ChildCount > 1) { // The next child may be an argument list or a class scope. child = (AST2JSOMTree)pTree.GetChild(1); if (child.Type == JavaTreeParser.ARGUMENT_LIST) { if (child.ChildCount > 0) { mArgumentsTree = child; } if (pTree.ChildCount == 3) { // Switch forward to the class scope. child = (AST2JSOMTree)pTree.GetChild(2); } else { child = null; } } if (child != null) { mClassScopeTree = child; } } }
/** * Constructor. * * @param pTree The tree node representing an annotation identifier. This * may be a root node of type <code>IDENT</code> for named * initializers or any start/root node that matches an * annotation element value. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2AnnotationInitializer(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.ANNOTATION_INITIALIZER, pTokenRewriteStream) { int type = pTree.Type; if (type == JavaTreeParser.IDENT) { mIsDefaultInitializer = false; } else if ( type != JavaTreeParser.ANNOTATION_INIT_ARRAY_ELEMENT && type != JavaTreeParser.AT && type != JavaTreeParser.EXPR) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } }
/** * Constructor. * * @param pTree The tree node representing an interface declaration. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2InterfaceDeclaration(AST2JSOMTree pTree, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.INTERFACE_DECLARATION, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.INTERFACE) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } int childOffset = 2; AST2JSOMTree child = (AST2JSOMTree)pTree.GetChild(childOffset); if (child.Type == JavaTreeParser.GENERIC_TYPE_PARAM_LIST) { mGenericTypeParamTree = child; childOffset++; child = (AST2JSOMTree)pTree.GetChild(childOffset); } if (child.Type == JavaTreeParser.EXTENDS_CLAUSE) { mExtendsClauseTree = child; childOffset++; child = (AST2JSOMTree)pTree.GetChild(childOffset); } mScopeTree = child; }
/** * Constructor. * * @param pTree The tree node representing a type. * @param pOwner The annotation declaration the new object belongs to. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ public AST2AnnotationTopLevelScope( AST2JSOMTree pTree, AST2AnnotationDeclaration pOwner, TokenRewriteStream pTokenRewriteStream) : base(pTree, JSOMType.ANNOTATION_TOP_LEVEL_SCOPE, pTokenRewriteStream) { if (pTree.Type != JavaTreeParser.ANNOTATION_TOP_LEVEL_SCOPE) { throw new ArgumentException( CommonErrorMessages.getInvalidArgumentValueMessage( "pTree.Type == " + pTree.Type, "pTree")); } mOwner = pOwner; }
/** * Constructor. * * @param pTree The tree node representing any type declaration, i.e. a * a class declaration, for example. Note that it's up to * derived classes to check that the given tree node is of a * valid type. * @param pJSOMType One of the <code>JSOMType.???</code> constants defined * by the interface <code>JSOM</code>. * @param pTokenRewriteStream The token stream the token of the stated * tree node belongs to. */ protected AST2CommonTypeDeclaration( AST2JSOMTree pTree, JSOMType pJSOMType, TokenRewriteStream pTokenRewriteStream) : base(pTree, pJSOMType, pTokenRewriteStream) { if (pTree.GetChild(0).ChildCount == 0) { mHasModifier = false; } mIdentifierTree = (AST2JSOMTree)getTreeNode().GetChild(1); }