Home | History | Annotate | Download | only in nodeTypes
      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 }