blob: 6a1959ecfea1f245ac41122f3130480680137cf2 [file] [log] [blame]
package com.github.javaparser.ast.nodeTypes;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.stream.Collectors;
import com.github.javaparser.ast.Modifier;
/**
* A Node with Modifiers.
*/
public interface NodeWithModifiers<T> {
/**
* Return the modifiers of this variable declaration.
*
* @see Modifier
* @return modifiers
*/
EnumSet<Modifier> getModifiers();
T setModifiers(EnumSet<Modifier> modifiers);
@SuppressWarnings("unchecked")
default T addModifier(Modifier... modifiers) {
getModifiers().addAll(Arrays.stream(modifiers)
.collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))));
return (T) this;
}
default boolean isStatic() {
return getModifiers().contains(Modifier.STATIC);
}
default boolean isAbstract() {
return getModifiers().contains(Modifier.ABSTRACT);
}
default boolean isFinal() {
return getModifiers().contains(Modifier.FINAL);
}
default boolean isNative() {
return getModifiers().contains(Modifier.NATIVE);
}
default boolean isPrivate() {
return getModifiers().contains(Modifier.PRIVATE);
}
default boolean isProtected() {
return getModifiers().contains(Modifier.PROTECTED);
}
default boolean isPublic() {
return getModifiers().contains(Modifier.PUBLIC);
}
default boolean isStrictfp() {
return getModifiers().contains(Modifier.STRICTFP);
}
default boolean isSynchronized() {
return getModifiers().contains(Modifier.SYNCHRONIZED);
}
default boolean isTransient() {
return getModifiers().contains(Modifier.TRANSIENT);
}
default boolean isVolatile() {
return getModifiers().contains(Modifier.VOLATILE);
}
}