下面列出了org.eclipse.jdt.core.dom.Modifier#isSynchronized ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void visit(FieldDeclaration node) {
fields++;
fieldNames.addAll(getVariableName(node.fragments()));
boolean isPublic = Modifier.isPublic(node.getModifiers());
boolean isPrivate = Modifier.isPrivate(node.getModifiers());
boolean isProtected = Modifier.isProtected(node.getModifiers());
if(isPublic)
publicFields++;
else if(isPrivate)
privateFields++;
else if(isProtected)
protectedFields++;
else
defaultFields++;
// other characteristics rather than visibility
boolean isStatic = Modifier.isStatic(node.getModifiers());
boolean isFinal = Modifier.isFinal(node.getModifiers());
boolean isSynchronized = Modifier.isSynchronized(node.getModifiers());
if(isStatic)
staticFields++;
if(isFinal)
finalFields++;
if(isSynchronized)
synchronizedFields++;
}
@Override
public void visit(MethodDeclaration node) {
methods++;
// visibility
boolean isPublic = Modifier.isPublic(node.getModifiers());
boolean isPrivate = Modifier.isPrivate(node.getModifiers());
boolean isProtected = Modifier.isProtected(node.getModifiers());
if(isPublic)
publicMethods++;
else if(isPrivate)
privateMethods++;
else if(isProtected)
protectedMethods++;
else
defaultMethods++;
// other characteristics
boolean isFinal = Modifier.isFinal(node.getModifiers());
boolean isSynchronized = Modifier.isSynchronized(node.getModifiers());
boolean isAbstract = Modifier.isAbstract(node.getModifiers());
boolean isStatic = Modifier.isStatic(node.getModifiers());
if(isStatic)
staticMethods++;
if(isAbstract)
abstractMethods++;
if(isFinal)
finalMethods++;
if(isSynchronized)
synchronizedMethods++;
}
private void extractBasicModifiersFromBinding(int modifiers, NamedEntity entity) {
Boolean publicModifier = Modifier.isPublic(modifiers);
Boolean protectedModifier = Modifier.isProtected(modifiers);
Boolean privateModifier = Modifier.isPrivate(modifiers);
if (publicModifier)
entity.addModifiers("public");
if (protectedModifier)
entity.addModifiers("protected");
if (privateModifier)
entity.addModifiers("private");
if (!(publicModifier || protectedModifier || privateModifier))
entity.addModifiers("package");
if (Modifier.isFinal(modifiers))
entity.addModifiers("final");
if (Modifier.isAbstract(modifiers))
entity.addModifiers("abstract");
if (Modifier.isNative(modifiers))
entity.addModifiers("native");
if (Modifier.isSynchronized(modifiers))
entity.addModifiers("synchronized");
if (Modifier.isTransient(modifiers))
entity.addModifiers("transient");
if (Modifier.isVolatile(modifiers))
entity.addModifiers("volatile");
/*
* We do not extract the static modifier here because we want to set the
* hasClassScope property and we do that specifically only for attributes and
* methods
*/
}
private static int getAdornmentFlags(IBinding binding) {
int adornments= 0;
final int modifiers= binding.getModifiers();
if (Modifier.isAbstract(modifiers))
adornments|= JavaElementImageDescriptor.ABSTRACT;
if (Modifier.isFinal(modifiers))
adornments|= JavaElementImageDescriptor.FINAL;
if (Modifier.isStatic(modifiers))
adornments|= JavaElementImageDescriptor.STATIC;
if (binding.isDeprecated())
adornments|= JavaElementImageDescriptor.DEPRECATED;
if (binding instanceof IMethodBinding) {
if (((IMethodBinding) binding).isConstructor())
adornments|= JavaElementImageDescriptor.CONSTRUCTOR;
if (Modifier.isSynchronized(modifiers))
adornments|= JavaElementImageDescriptor.SYNCHRONIZED;
if (Modifier.isNative(modifiers))
adornments|= JavaElementImageDescriptor.NATIVE;
ITypeBinding type= ((IMethodBinding) binding).getDeclaringClass();
if (type.isInterface() && !Modifier.isAbstract(modifiers) && !Modifier.isStatic(modifiers))
adornments|= JavaElementImageDescriptor.DEFAULT_METHOD;
if (((IMethodBinding) binding).getDefaultValue() != null)
adornments|= JavaElementImageDescriptor.ANNOTATION_DEFAULT;
}
if (binding instanceof IVariableBinding && ((IVariableBinding) binding).isField()) {
if (Modifier.isTransient(modifiers))
adornments|= JavaElementImageDescriptor.TRANSIENT;
if (Modifier.isVolatile(modifiers))
adornments|= JavaElementImageDescriptor.VOLATILE;
}
return adornments;
}
private static boolean isSynchronized(MethodDeclaration decl) {
int modifiers = decl.getModifiers();
return (Modifier.isSynchronized(modifiers));
}