src/jdk.compiler/share/classes/com/sun/tools/javac/api/TreeBuilderImpl.java
branchjlahoda-tree-builder
changeset 57300 c79e191854e4
parent 57298 72d5f7163f12
equal deleted inserted replaced
57298:72d5f7163f12 57300:c79e191854e4
    25 
    25 
    26 import java.nio.CharBuffer;
    26 import java.nio.CharBuffer;
    27 import java.util.function.Consumer;
    27 import java.util.function.Consumer;
    28 import java.util.function.Function;
    28 import java.util.function.Function;
    29 
    29 
       
    30 import javax.lang.model.element.Modifier;
    30 import javax.tools.JavaFileObject;
    31 import javax.tools.JavaFileObject;
    31 
    32 
    32 import com.sun.source.doctree.DocTree;
    33 import com.sun.source.doctree.DocTree;
    33 import com.sun.source.tree.CompilationUnitTree;
    34 import com.sun.source.tree.CompilationUnitTree;
    34 import com.sun.source.util.TreeBuilder;
    35 import com.sun.source.util.TreeBuilder;
       
    36 import com.sun.tools.javac.code.Flags;
    35 import com.sun.tools.javac.code.TypeTag;
    37 import com.sun.tools.javac.code.TypeTag;
    36 import com.sun.tools.javac.tree.JCTree;
    38 import com.sun.tools.javac.tree.JCTree;
    37 import com.sun.tools.javac.tree.JCTree.JCClassDecl;
    39 import com.sun.tools.javac.tree.JCTree.JCClassDecl;
    38 import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
    40 import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
    39 import com.sun.tools.javac.tree.JCTree.JCExpression;
    41 import com.sun.tools.javac.tree.JCTree.JCExpression;
    45 import com.sun.tools.javac.util.List;
    47 import com.sun.tools.javac.util.List;
    46 import com.sun.tools.javac.main.JavaCompiler;
    48 import com.sun.tools.javac.main.JavaCompiler;
    47 import com.sun.tools.javac.parser.Parser;
    49 import com.sun.tools.javac.parser.Parser;
    48 import com.sun.tools.javac.parser.ParserFactory;
    50 import com.sun.tools.javac.parser.ParserFactory;
    49 import com.sun.tools.javac.tree.JCTree.JCBlock;
    51 import com.sun.tools.javac.tree.JCTree.JCBlock;
       
    52 import com.sun.tools.javac.tree.JCTree.JCModifiers;
    50 import com.sun.tools.javac.tree.JCTree.JCStatement;
    53 import com.sun.tools.javac.tree.JCTree.JCStatement;
    51 import com.sun.tools.javac.util.JCDiagnostic;
    54 import com.sun.tools.javac.util.JCDiagnostic;
    52 import com.sun.tools.javac.util.Log.DiagnosticHandler;
    55 import com.sun.tools.javac.util.Log.DiagnosticHandler;
    53 import com.sun.tools.javac.util.Names;
    56 import com.sun.tools.javac.util.Names;
    54 
    57 
   157             throw new UnsupportedOperationException("Not supported yet.");
   160             throw new UnsupportedOperationException("Not supported yet.");
   158         }
   161         }
   159 
   162 
   160         @Override
   163         @Override
   161         public Class modifiers(Consumer<Modifiers> modifiers) {
   164         public Class modifiers(Consumer<Modifiers> modifiers) {
   162             throw new UnsupportedOperationException("Not supported yet.");
   165             modifiers.accept(new ModifiersImpl(result.mods));
       
   166             return this;
   163         }
   167         }
   164 
   168 
   165         @Override
   169         @Override
   166         public Class javadoc(DocTree doc) {
   170         public Class javadoc(DocTree doc) {
   167             throw new UnsupportedOperationException("Not supported yet.");
   171             throw new UnsupportedOperationException("Not supported yet.");
   238             return this;
   242             return this;
   239         }
   243         }
   240 
   244 
   241         @Override
   245         @Override
   242         public Variable modifiers(Consumer<Modifiers> modifiers) {
   246         public Variable modifiers(Consumer<Modifiers> modifiers) {
   243             throw new UnsupportedOperationException("Not supported yet.");
   247             modifiers.accept(new ModifiersImpl(result.mods));
       
   248             return this;
   244         }
   249         }
   245 
   250 
   246         @Override
   251         @Override
   247         public Variable javadoc(DocTree doc) {
   252         public Variable javadoc(DocTree doc) {
   248             throw new UnsupportedOperationException("Not supported yet.");
   253             throw new UnsupportedOperationException("Not supported yet.");
   289             return this;
   294             return this;
   290         }
   295         }
   291 
   296 
   292         @Override
   297         @Override
   293         public Method modifiers(Consumer<Modifiers> modifiers) {
   298         public Method modifiers(Consumer<Modifiers> modifiers) {
   294             throw new UnsupportedOperationException("Not supported yet.");
   299             modifiers.accept(new ModifiersImpl(result.mods));
       
   300             return this;
   295         }
   301         }
   296 
   302 
   297         @Override
   303         @Override
   298         public Method javadoc(DocTree doc) {
   304         public Method javadoc(DocTree doc) {
   299             throw new UnsupportedOperationException("Not supported yet.");
   305             throw new UnsupportedOperationException("Not supported yet.");
   475         public void ident(String... qnames) {
   481         public void ident(String... qnames) {
   476             expr = make.Ident(names.fromString(qnames[0]));
   482             expr = make.Ident(names.fromString(qnames[0]));
   477             for (int i = 1; i < qnames.length; i++) {
   483             for (int i = 1; i < qnames.length; i++) {
   478                 expr = make.Select(expr, names.fromString(qnames[i]));
   484                 expr = make.Select(expr, names.fromString(qnames[i]));
   479             }
   485             }
       
   486         }
       
   487 
       
   488     }
       
   489 
       
   490     private final class ModifiersImpl implements Modifiers {
       
   491 
       
   492         private final JCModifiers mods;
       
   493 
       
   494         public ModifiersImpl(JCModifiers mods) {
       
   495             this.mods = mods;
       
   496         }
       
   497 
       
   498         @Override
       
   499         public Modifiers modifier(Modifier modifier) {
       
   500             long flag;
       
   501             switch (modifier) {
       
   502                 case PUBLIC: flag = Flags.PUBLIC; break;
       
   503                 case PROTECTED: flag = Flags.PROTECTED; break;
       
   504                 case PRIVATE: flag = Flags.PRIVATE; break;
       
   505                 case ABSTRACT: flag = Flags.ABSTRACT; break;
       
   506                 case STATIC: flag = Flags.STATIC; break;
       
   507                 case FINAL: flag = Flags.FINAL; break;
       
   508                 case TRANSIENT: flag = Flags.TRANSIENT; break;
       
   509                 case VOLATILE: flag = Flags.VOLATILE; break;
       
   510                 case SYNCHRONIZED: flag = Flags.SYNCHRONIZED; break;
       
   511                 case NATIVE: flag = Flags.NATIVE; break;
       
   512                 case STRICTFP: flag = Flags.STRICTFP; break;
       
   513                 case DEFAULT: flag = Flags.DEFAULT; break;
       
   514                 default:
       
   515                     throw new IllegalArgumentException("Unknown modifier: " + modifier);
       
   516             }
       
   517             mods.flags |= flag;
       
   518             return this;
       
   519         }
       
   520 
       
   521         @Override
       
   522         public Modifiers annotation(Consumer<Annotation> annotation) {
       
   523             throw new UnsupportedOperationException("Not supported yet.");
   480         }
   524         }
   481 
   525 
   482     }
   526     }
   483 
   527 
   484     private JCExpression visitExpression(Consumer<Expression> c) {
   528     private JCExpression visitExpression(Consumer<Expression> c) {