List of usage examples for org.eclipse.jdt.core.dom VariableDeclarationFragment getLength
public final int getLength()
From source file:br.uff.ic.gems.resources.ast.Visitor.java
@Override public boolean visit(FieldDeclaration node) { List<VariableDeclarationFragment> fragments = node.fragments(); for (VariableDeclarationFragment fragment : fragments) { int beginLine = cu.getLineNumber(fragment.getStartPosition()); int endLine = cu.getLineNumber(fragment.getStartPosition() + fragment.getLength()); int beginColumn = beginColunm(node); int endColumn = cu.getColumnNumber(node.getStartPosition() + node.getLength()); SimpleName name = fragment.getName(); if (name != null) { endLine = cu.getLineNumber(name.getStartPosition() + name.getLength()); endColumn = cu.getColumnNumber(name.getStartPosition() + name.getLength()); }/*w w w. j a va 2 s . c o m*/ languageConstructs.add(new LanguageConstruct(node.getClass().getSimpleName(), beginLine, endLine, beginColumn, endColumn, fragment.getName().getIdentifier())); } return true; }
From source file:br.uff.ic.gems.resources.ast.Visitor.java
@Override public boolean visit(VariableDeclarationExpression node) { List<VariableDeclarationFragment> fragments = node.fragments(); for (VariableDeclarationFragment fragment : fragments) { int beginLine = cu.getLineNumber(fragment.getStartPosition()); int endLine = cu.getLineNumber(fragment.getStartPosition() + fragment.getLength()); int beginColumn = cu.getColumnNumber(node.getStartPosition()); int endColumn = cu.getColumnNumber(node.getStartPosition() + node.getLength()); SimpleName name = fragment.getName(); if (name != null) { endLine = cu.getLineNumber(name.getStartPosition() + name.getLength()); endColumn = cu.getColumnNumber(name.getStartPosition() + name.getLength()); }/*from w ww .j a v a 2 s . c o m*/ languageConstructs.add(new LanguageConstruct(node.getClass().getSimpleName(), beginLine, endLine, beginColumn, endColumn, fragment.getName().getIdentifier())); } return true; }
From source file:br.uff.ic.gems.resources.ast.Visitor.java
@Override public boolean visit(VariableDeclarationStatement node) { List<VariableDeclarationFragment> fragments = node.fragments(); for (VariableDeclarationFragment fragment : fragments) { String identifier = fragment.getName().getIdentifier(); int beginLine = cu.getLineNumber(fragment.getStartPosition()); int endLine = cu.getLineNumber(fragment.getStartPosition() + fragment.getLength()); int beginColumn = cu.getColumnNumber(node.getStartPosition()); int endColumn = cu.getColumnNumber(node.getStartPosition() + node.getLength()); SimpleName name = fragment.getName(); if (name != null) { endLine = cu.getLineNumber(name.getStartPosition() + name.getLength()); endColumn = cu.getColumnNumber(name.getStartPosition() + name.getLength()); }// w ww.ja v a 2s . c om languageConstructs.add(new LanguageConstruct(node.getClass().getSimpleName(), beginLine, endLine, beginColumn, endColumn, identifier)); } return true; }
From source file:com.ibm.wala.cast.java.translator.jdt.JDTJava2CAstTranslator.java
License:Open Source License
/** * //from w ww. java 2 s . co m * @param n * @param bodyDecls * @param enumConstants * @param typeBinding * @param name Used in creating default constructor, and passed into new ClassEntity() * @param context * @return */ private CAstEntity createClassDeclaration(ASTNode n, List/* <BodyDeclaration> */ bodyDecls, List/* EnumConstantDeclaration */ enumConstants, ITypeBinding typeBinding, String name, int modifiers, boolean isInterface, boolean isAnnotation, WalkContext context) { final List<CAstEntity> memberEntities = new ArrayList<CAstEntity>(); // find and collect all initializers (type Initializer) and field initializers (type VariableDeclarationFragment). // instance initializer code will be inserted into each constructors. // all static initializer code will be grouped together in its own entity. ArrayList<ASTNode> inits = new ArrayList<ASTNode>(); ArrayList<ASTNode> staticInits = new ArrayList<ASTNode>(); if (enumConstants != null) { for (Object decl : enumConstants) { EnumConstantDeclaration ecd = (EnumConstantDeclaration) decl; staticInits.add(ecd); // always (implicitly) static,final (actually, no modifiers allowed) } } for (Object decl : bodyDecls) { if (decl instanceof Initializer) { Initializer initializer = (Initializer) decl; boolean isStatic = ((initializer.getModifiers() & Modifier.STATIC) != 0); (isStatic ? staticInits : inits).add(initializer); } else if (decl instanceof FieldDeclaration) { FieldDeclaration fd = (FieldDeclaration) decl; for (Object f : fd.fragments()) { VariableDeclarationFragment frag = (VariableDeclarationFragment) f; if (frag.getInitializer() != null) { boolean isStatic = ((fd.getModifiers() & Modifier.STATIC) != 0); (isStatic ? staticInits : inits).add(frag); } } } } // process entities. initializers will be folded in here. if (enumConstants != null) { for (Object decl : enumConstants) { memberEntities.add(visit((EnumConstantDeclaration) decl, context)); } } for (Object d : bodyDecls) { BodyDeclaration decl = (BodyDeclaration) d; if (decl instanceof FieldDeclaration) { FieldDeclaration fieldDecl = (FieldDeclaration) decl; Collection<CAstQualifier> quals = JDT2CAstUtils.mapModifiersToQualifiers(fieldDecl.getModifiers(), false, false); for (Object f : fieldDecl.fragments()) { VariableDeclarationFragment fieldFrag = (VariableDeclarationFragment) f; IVariableBinding fieldBinding = fieldFrag.resolveBinding(); memberEntities .add(new FieldEntity(fieldFrag.getName().getIdentifier(), fieldBinding.getType(), quals, makePosition(fieldFrag.getStartPosition(), fieldFrag.getStartPosition() + fieldFrag.getLength()), handleAnnotations(fieldBinding))); } } else if (decl instanceof Initializer) { // Initializers are inserted into constructors when making constructors. } else if (decl instanceof MethodDeclaration) { MethodDeclaration metDecl = (MethodDeclaration) decl; if (typeBinding.isEnum() && metDecl.isConstructor()) memberEntities.add(createEnumConstructorWithParameters(metDecl.resolveBinding(), metDecl, context, inits, metDecl)); else { memberEntities.add(visit(metDecl, typeBinding, context, inits)); // /////////////// Java 1.5 "overridden with subtype" thing (covariant return type) /////////// Collection<IMethodBinding> overriddenMets = JDT2CAstUtils .getOverriddenMethod(metDecl.resolveBinding()); if (overriddenMets != null) { for (IMethodBinding overridden : overriddenMets) if (!JDT2CAstUtils.sameErasedSignatureAndReturnType(metDecl.resolveBinding(), overridden)) memberEntities.add(makeSyntheticCovariantRedirect(metDecl, metDecl.resolveBinding(), overridden, context)); } } } else if (decl instanceof AbstractTypeDeclaration) { memberEntities.add(visit((AbstractTypeDeclaration) decl, context)); } else if (decl instanceof AnnotationTypeMemberDeclaration) { // TODO: need to decide what to do with these } else { Assertions.UNREACHABLE("BodyDeclaration not Field, Initializer, or Method"); } } // add default constructor(s) if necessary // most default constructors have no parameters; however, those created by anonymous classes will have parameters // (they just call super with those parameters) for (Object m : typeBinding.getDeclaredMethods()) { IMethodBinding met = (IMethodBinding) m; if (met.isDefaultConstructor()) { if (typeBinding.isEnum()) memberEntities.add(createEnumConstructorWithParameters(met, n, context, inits, null)); else if (met.getParameterTypes().length > 0) memberEntities.add(createDefaultConstructorWithParameters(met, n, context, inits)); else memberEntities.add(createDefaultConstructor(name, typeBinding, context, inits, n)); } } if (typeBinding.isEnum() && !typeBinding.isAnonymous()) doEnumHiddenEntities(typeBinding, staticInits, memberEntities, context); // collect static inits if (!staticInits.isEmpty()) { Map<CAstNode, CAstEntity> childEntities = HashMapFactory.make(); final MethodContext newContext = new MethodContext(context, childEntities); // childEntities is the same one as in the ProcedureEntity. later visit(New), etc. may add to this. CAstNode[] bodyNodes = new CAstNode[staticInits.size()]; for (int i = 0; i < staticInits.size(); i++) bodyNodes[i] = visitFieldInitNode(staticInits.get(i), newContext); CAstNode staticInitAst = makeNode(newContext, fFactory, n, CAstNode.BLOCK_STMT, bodyNodes); memberEntities.add(new ProcedureEntity(staticInitAst, typeBinding, childEntities, newContext, null)); } Collection<CAstQualifier> quals = JDT2CAstUtils.mapModifiersToQualifiers(modifiers, isInterface, isAnnotation); Set<CAstAnnotation> annotations = handleAnnotations(typeBinding); return new ClassEntity(typeBinding, name, quals, memberEntities, makePosition(n), annotations); }
From source file:lang.java.jdt.internal.FindIFields.java
License:Open Source License
@Override public boolean visit(VariableDeclarationFragment node) { if (fieldOffsetsFromLoc.contains(VF.integer(node.getParent().getStartPosition()))) { ICompilationUnit icu = JavaCore.createCompilationUnitFrom(file); try {//www . j a v a 2s . co m IJavaElement fieldElement = icu.getElementAt(node.getStartPosition()); if (fieldElement != null && fieldElement instanceof IField) { fieldSet.add((IField) fieldElement); } } catch (JavaModelException e) { ISourceLocation pos = VF.sourceLocation(loc.getURI(), node.getStartPosition(), node.getLength()); throw new Throw(VF.string("Error during field find visit: " + e.getMessage()), pos, null); } } return true; }