Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,41 @@
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;
import org.eclipse.jdt.core.dom.Modifier;
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<Modifier> getModifiers(ASTNode body)
private static List<Modifier> getModifiers(ASTNode body)
{
List<Modifier> 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<Modifier> clearVisibility(ASTNode body)
public static List<Modifier> clearVisibility(ASTNode body)
{
List<Modifier> modifiers = getModifiers(body);

Expand All @@ -56,19 +60,19 @@ public List<Modifier> clearVisibility(ASTNode body)
return modifiers;
}

public void addModifier(ASTNode body, ModifierKeyword keyword)
public static void addModifier(ASTNode body, ModifierKeyword keyword)
{
if (!hasModifier(body, keyword))
{
getInternalModifiers(body).add(body.getAST().newModifier(keyword));
}
}

public void removeModifier(ASTNode body, ModifierKeyword keyword)
public static void removeModifier(ASTNode body, ModifierKeyword keyword)
{
List<Modifier> toBeRemoved = getModifiers(body).stream()
.filter(modifier -> modifier.getKeyword().equals(keyword))
.collect(Collectors.toList());
.toList();
getInternalModifiers(body).removeAll(toBeRemoved);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ public abstract class AbstractJavaSource<O extends JavaSource<O>> extends JavaSo
TypeHolderSource<O>, StaticCapableSource<O>
{
protected final BodyDeclaration body;
private final ModifierAccessor modifiers = new ModifierAccessor();

protected AbstractJavaSource(JavaSource<?> enclosingType, final Document document, final CompilationUnit unit,
BodyDeclaration body)
Expand Down Expand Up @@ -166,19 +165,19 @@ public <NESTED_TYPE extends JavaSource<?>> NESTED_TYPE addNestedType(String decl
@Override
public boolean isStatic()
{
return modifiers.hasModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD);
return ModifierAccessor.hasModifier(getDeclaration(), ModifierKeyword.STATIC_KEYWORD);
}

@Override
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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
public class FieldImpl<O extends JavaSource<O>> implements FieldSource<O>
{
private final AnnotationAccessor<O, FieldSource<O>> annotations = new AnnotationAccessor<>();
private final ModifierAccessor modifiers = new ModifierAccessor();

private final O parent;
private final AST ast;
Expand Down Expand Up @@ -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<O> 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<O> 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;
}

Expand All @@ -226,49 +225,49 @@ public boolean isPackagePrivate()
@Override
public FieldSource<O> 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<O> 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<O> 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<O> setProtected()
{
modifiers.clearVisibility(field);
modifiers.addModifier(field, ModifierKeyword.PROTECTED_KEYWORD);
ModifierAccessor.clearVisibility(field);
ModifierAccessor.addModifier(field, ModifierKeyword.PROTECTED_KEYWORD);
return this;
}

Expand Down Expand Up @@ -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<O> 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<O> 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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
*/
public class JavaClassImpl extends AbstractGenericCapableJavaSource<JavaClassSource> implements JavaClassSource
{
private final ModifierAccessor modifiers = new ModifierAccessor();

public JavaClassImpl(JavaSource<?> enclosingType, final Document document, final CompilationUnit unit,
BodyDeclaration body)
Expand Down Expand Up @@ -59,36 +58,36 @@ 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
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;
}

@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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@
public abstract class JavaSourceImpl<O extends JavaSource<O>> implements JavaSource<O>
{
private static List<WildcardImportResolver> resolvers;
private final ModifierAccessor modifiers = new ModifierAccessor();
private final AnnotationAccessor<O, O> annotations = new AnnotationAccessor<>();

protected final Document document;
Expand Down Expand Up @@ -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;
}

Expand Down
Loading