diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/ast/ModifierAccessor.java b/impl/src/main/java/org/jboss/forge/roaster/model/ast/ModifierAccessor.java index b18a8407..0f38d902 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/ast/ModifierAccessor.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/ast/ModifierAccessor.java @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.eclipse.jdt.core.dom.ASTNode; import org.eclipse.jdt.core.dom.BodyDeclaration; @@ -17,29 +16,34 @@ import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword; import org.eclipse.jdt.core.dom.SingleVariableDeclaration; -public class ModifierAccessor +public final class ModifierAccessor { - public boolean hasModifier(ASTNode body, final ModifierKeyword keyword) + + private ModifierAccessor() + { + throw new InternalError("Utility class"); + } + + public static boolean hasModifier(ASTNode body, final ModifierKeyword keyword) { - return getModifiers(body).stream().filter(modifier -> modifier.getKeyword() == keyword).count() != 0; + return getModifiers(body).stream().anyMatch(modifier -> modifier.getKeyword() == keyword); } - private List getModifiers(ASTNode body) + private static List getModifiers(ASTNode body) { List result = new ArrayList<>(); List modifiers = getInternalModifiers(body); for (Object m : modifiers) { - if (m instanceof Modifier) + if (m instanceof Modifier mod) { - Modifier mod = (Modifier) m; result.add(mod); } } return result; } - public List clearVisibility(ASTNode body) + public static List clearVisibility(ASTNode body) { List modifiers = getModifiers(body); @@ -56,7 +60,7 @@ public List clearVisibility(ASTNode body) return modifiers; } - public void addModifier(ASTNode body, ModifierKeyword keyword) + public static void addModifier(ASTNode body, ModifierKeyword keyword) { if (!hasModifier(body, keyword)) { @@ -64,11 +68,11 @@ public void addModifier(ASTNode body, ModifierKeyword keyword) } } - public void removeModifier(ASTNode body, ModifierKeyword keyword) + public static void removeModifier(ASTNode body, ModifierKeyword keyword) { List toBeRemoved = getModifiers(body).stream() .filter(modifier -> modifier.getKeyword().equals(keyword)) - .collect(Collectors.toList()); + .toList(); getInternalModifiers(body).removeAll(toBeRemoved); } diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/impl/AbstractJavaSource.java b/impl/src/main/java/org/jboss/forge/roaster/model/impl/AbstractJavaSource.java index 87b04609..f87d1154 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/impl/AbstractJavaSource.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/impl/AbstractJavaSource.java @@ -41,7 +41,6 @@ public abstract class AbstractJavaSource> extends JavaSo TypeHolderSource, StaticCapableSource { protected final BodyDeclaration body; - private final ModifierAccessor modifiers = new ModifierAccessor(); protected AbstractJavaSource(JavaSource enclosingType, final Document document, final CompilationUnit unit, BodyDeclaration body) @@ -166,7 +165,7 @@ public > NESTED_TYPE addNestedType(String decl @Override public boolean isStatic() { - return modifiers.hasModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD); + return ModifierAccessor.hasModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD); } @Override @@ -174,11 +173,11 @@ public O setStatic(boolean _static) { if (_static) { - modifiers.addModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD); + ModifierAccessor.addModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD); } else { - modifiers.removeModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD); + ModifierAccessor.removeModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD); } return (O) this; } diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/impl/FieldImpl.java b/impl/src/main/java/org/jboss/forge/roaster/model/impl/FieldImpl.java index 912a2dee..c2dabf71 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/impl/FieldImpl.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/impl/FieldImpl.java @@ -39,7 +39,6 @@ public class FieldImpl> implements FieldSource { private final AnnotationAccessor> annotations = new AnnotationAccessor<>(); - private final ModifierAccessor modifiers = new ModifierAccessor(); private final O parent; private final AST ast; @@ -188,32 +187,32 @@ public String toString() @Override public boolean isFinal() { - return modifiers.hasModifier(field, ModifierKeyword.FINAL_KEYWORD); + return ModifierAccessor.hasModifier(field, ModifierKeyword.FINAL_KEYWORD); } @Override public FieldSource setFinal(final boolean finl) { if (finl) - modifiers.addModifier(field, ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.addModifier(field, ModifierKeyword.FINAL_KEYWORD); else - modifiers.removeModifier(field, ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.removeModifier(field, ModifierKeyword.FINAL_KEYWORD); return this; } @Override public boolean isStatic() { - return getOrigin().isInterface() || modifiers.hasModifier(field, ModifierKeyword.STATIC_KEYWORD); + return getOrigin().isInterface() || ModifierAccessor.hasModifier(field, ModifierKeyword.STATIC_KEYWORD); } @Override public FieldSource setStatic(final boolean statc) { if (statc) - modifiers.addModifier(field, ModifierKeyword.STATIC_KEYWORD); + ModifierAccessor.addModifier(field, ModifierKeyword.STATIC_KEYWORD); else - modifiers.removeModifier(field, ModifierKeyword.STATIC_KEYWORD); + ModifierAccessor.removeModifier(field, ModifierKeyword.STATIC_KEYWORD); return this; } @@ -226,49 +225,49 @@ public boolean isPackagePrivate() @Override public FieldSource setPackagePrivate() { - modifiers.clearVisibility(field); + ModifierAccessor.clearVisibility(field); return this; } @Override public boolean isPublic() { - return modifiers.hasModifier(field, ModifierKeyword.PUBLIC_KEYWORD); + return ModifierAccessor.hasModifier(field, ModifierKeyword.PUBLIC_KEYWORD); } @Override public FieldSource setPublic() { - modifiers.clearVisibility(field); - modifiers.addModifier(field, ModifierKeyword.PUBLIC_KEYWORD); + ModifierAccessor.clearVisibility(field); + ModifierAccessor.addModifier(field, ModifierKeyword.PUBLIC_KEYWORD); return this; } @Override public boolean isPrivate() { - return modifiers.hasModifier(field, ModifierKeyword.PRIVATE_KEYWORD); + return ModifierAccessor.hasModifier(field, ModifierKeyword.PRIVATE_KEYWORD); } @Override public FieldSource setPrivate() { - modifiers.clearVisibility(field); - modifiers.addModifier(field, ModifierKeyword.PRIVATE_KEYWORD); + ModifierAccessor.clearVisibility(field); + ModifierAccessor.addModifier(field, ModifierKeyword.PRIVATE_KEYWORD); return this; } @Override public boolean isProtected() { - return modifiers.hasModifier(field, ModifierKeyword.PROTECTED_KEYWORD); + return ModifierAccessor.hasModifier(field, ModifierKeyword.PROTECTED_KEYWORD); } @Override public FieldSource setProtected() { - modifiers.clearVisibility(field); - modifiers.addModifier(field, ModifierKeyword.PROTECTED_KEYWORD); + ModifierAccessor.clearVisibility(field); + ModifierAccessor.addModifier(field, ModifierKeyword.PROTECTED_KEYWORD); return this; } @@ -411,32 +410,32 @@ else if (!fragment.equals(other.fragment)) @Override public boolean isTransient() { - return modifiers.hasModifier(field, ModifierKeyword.TRANSIENT_KEYWORD); + return ModifierAccessor.hasModifier(field, ModifierKeyword.TRANSIENT_KEYWORD); } @Override public FieldSource setTransient(boolean value) { if (value) - modifiers.addModifier(field, ModifierKeyword.TRANSIENT_KEYWORD); + ModifierAccessor.addModifier(field, ModifierKeyword.TRANSIENT_KEYWORD); else - modifiers.removeModifier(field, ModifierKeyword.TRANSIENT_KEYWORD); + ModifierAccessor.removeModifier(field, ModifierKeyword.TRANSIENT_KEYWORD); return this; } @Override public boolean isVolatile() { - return modifiers.hasModifier(field, ModifierKeyword.VOLATILE_KEYWORD); + return ModifierAccessor.hasModifier(field, ModifierKeyword.VOLATILE_KEYWORD); } @Override public FieldSource setVolatile(boolean value) { if (value) - modifiers.addModifier(field, ModifierKeyword.VOLATILE_KEYWORD); + ModifierAccessor.addModifier(field, ModifierKeyword.VOLATILE_KEYWORD); else - modifiers.removeModifier(field, ModifierKeyword.VOLATILE_KEYWORD); + ModifierAccessor.removeModifier(field, ModifierKeyword.VOLATILE_KEYWORD); return this; } diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaClassImpl.java b/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaClassImpl.java index d866513d..e59012e9 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaClassImpl.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaClassImpl.java @@ -31,7 +31,6 @@ */ public class JavaClassImpl extends AbstractGenericCapableJavaSource implements JavaClassSource { - private final ModifierAccessor modifiers = new ModifierAccessor(); public JavaClassImpl(JavaSource enclosingType, final Document document, final CompilationUnit unit, BodyDeclaration body) @@ -59,7 +58,7 @@ protected JavaClassSource updateTypeNames(final String newName) @Override public boolean isAbstract() { - return modifiers.hasModifier(getDeclaration(), ModifierKeyword.ABSTRACT_KEYWORD); + return ModifierAccessor.hasModifier(getDeclaration(), ModifierKeyword.ABSTRACT_KEYWORD); } @Override @@ -67,11 +66,11 @@ public JavaClassSource setAbstract(final boolean abstrct) { if (abstrct) { - modifiers.addModifier(getDeclaration(), ModifierKeyword.ABSTRACT_KEYWORD); + ModifierAccessor.addModifier(getDeclaration(), ModifierKeyword.ABSTRACT_KEYWORD); } else { - modifiers.removeModifier(getDeclaration(), ModifierKeyword.ABSTRACT_KEYWORD); + ModifierAccessor.removeModifier(getDeclaration(), ModifierKeyword.ABSTRACT_KEYWORD); } return this; } @@ -79,16 +78,16 @@ public JavaClassSource setAbstract(final boolean abstrct) @Override public boolean isFinal() { - return modifiers.hasModifier(getDeclaration(), ModifierKeyword.FINAL_KEYWORD); + return ModifierAccessor.hasModifier(getDeclaration(), ModifierKeyword.FINAL_KEYWORD); } @Override public JavaClassSource setFinal(boolean finl) { if (finl) - modifiers.addModifier(getDeclaration(), ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.addModifier(getDeclaration(), ModifierKeyword.FINAL_KEYWORD); else - modifiers.removeModifier(getDeclaration(), ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.removeModifier(getDeclaration(), ModifierKeyword.FINAL_KEYWORD); return this; } diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaSourceImpl.java b/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaSourceImpl.java index 9ad36210..e7ebc9e7 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaSourceImpl.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/impl/JavaSourceImpl.java @@ -53,7 +53,6 @@ public abstract class JavaSourceImpl> implements JavaSource { private static List resolvers; - private final ModifierAccessor modifiers = new ModifierAccessor(); private final AnnotationAccessor annotations = new AnnotationAccessor<>(); protected final Document document; @@ -681,52 +680,52 @@ public String toUnformattedString() @Override public O setPackagePrivate() { - modifiers.clearVisibility(getDeclaration()); + ModifierAccessor.clearVisibility(getDeclaration()); return (O) this; } @Override public boolean isPublic() { - return modifiers.hasModifier(getDeclaration(), ModifierKeyword.PUBLIC_KEYWORD); + return ModifierAccessor.hasModifier(getDeclaration(), ModifierKeyword.PUBLIC_KEYWORD); } @SuppressWarnings("unchecked") @Override public O setPublic() { - modifiers.clearVisibility(getDeclaration()); - modifiers.addModifier(getDeclaration(), ModifierKeyword.PUBLIC_KEYWORD); + ModifierAccessor.clearVisibility(getDeclaration()); + ModifierAccessor.addModifier(getDeclaration(), ModifierKeyword.PUBLIC_KEYWORD); return (O) this; } @Override public boolean isPrivate() { - return modifiers.hasModifier(getDeclaration(), ModifierKeyword.PRIVATE_KEYWORD); + return ModifierAccessor.hasModifier(getDeclaration(), ModifierKeyword.PRIVATE_KEYWORD); } @SuppressWarnings("unchecked") @Override public O setPrivate() { - modifiers.clearVisibility(getDeclaration()); - modifiers.addModifier(getDeclaration(), ModifierKeyword.PRIVATE_KEYWORD); + ModifierAccessor.clearVisibility(getDeclaration()); + ModifierAccessor.addModifier(getDeclaration(), ModifierKeyword.PRIVATE_KEYWORD); return (O) this; } @Override public boolean isProtected() { - return modifiers.hasModifier(getDeclaration(), ModifierKeyword.PROTECTED_KEYWORD); + return ModifierAccessor.hasModifier(getDeclaration(), ModifierKeyword.PROTECTED_KEYWORD); } @SuppressWarnings("unchecked") @Override public O setProtected() { - modifiers.clearVisibility(getDeclaration()); - modifiers.addModifier(getDeclaration(), ModifierKeyword.PROTECTED_KEYWORD); + ModifierAccessor.clearVisibility(getDeclaration()); + ModifierAccessor.addModifier(getDeclaration(), ModifierKeyword.PROTECTED_KEYWORD); return (O) this; } diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java b/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java index c7b95fc4..6328c2a5 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java @@ -55,7 +55,6 @@ public class MethodImpl> implements MethodSource { private final AnnotationAccessor> annotations = new AnnotationAccessor<>(); - private final ModifierAccessor modifiers = new ModifierAccessor(); private O parent = null; private AST ast = null; @@ -358,7 +357,7 @@ public MethodSource setReturnType(final JavaType type) @Override public boolean isAbstract() { - return modifiers.hasModifier(method, ModifierKeyword.ABSTRACT_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.ABSTRACT_KEYWORD); } @Override @@ -366,13 +365,13 @@ public MethodSource setAbstract(final boolean abstrct) { if (abstrct) { - modifiers.addModifier(method, ModifierKeyword.ABSTRACT_KEYWORD); + ModifierAccessor.addModifier(method, ModifierKeyword.ABSTRACT_KEYWORD); // Abstract methods do not specify a body setBody((String) null); } else { - modifiers.removeModifier(method, ModifierKeyword.ABSTRACT_KEYWORD); + ModifierAccessor.removeModifier(method, ModifierKeyword.ABSTRACT_KEYWORD); if (getBody() == null) { setBody(""); @@ -384,48 +383,48 @@ public MethodSource setAbstract(final boolean abstrct) @Override public boolean isFinal() { - return modifiers.hasModifier(method, ModifierKeyword.FINAL_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.FINAL_KEYWORD); } @Override public MethodSource setFinal(final boolean finl) { if (finl) - modifiers.addModifier(method, ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.addModifier(method, ModifierKeyword.FINAL_KEYWORD); else - modifiers.removeModifier(method, ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.removeModifier(method, ModifierKeyword.FINAL_KEYWORD); return this; } @Override public boolean isDefault() { - return modifiers.hasModifier(method, ModifierKeyword.DEFAULT_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.DEFAULT_KEYWORD); } @Override public MethodSource setDefault(boolean value) { if (value) - modifiers.addModifier(method, ModifierKeyword.DEFAULT_KEYWORD); + ModifierAccessor.addModifier(method, ModifierKeyword.DEFAULT_KEYWORD); else - modifiers.removeModifier(method, ModifierKeyword.DEFAULT_KEYWORD); + ModifierAccessor.removeModifier(method, ModifierKeyword.DEFAULT_KEYWORD); return this; } @Override public boolean isStatic() { - return modifiers.hasModifier(method, ModifierKeyword.STATIC_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.STATIC_KEYWORD); } @Override public MethodSource setStatic(final boolean statc) { if (statc) - modifiers.addModifier(method, ModifierKeyword.STATIC_KEYWORD); + ModifierAccessor.addModifier(method, ModifierKeyword.STATIC_KEYWORD); else - modifiers.removeModifier(method, ModifierKeyword.STATIC_KEYWORD); + ModifierAccessor.removeModifier(method, ModifierKeyword.STATIC_KEYWORD); return this; } @@ -434,11 +433,11 @@ public MethodSource setSynchronized(boolean value) { if (value) { - modifiers.addModifier(method, ModifierKeyword.SYNCHRONIZED_KEYWORD); + ModifierAccessor.addModifier(method, ModifierKeyword.SYNCHRONIZED_KEYWORD); } else { - modifiers.removeModifier(method, ModifierKeyword.SYNCHRONIZED_KEYWORD); + ModifierAccessor.removeModifier(method, ModifierKeyword.SYNCHRONIZED_KEYWORD); } return this; } @@ -446,7 +445,7 @@ public MethodSource setSynchronized(boolean value) @Override public boolean isSynchronized() { - return modifiers.hasModifier(method, ModifierKeyword.SYNCHRONIZED_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.SYNCHRONIZED_KEYWORD); } @Override @@ -454,13 +453,13 @@ public MethodSource setNative(boolean value) { if (value) { - modifiers.addModifier(method, ModifierKeyword.NATIVE_KEYWORD); + ModifierAccessor.addModifier(method, ModifierKeyword.NATIVE_KEYWORD); // Native methods do not specify a body setBody((String) null); } else { - modifiers.removeModifier(method, ModifierKeyword.NATIVE_KEYWORD); + ModifierAccessor.removeModifier(method, ModifierKeyword.NATIVE_KEYWORD); if (getBody() == null) { setBody(""); @@ -472,7 +471,7 @@ public MethodSource setNative(boolean value) @Override public boolean isNative() { - return modifiers.hasModifier(method, ModifierKeyword.NATIVE_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.NATIVE_KEYWORD); } @Override @@ -537,49 +536,49 @@ public boolean isPackagePrivate() @Override public MethodSource setPackagePrivate() { - modifiers.clearVisibility(method); + ModifierAccessor.clearVisibility(method); return this; } @Override public boolean isPublic() { - return modifiers.hasModifier(method, ModifierKeyword.PUBLIC_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.PUBLIC_KEYWORD); } @Override public MethodSource setPublic() { - modifiers.clearVisibility(method); - modifiers.addModifier(method, ModifierKeyword.PUBLIC_KEYWORD); + ModifierAccessor.clearVisibility(method); + ModifierAccessor.addModifier(method, ModifierKeyword.PUBLIC_KEYWORD); return this; } @Override public boolean isPrivate() { - return modifiers.hasModifier(method, ModifierKeyword.PRIVATE_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.PRIVATE_KEYWORD); } @Override public MethodSource setPrivate() { - modifiers.clearVisibility(method); - modifiers.addModifier(method, ModifierKeyword.PRIVATE_KEYWORD); + ModifierAccessor.clearVisibility(method); + ModifierAccessor.addModifier(method, ModifierKeyword.PRIVATE_KEYWORD); return this; } @Override public boolean isProtected() { - return modifiers.hasModifier(method, ModifierKeyword.PROTECTED_KEYWORD); + return ModifierAccessor.hasModifier(method, ModifierKeyword.PROTECTED_KEYWORD); } @Override public MethodSource setProtected() { - modifiers.clearVisibility(method); - modifiers.addModifier(method, ModifierKeyword.PROTECTED_KEYWORD); + ModifierAccessor.clearVisibility(method); + ModifierAccessor.addModifier(method, ModifierKeyword.PROTECTED_KEYWORD); return this; } diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/impl/ParameterImpl.java b/impl/src/main/java/org/jboss/forge/roaster/model/impl/ParameterImpl.java index ce4124dc..bd952ef9 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/impl/ParameterImpl.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/impl/ParameterImpl.java @@ -28,7 +28,6 @@ public class ParameterImpl> implements ParameterSource> annotations = new AnnotationAccessor<>(); private final O parent; private final SingleVariableDeclaration param; - private final ModifierAccessor modifiers = new ModifierAccessor(); public ParameterImpl(final O parent, final Object internal) { @@ -127,16 +126,16 @@ public void removeAllAnnotations() @Override public boolean isFinal() { - return modifiers.hasModifier(param, ModifierKeyword.FINAL_KEYWORD); + return ModifierAccessor.hasModifier(param, ModifierKeyword.FINAL_KEYWORD); } @Override public ParameterSource setFinal(boolean finl) { if (finl) - modifiers.addModifier(param, ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.addModifier(param, ModifierKeyword.FINAL_KEYWORD); else - modifiers.removeModifier(param, ModifierKeyword.FINAL_KEYWORD); + ModifierAccessor.removeModifier(param, ModifierKeyword.FINAL_KEYWORD); return this; } diff --git a/pom.xml b/pom.xml index c616a0e0..b43ba4e6 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ 17 true false - + UTF-8 1.9