1 package com.github.javaparser.ast.nodeTypes; 2 3 import java.util.Arrays; 4 import java.util.EnumSet; 5 import java.util.stream.Collectors; 6 7 import com.github.javaparser.ast.Modifier; 8 9 /** 10 * A Node with Modifiers. 11 */ 12 public interface NodeWithModifiers<T> { 13 /** 14 * Return the modifiers of this variable declaration. 15 * 16 * @see Modifier 17 * @return modifiers 18 */ 19 EnumSet<Modifier> getModifiers(); 20 21 T setModifiers(EnumSet<Modifier> modifiers); 22 23 @SuppressWarnings("unchecked") 24 default T addModifier(Modifier... modifiers) { 25 getModifiers().addAll(Arrays.stream(modifiers) 26 .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)))); 27 return (T) this; 28 } 29 30 default boolean isStatic() { 31 return getModifiers().contains(Modifier.STATIC); 32 } 33 34 default boolean isAbstract() { 35 return getModifiers().contains(Modifier.ABSTRACT); 36 } 37 38 default boolean isFinal() { 39 return getModifiers().contains(Modifier.FINAL); 40 } 41 42 default boolean isNative() { 43 return getModifiers().contains(Modifier.NATIVE); 44 } 45 46 default boolean isPrivate() { 47 return getModifiers().contains(Modifier.PRIVATE); 48 } 49 50 default boolean isProtected() { 51 return getModifiers().contains(Modifier.PROTECTED); 52 } 53 54 default boolean isPublic() { 55 return getModifiers().contains(Modifier.PUBLIC); 56 } 57 58 default boolean isStrictfp() { 59 return getModifiers().contains(Modifier.STRICTFP); 60 } 61 62 default boolean isSynchronized() { 63 return getModifiers().contains(Modifier.SYNCHRONIZED); 64 } 65 66 default boolean isTransient() { 67 return getModifiers().contains(Modifier.TRANSIENT); 68 } 69 70 default boolean isVolatile() { 71 return getModifiers().contains(Modifier.VOLATILE); 72 } 73 }