类org.eclipse.jdt.core.dom.EnumDeclaration源码实例Demo

下面列出了怎么用org.eclipse.jdt.core.dom.EnumDeclaration的API类实例代码及写法,或者点击链接到github查看源代码。

private ASTRewrite doAddEnumConst(CompilationUnit astRoot) {
	SimpleName node= fOriginalNode;

	ASTNode newTypeDecl= astRoot.findDeclaringNode(fSenderBinding);
	if (newTypeDecl == null) {
		astRoot= ASTResolving.createQuickFixAST(getCompilationUnit(), null);
		newTypeDecl= astRoot.findDeclaringNode(fSenderBinding.getKey());
	}

	if (newTypeDecl != null) {
		AST ast= newTypeDecl.getAST();

		ASTRewrite rewrite= ASTRewrite.create(ast);

		EnumConstantDeclaration constDecl= ast.newEnumConstantDeclaration();
		constDecl.setName(ast.newSimpleName(node.getIdentifier()));

		ListRewrite listRewriter= rewrite.getListRewrite(newTypeDecl, EnumDeclaration.ENUM_CONSTANTS_PROPERTY);
		listRewriter.insertLast(constDecl, null);

		addLinkedPosition(rewrite.track(constDecl.getName()), false, KEY_NAME);

		return rewrite;
	}
	return null;
}
 
源代码2 项目: j2cl   文件: CompilationUnitBuilder.java
private void convert(EnumDeclaration enumDeclaration) {
  convertAndAddType(
      enumDeclaration,
      enumType -> {
        checkState(enumType.isEnum());

        int ordinal = 0;
        for (EnumConstantDeclaration enumConstantDeclaration :
            JdtUtils.<EnumConstantDeclaration>asTypedList(enumDeclaration.enumConstants())) {
          enumType.addField(ordinal, convert(enumConstantDeclaration));
          ordinal++;
        }
        EnumMethodsCreator.applyTo(enumType);
        return null;
      });
}
 
源代码3 项目: eclipse.jdt.ls   文件: ModifierRewrite.java
private ListRewrite evaluateListRewrite(ASTRewrite rewrite, ASTNode declNode) {
	switch (declNode.getNodeType()) {
		case ASTNode.METHOD_DECLARATION:
			return rewrite.getListRewrite(declNode, MethodDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.FIELD_DECLARATION:
			return rewrite.getListRewrite(declNode, FieldDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.VARIABLE_DECLARATION_EXPRESSION:
			return rewrite.getListRewrite(declNode, VariableDeclarationExpression.MODIFIERS2_PROPERTY);
		case ASTNode.VARIABLE_DECLARATION_STATEMENT:
			return rewrite.getListRewrite(declNode, VariableDeclarationStatement.MODIFIERS2_PROPERTY);
		case ASTNode.SINGLE_VARIABLE_DECLARATION:
			return rewrite.getListRewrite(declNode, SingleVariableDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.TYPE_DECLARATION:
			return rewrite.getListRewrite(declNode, TypeDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ENUM_DECLARATION:
			return rewrite.getListRewrite(declNode, EnumDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ANNOTATION_TYPE_DECLARATION:
			return rewrite.getListRewrite(declNode, AnnotationTypeDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ENUM_CONSTANT_DECLARATION:
			return rewrite.getListRewrite(declNode, EnumConstantDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
			return rewrite.getListRewrite(declNode, AnnotationTypeMemberDeclaration.MODIFIERS2_PROPERTY);
		default:
			throw new IllegalArgumentException("node has no modifiers: " + declNode.getClass().getName()); //$NON-NLS-1$
	}
}
 
源代码4 项目: eclipse.jdt.ls   文件: JdtFlags.java
public static boolean isStatic(BodyDeclaration bodyDeclaration) {
	if (isNestedInterfaceOrAnnotation(bodyDeclaration)) {
		return true;
	}
	int nodeType= bodyDeclaration.getNodeType();
	if (!(nodeType == ASTNode.METHOD_DECLARATION || nodeType == ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION) &&
			isInterfaceOrAnnotationMember(bodyDeclaration)) {
		return true;
	}
	if (bodyDeclaration instanceof EnumConstantDeclaration) {
		return true;
	}
	if (bodyDeclaration instanceof EnumDeclaration && bodyDeclaration.getParent() instanceof AbstractTypeDeclaration) {
		return true;
	}
	return Modifier.isStatic(bodyDeclaration.getModifiers());
}
 
/**
 * Returns the type binding of the node's type context or null if the node is inside
 * an annotation, type parameter, super type declaration, or Javadoc of a top level type.
 * The result of this method is equal to the result of {@link #getBindingOfParentType(ASTNode)} for nodes in the type's body.
 * 
 * @param node an AST node
 * @return the type binding of the node's parent type context, or <code>null</code>
 */
public static ITypeBinding getBindingOfParentTypeContext(ASTNode node) {
	StructuralPropertyDescriptor lastLocation= null;

	while (node != null) {
		if (node instanceof AbstractTypeDeclaration) {
			AbstractTypeDeclaration decl= (AbstractTypeDeclaration) node;
			if (lastLocation == decl.getBodyDeclarationsProperty()
					|| lastLocation == decl.getJavadocProperty()) {
				return decl.resolveBinding();
			} else if (decl instanceof EnumDeclaration && lastLocation == EnumDeclaration.ENUM_CONSTANTS_PROPERTY) {
				return decl.resolveBinding();
			}
		} else if (node instanceof AnonymousClassDeclaration) {
			return ((AnonymousClassDeclaration) node).resolveBinding();
		}
		lastLocation= node.getLocationInParent();
		node= node.getParent();
	}
	return null;
}
 
private ASTRewrite doAddEnumConst(CompilationUnit astRoot) {
	SimpleName node= fOriginalNode;

	ASTNode newTypeDecl= astRoot.findDeclaringNode(fSenderBinding);
	if (newTypeDecl == null) {
		astRoot= ASTResolving.createQuickFixAST(getCompilationUnit(), null);
		newTypeDecl= astRoot.findDeclaringNode(fSenderBinding.getKey());
	}

	if (newTypeDecl != null) {
		AST ast= newTypeDecl.getAST();

		ASTRewrite rewrite= ASTRewrite.create(ast);

		EnumConstantDeclaration constDecl= ast.newEnumConstantDeclaration();
		constDecl.setName(ast.newSimpleName(node.getIdentifier()));

		ListRewrite listRewriter= rewrite.getListRewrite(newTypeDecl, EnumDeclaration.ENUM_CONSTANTS_PROPERTY);
		listRewriter.insertLast(constDecl, null);

		return rewrite;
	}
	return null;
}
 
源代码7 项目: repositoryminer   文件: FileVisitor.java
@Override
public boolean visit(EnumDeclaration node) {
	AbstractEnum absEnum = new AbstractEnum();
	
	if (packageName != null) {
		absEnum.setName(packageName+'.'+node.getName().getFullyQualifiedName());
	} else {
		absEnum.setName(node.getName().getFullyQualifiedName());
	}

	TypeVisitor visitor = new TypeVisitor();
	node.accept(visitor);
	
	absEnum.setMethods(visitor.getMethods());
	absEnum.setFields(visitor.getFields());
	absEnum.setStartPosition(node.getStartPosition());
	absEnum.setEndPosition(node.getStartPosition() + node.getLength() - 1);
	absEnum.setConstants(visitor.getEnumConstants());
	
	types.add(absEnum);
	return true;
}
 
源代码8 项目: RefactoringMiner   文件: UMLModelASTReader.java
protected void processCompilationUnit(String sourceFilePath, CompilationUnit compilationUnit) {
	PackageDeclaration packageDeclaration = compilationUnit.getPackage();
	String packageName = null;
	if(packageDeclaration != null)
		packageName = packageDeclaration.getName().getFullyQualifiedName();
	else
		packageName = "";
	
	List<ImportDeclaration> imports = compilationUnit.imports();
	List<String> importedTypes = new ArrayList<String>();
	for(ImportDeclaration importDeclaration : imports) {
		importedTypes.add(importDeclaration.getName().getFullyQualifiedName());
	}
	List<AbstractTypeDeclaration> topLevelTypeDeclarations = compilationUnit.types();
       for(AbstractTypeDeclaration abstractTypeDeclaration : topLevelTypeDeclarations) {
       	if(abstractTypeDeclaration instanceof TypeDeclaration) {
       		TypeDeclaration topLevelTypeDeclaration = (TypeDeclaration)abstractTypeDeclaration;
       		processTypeDeclaration(compilationUnit, topLevelTypeDeclaration, packageName, sourceFilePath, importedTypes);
       	}
       	else if(abstractTypeDeclaration instanceof EnumDeclaration) {
       		EnumDeclaration enumDeclaration = (EnumDeclaration)abstractTypeDeclaration;
       		processEnumDeclaration(compilationUnit, enumDeclaration, packageName, sourceFilePath, importedTypes);
       	}
       }
}
 
源代码9 项目: RefactoringMiner   文件: UMLModelASTReader.java
private void processEnumDeclaration(CompilationUnit cu, EnumDeclaration enumDeclaration, String packageName, String sourceFile,
		List<String> importedTypes) {
	UMLJavadoc javadoc = generateJavadoc(enumDeclaration);
	if(javadoc != null && javadoc.containsIgnoreCase(FREE_MARKER_GENERATED)) {
		return;
	}
	String className = enumDeclaration.getName().getFullyQualifiedName();
	LocationInfo locationInfo = generateLocationInfo(cu, sourceFile, enumDeclaration, CodeElementType.TYPE_DECLARATION);
	UMLClass umlClass = new UMLClass(packageName, className, locationInfo, enumDeclaration.isPackageMemberTypeDeclaration(), importedTypes);
	umlClass.setJavadoc(javadoc);
	
	umlClass.setEnum(true);
	processModifiers(cu, sourceFile, enumDeclaration, umlClass);
	
	processBodyDeclarations(cu, enumDeclaration, packageName, sourceFile, importedTypes, umlClass);
	
	processAnonymousClassDeclarations(cu, enumDeclaration, packageName, sourceFile, className, umlClass);
	
	this.getUmlModel().addClass(umlClass);
}
 
源代码10 项目: jdt2famix   文件: AstVisitor.java
@Override
public boolean visit(EnumDeclaration node) {
	ITypeBinding binding = node.resolveBinding();
	if (binding == null) {
		logNullBinding("enum declaration", node.getName(),
				((CompilationUnit) node.getRoot()).getLineNumber(node.getStartPosition()));
		return false;
	}
	Type ensureTypeFromTypeBinding = importer.ensureTypeFromTypeBinding(binding);
	if (ensureTypeFromTypeBinding instanceof Enum) {
		Enum famixEnum = (Enum) ensureTypeFromTypeBinding;
		createSourceAnchorsForInterfaceInheritance(node, famixEnum);
		famixEnum.setIsStub(false);
		importer.createSourceAnchor(famixEnum, node);
		importer.ensureCommentFromBodyDeclaration(famixEnum, node);
		importer.pushOnContainerStack(famixEnum);
	}
	return true;
}
 
/**
 * {@inheritDoc}
 */
@Override
public String getAdditionalInfo() {
	if (fTypeNode instanceof EnumDeclaration)
		return CorrectionMessages.UnimplementedMethodsCorrectionProposal_enum_info;

	IMethodBinding[] methodsToOverride= getMethodsToImplement();
	StringBuffer buf= new StringBuffer();
	buf.append("<b>"); //$NON-NLS-1$
	if (methodsToOverride.length == 1) {
		buf.append(CorrectionMessages.UnimplementedMethodsCorrectionProposal_info_singular);
	} else {
		buf.append(Messages.format(CorrectionMessages.UnimplementedMethodsCorrectionProposal_info_plural, String.valueOf(methodsToOverride.length)));
	}
	buf.append("</b><ul>"); //$NON-NLS-1$
	for (int i= 0; i < methodsToOverride.length; i++) {
		buf.append("<li>"); //$NON-NLS-1$
		buf.append(BindingLabelProvider.getBindingLabel(methodsToOverride[i], JavaElementLabels.ALL_FULLY_QUALIFIED));
		buf.append("</li>"); //$NON-NLS-1$
	}
	buf.append("</ul>"); //$NON-NLS-1$
	return buf.toString();
}
 
private ListRewrite evaluateListRewrite(ASTRewrite rewrite, ASTNode declNode) {
	switch (declNode.getNodeType()) {
		case ASTNode.METHOD_DECLARATION:
			return rewrite.getListRewrite(declNode, MethodDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.FIELD_DECLARATION:
			return rewrite.getListRewrite(declNode, FieldDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.VARIABLE_DECLARATION_EXPRESSION:
			return rewrite.getListRewrite(declNode, VariableDeclarationExpression.MODIFIERS2_PROPERTY);
		case ASTNode.VARIABLE_DECLARATION_STATEMENT:
			return rewrite.getListRewrite(declNode, VariableDeclarationStatement.MODIFIERS2_PROPERTY);
		case ASTNode.SINGLE_VARIABLE_DECLARATION:
			return rewrite.getListRewrite(declNode, SingleVariableDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.TYPE_DECLARATION:
			return rewrite.getListRewrite(declNode, TypeDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ENUM_DECLARATION:
			return rewrite.getListRewrite(declNode, EnumDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ANNOTATION_TYPE_DECLARATION:
			return rewrite.getListRewrite(declNode, AnnotationTypeDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ENUM_CONSTANT_DECLARATION:
			return rewrite.getListRewrite(declNode, EnumConstantDeclaration.MODIFIERS2_PROPERTY);
		case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
			return rewrite.getListRewrite(declNode, AnnotationTypeMemberDeclaration.MODIFIERS2_PROPERTY);
		default:
			throw new IllegalArgumentException("node has no modifiers: " + declNode.getClass().getName()); //$NON-NLS-1$
	}
}
 
private void addInheritedTypeQualifications(final AbstractTypeDeclaration declaration, final CompilationUnitRewrite targetRewrite, final TextEditGroup group) {
	Assert.isNotNull(declaration);
	Assert.isNotNull(targetRewrite);
	final CompilationUnit unit= (CompilationUnit) declaration.getRoot();
	final ITypeBinding binding= declaration.resolveBinding();
	if (binding != null) {
		Type type= null;
		if (declaration instanceof TypeDeclaration) {
			type= ((TypeDeclaration) declaration).getSuperclassType();
			if (type != null && unit.findDeclaringNode(binding) != null)
				addTypeQualification(type, targetRewrite, group);
		}
		List<Type> types= null;
		if (declaration instanceof TypeDeclaration)
			types= ((TypeDeclaration) declaration).superInterfaceTypes();
		else if (declaration instanceof EnumDeclaration)
			types= ((EnumDeclaration) declaration).superInterfaceTypes();
		if (types != null) {
			for (final Iterator<Type> iterator= types.iterator(); iterator.hasNext();) {
				type= iterator.next();
				if (unit.findDeclaringNode(type.resolveBinding()) != null)
					addTypeQualification(type, targetRewrite, group);
			}
		}
	}
}
 
protected String getFullTypeName() {
	ASTNode node= getNode();
	while (true) {
		node= node.getParent();
		if (node instanceof AbstractTypeDeclaration) {
			String typeName= ((AbstractTypeDeclaration) node).getName().getIdentifier();
			if (getNode() instanceof LambdaExpression) {
				return Messages.format(RefactoringCoreMessages.ChangeSignatureRefactoring_lambda_expression, typeName);
			}
			return typeName;
		} else if (node instanceof ClassInstanceCreation) {
			ClassInstanceCreation cic= (ClassInstanceCreation) node;
			return Messages.format(RefactoringCoreMessages.ChangeSignatureRefactoring_anonymous_subclass, BasicElementLabels.getJavaElementName(ASTNodes.asString(cic.getType())));
		} else if (node instanceof EnumConstantDeclaration) {
			EnumDeclaration ed= (EnumDeclaration) node.getParent();
			return Messages.format(RefactoringCoreMessages.ChangeSignatureRefactoring_anonymous_subclass, BasicElementLabels.getJavaElementName(ASTNodes.asString(ed.getName())));
		}
	}
}
 
源代码15 项目: apidiff   文件: APIVersion.java
public EnumDeclaration getVersionNonAccessibleEnum(EnumDeclaration enumVersrionReference){
	for (EnumDeclaration enumDeclarion : this.apiNonAccessibleEnums) {
		if(enumDeclarion.resolveBinding() != null && enumVersrionReference.resolveBinding() != null){
			if(enumDeclarion.resolveBinding().getQualifiedName().equals(enumVersrionReference.resolveBinding().getQualifiedName())){
				return enumDeclarion;
			}
		}
	}

	return null;
}
 
源代码16 项目: juniversal   文件: EnumDeclarationWriter.java
@Override public void write(EnumDeclaration enumDeclaration) {
    List modifiers = enumDeclaration.modifiers();

    writeAccessModifier(modifiers);

    // Skip the modifiers
    skipModifiers(modifiers);

    matchAndWrite("enum");

    copySpaceAndComments();
    writeNode(enumDeclaration.getName());

    copySpaceAndComments();
    matchAndWrite("{");

    // TODO: Support trailing comma
    writeCommaDelimitedNodes(enumDeclaration.enumConstants(), (EnumConstantDeclaration enumConstantDeclaration) -> {
        copySpaceAndComments();
        writeNode(enumConstantDeclaration.getName());

        if (enumConstantDeclaration.arguments().size() > 0)
            throw sourceNotSupported("Enum constants with arguments aren't currently supported; change the source to use a normal class, with public final members for the enum constants, instead");
    });

    if (enumDeclaration.bodyDeclarations().size() > 0)
        throw sourceNotSupported("Enums with methods/data members aren't currently supported; change the source to use a normal class instead, with public final members for the enum constants, instead");

    copySpaceAndComments();
    matchAndWrite("}");
}
 
源代码17 项目: apidiff   文件: EnumDeclarationVisitor.java
@Override
public boolean visit(EnumDeclaration node){
	if(UtilTools.isVisibilityProtected(node) || UtilTools.isVisibilityPublic(node)){
		this.acessibleEnums.add(node);
	}
	else{
		this.nonAcessibleEnums.add(node);
	}
	return super.visit(node);
}
 
源代码18 项目: apidiff   文件: UtilTools.java
public static void addChangeToEnumMap(EnumDeclaration type, BodyDeclaration change, 
		HashMap<EnumDeclaration, ArrayList<BodyDeclaration>> changeMap) {
		
		if(changeMap.containsKey(type)){
			changeMap.get(type).add(change);
		}else{
			changeMap.put(type, new ArrayList<BodyDeclaration>());
			changeMap.get(type).add(change);
		}	
}
 
源代码19 项目: j2cl   文件: CompilationUnitBuilder.java
private void convert(AbstractTypeDeclaration typeDeclaration) {
  switch (typeDeclaration.getNodeType()) {
    case ASTNode.ANNOTATION_TYPE_DECLARATION:
    case ASTNode.TYPE_DECLARATION:
      convertAndAddType(typeDeclaration);
      break;
    case ASTNode.ENUM_DECLARATION:
      convert((EnumDeclaration) typeDeclaration);
      break;
    default:
      throw internalCompilerError(
          "Unexpected node type for AbstractTypeDeclaration: %s  type name: %s ",
          typeDeclaration.getClass().getName(), typeDeclaration.getName().toString());
  }
}
 
源代码20 项目: SimFix   文件: NodeUtils.java
private static String getFullClazzName(MethodDeclaration node) {
	String clazz = "";
	// filter those methods that defined in anonymous classes
	ASTNode parent = node.getParent();
	while (parent != null) {
		if (parent instanceof ClassInstanceCreation) {
			return null;
		} else if(parent instanceof TypeDeclaration){
			clazz = ((TypeDeclaration) parent).getName().getFullyQualifiedName();
			break;
		} else if(parent instanceof EnumDeclaration){
			clazz = ((EnumDeclaration) parent).getName().getFullyQualifiedName();
			break;
		}
		parent = parent.getParent();
	}
	if(parent != null){
		while(parent != null){
			if(parent instanceof CompilationUnit){
				String packageName = ((CompilationUnit) parent).getPackage().getName().getFullyQualifiedName();
				clazz = packageName + "." + clazz;
				return clazz;
			}
			parent = parent.getParent();
		}
	}
	return null;
}
 
final ASTNode getBodyContainer(CompilationUnit root, IMember parent) throws JavaModelException {
	ISourceRange sourceRange= parent.getNameRange();
	ASTNode parentNode= NodeFinder.perform(root, sourceRange);
	do {
		if (parentNode instanceof TypeDeclaration || parentNode instanceof EnumDeclaration || parentNode instanceof AnnotationTypeDeclaration)
			return parentNode;
		parentNode= parentNode.getParent();
	} while (parentNode != null);
	return null;
}
 
源代码22 项目: eclipse.jdt.ls   文件: SnippetFinder.java
@Override
public boolean visit(EnumDeclaration node) {
	if (++fTypes > 1) {
		return false;
	}
	return super.visit(node);
}
 
@Override
public boolean visit(EnumDeclaration node) {
	// Don't dive into a local type.
	if (node.isLocalTypeDeclaration())
		return false;
	return true;
}
 
源代码24 项目: xtext-xtend   文件: JavaASTFlattener.java
@Override
public boolean visit(final EnumDeclaration node) {
  Javadoc _javadoc = node.getJavadoc();
  boolean _tripleNotEquals = (_javadoc != null);
  if (_tripleNotEquals) {
    node.getJavadoc().accept(this);
  }
  this.appendModifiers(node, node.modifiers());
  boolean _isPackageVisibility = this._aSTFlattenerUtils.isPackageVisibility(Iterables.<Modifier>filter(node.modifiers(), Modifier.class));
  if (_isPackageVisibility) {
    this.appendToBuffer("package ");
  }
  this.appendToBuffer("enum ");
  node.getName().accept(this);
  this.appendSpaceToBuffer();
  boolean _isEmpty = node.superInterfaceTypes().isEmpty();
  boolean _not = (!_isEmpty);
  if (_not) {
    this.addProblem(node, "Enum cannot have a supertype");
    this.appendToBuffer("implements ");
    this.visitAllSeparatedByComma(node.superInterfaceTypes());
    this.appendSpaceToBuffer();
  }
  this.appendToBuffer("{");
  this.increaseIndent();
  this.appendLineWrapToBuffer();
  this.visitAllSeparatedByComma(node.enumConstants());
  boolean _isEmpty_1 = node.bodyDeclarations().isEmpty();
  boolean _not_1 = (!_isEmpty_1);
  if (_not_1) {
    this.addProblem(node, "Enum cannot have any body declaration statements");
    this.appendToBuffer(";");
    this.appendLineWrapToBuffer();
    this.visitAll(node.bodyDeclarations());
  }
  this.decreaseIndent();
  this.appendToBuffer("}");
  return false;
}
 
源代码25 项目: api-mining   文件: MethodsInClass.java
@Override
public boolean visit(final EnumDeclaration node) {
	if (className.isEmpty()) {
		className.push(currentPackageName + "."
				+ node.getName().getIdentifier());
	} else {
		className.push(className.peek() + "."
				+ node.getName().getIdentifier());
	}
	return super.visit(node);
}
 
private Iterator<ASTNode> getReplacementScope() throws JavaModelException {
	boolean declPredecessorReached= false;

	Collection<ASTNode> scope= new ArrayList<ASTNode>();

	AbstractTypeDeclaration containingType= getContainingTypeDeclarationNode();
	if (containingType instanceof EnumDeclaration) {
		// replace in all enum constants bodies
		EnumDeclaration enumDeclaration= (EnumDeclaration) containingType;
		scope.addAll(enumDeclaration.enumConstants());
	}
	
	for (Iterator<IExtendedModifier> iter= containingType.modifiers().iterator(); iter.hasNext();) {
		IExtendedModifier modifier= iter.next();
		if (modifier instanceof Annotation) {
			scope.add((ASTNode) modifier);
		}
	}

	for (Iterator<BodyDeclaration> bodyDeclarations = containingType.bodyDeclarations().iterator(); bodyDeclarations.hasNext();) {
	    BodyDeclaration bodyDeclaration= bodyDeclarations.next();

	    if(bodyDeclaration == getNodeToInsertConstantDeclarationAfter())
	    	declPredecessorReached= true;

	    if(insertFirst() || declPredecessorReached || !isStaticFieldOrStaticInitializer(bodyDeclaration))
	    	scope.add(bodyDeclaration);
	}
	return scope.iterator();
}
 
源代码27 项目: RefactoringMiner   文件: UMLModelASTReader.java
private void processBodyDeclarations(CompilationUnit cu, AbstractTypeDeclaration abstractTypeDeclaration, String packageName,
		String sourceFile, List<String> importedTypes, UMLClass umlClass) {
	List<BodyDeclaration> bodyDeclarations = abstractTypeDeclaration.bodyDeclarations();
	for(BodyDeclaration bodyDeclaration : bodyDeclarations) {
		if(bodyDeclaration instanceof FieldDeclaration) {
			FieldDeclaration fieldDeclaration = (FieldDeclaration)bodyDeclaration;
			List<UMLAttribute> attributes = processFieldDeclaration(cu, fieldDeclaration, umlClass.isInterface(), sourceFile);
    		for(UMLAttribute attribute : attributes) {
    			attribute.setClassName(umlClass.getName());
    			umlClass.addAttribute(attribute);
    		}
		}
		else if(bodyDeclaration instanceof MethodDeclaration) {
			MethodDeclaration methodDeclaration = (MethodDeclaration)bodyDeclaration;
			UMLOperation operation = processMethodDeclaration(cu, methodDeclaration, packageName, umlClass.isInterface(), sourceFile);
    		operation.setClassName(umlClass.getName());
    		umlClass.addOperation(operation);
		}
		else if(bodyDeclaration instanceof TypeDeclaration) {
			TypeDeclaration typeDeclaration = (TypeDeclaration)bodyDeclaration;
			processTypeDeclaration(cu, typeDeclaration, umlClass.getName(), sourceFile, importedTypes);
		}
		else if(bodyDeclaration instanceof EnumDeclaration) {
			EnumDeclaration enumDeclaration = (EnumDeclaration)bodyDeclaration;
			processEnumDeclaration(cu, enumDeclaration, umlClass.getName(), sourceFile, importedTypes);
		}
	}
}
 
源代码28 项目: compiler   文件: TestQ16.java
@Override
public boolean preVisit2(ASTNode node) {
	if (node instanceof EnumDeclaration
			|| node instanceof TypeDeclaration && ((TypeDeclaration) node).isInterface())
		return false;
	if (node instanceof TypeDeclaration || node instanceof AnonymousClassDeclaration) {
		methodsStack.push(methods2);
		methods2 = 0;
	}
	return true;
}
 
源代码29 项目: compiler   文件: TestQ19.java
@Override
public boolean preVisit2(ASTNode node) {
	if (node instanceof EnumDeclaration|| node instanceof TypeDeclaration && ((TypeDeclaration) node).isInterface())
		return false;
	if (node instanceof TypeDeclaration || node instanceof AnonymousClassDeclaration){
		fieldsStack.push(fieds2);
		fieds2 = 0;
	}
	return true;
}
 
源代码30 项目: compiler   文件: TestQ13.java
@Override
public boolean preVisit2(ASTNode node) {
	if (node instanceof TypeDeclaration && ((TypeDeclaration) node).isInterface()) {
		methodsStack.push(methods2);
		methods2 = 0;
		interfaces++;
		return true;
	}
	if (node instanceof TypeDeclaration || node instanceof AnonymousClassDeclaration
			|| node instanceof EnumDeclaration) {
		return false;
	}
	return true;
}
 
 类所在包
 类方法
 同包方法