当前位置: 首页>>代码示例>>Java>>正文


Java ObjectCreationExpr类代码示例

本文整理汇总了Java中org.walkmod.javalang.ast.expr.ObjectCreationExpr的典型用法代码示例。如果您正苦于以下问题:Java ObjectCreationExpr类的具体用法?Java ObjectCreationExpr怎么用?Java ObjectCreationExpr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ObjectCreationExpr类属于org.walkmod.javalang.ast.expr包,在下文中一共展示了ObjectCreationExpr类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: loadThisSymbol

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
private void loadThisSymbol(ObjectCreationExpr n, A arg) {
    if (AnonymousClassUtil.isAnonymousClass(n) && AnonymousClassUtil.needsSymbolData(n)) {
        ScopeLoader scopeLoader = new ScopeLoader(typeTable, expressionTypeAnalyzer, actionProvider);
        Scope scope = n.accept(scopeLoader, symbolTable);
        if (scope != null) {
            symbolTable.pushScope(scope);
        }
        if (n.getAnonymousClassBody() != null) {
            for (BodyDeclaration member : n.getAnonymousClassBody()) {
                member.accept(this, arg);
            }
        }
        if (scope != null) {
            symbolTable.popScope();
        }
    }

}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:19,代码来源:SymbolVisitorAdapter.java

示例2: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Override
public void visit(ObjectCreationExpr n, A arg) {

    loadThisSymbol(n, arg);
    SymbolType[] argsType = argsType(n.getArgs());
    SymbolType scopeType = (SymbolType) n.getType().getSymbolData();
    symbolTable.lookUpSymbolForRead(scopeType.getClazz().getSimpleName(), n, scopeType, argsType,
            ReferenceType.METHOD);

    List<Type> typeargs = n.getTypeArgs();

    if (typeargs != null) {
        for (Type type : typeargs) {
            type.accept(this, arg);
        }
    }
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:18,代码来源:SymbolVisitorAdapter.java

示例3: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
public void visit(ObjectCreationExpr n, T context) {
    boolean restore = false;
    if (startingNode == null) {
        startingNode = n;
        restore = true;
    }
    List<BodyDeclaration> members = n.getAnonymousClassBody();
    if (members != null) {
        SymbolType st = symbolTable.getType("this", ReferenceType.VARIABLE);
        n.setSymbolData(st);
        String name = st.getName();
        String oldCtx = contextName;
        contextName = name;
        processMembers(members, context);
        contextName = oldCtx;
    }
    if (restore) {
        startingNode = null;
    }
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:21,代码来源:TypesLoaderVisitor.java

示例4: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Override
public void visit(ObjectCreationExpr n, A arg) {

    if (n.getScope() != null) {
        n.getScope().accept(this, arg);
    }
    if (n.getTypeArgs() != null) {
        for (Type t : n.getTypeArgs()) {
            t.accept(this, arg);
        }
    }
    n.getType().accept(this, arg);

    if (!AnonymousClassUtil.isAnonymousClass(n) || AnonymousClassUtil.needsSymbolData(n)) {
        SymbolType st = (SymbolType) n.getType().getSymbolData();
        resolveConstructor(n, n.getArgs(), st, arg);
    }

    // we need to update the symbol table
    if (semanticVisitor != null) {
        n.accept(semanticVisitor, arg);
    }

}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:25,代码来源:TypeVisitorAdapter.java

示例5: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
public R visit(ObjectCreationExpr n, A arg) {
    if (n.getScope() != null) {
        n.getScope().accept(this, arg);
    }
    if (n.getTypeArgs() != null) {
        for (Type t : n.getTypeArgs()) {
            t.accept(this, arg);
        }
    }
    n.getType().accept(this, arg);
    if (n.getArgs() != null) {
        for (Expression e : n.getArgs()) {
            e.accept(this, arg);
        }
    }
    if (n.getAnonymousClassBody() != null) {
        for (BodyDeclaration member : n.getAnonymousClassBody()) {
            member.accept(this, arg);
        }
    }
    return null;
}
 
开发者ID:rpau,项目名称:javalang,代码行数:23,代码来源:GenericVisitorAdapter.java

示例6: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
public Boolean visit(ObjectCreationExpr n1, Node arg) {
    ObjectCreationExpr n2 = (ObjectCreationExpr) arg;
    if (!nodeEquals(n1.getScope(), n2.getScope())) {
        return Boolean.FALSE;
    }
    if (!nodeEquals(n1.getType(), n2.getType())) {
        return Boolean.FALSE;
    }
    if (!nodesEquals(n1.getAnonymousClassBody(), n2.getAnonymousClassBody())) {
        return Boolean.FALSE;
    }
    if (!nodesEquals(n1.getArgs(), n2.getArgs())) {
        return Boolean.FALSE;
    }
    if (!nodesEquals(n1.getTypeArgs(), n2.getTypeArgs())) {
        return Boolean.FALSE;
    }
    return Boolean.TRUE;
}
 
开发者ID:rpau,项目名称:javalang,代码行数:20,代码来源:EqualsVisitor.java

示例7: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
public void visit(ObjectCreationExpr n, A arg) {
    if (n.getScope() != null) {
        n.getScope().accept(this, arg);
    }
    if (n.getTypeArgs() != null) {
        for (Type t : n.getTypeArgs()) {
            t.accept(this, arg);
        }
    }
    n.getType().accept(this, arg);
    if (n.getArgs() != null) {
        for (Expression e : n.getArgs()) {
            e.accept(this, arg);
        }
    }
    if (n.getAnonymousClassBody() != null) {
        for (BodyDeclaration member : n.getAnonymousClassBody()) {
            member.accept(this, arg);
        }
    }
}
 
开发者ID:rpau,项目名称:javalang,代码行数:22,代码来源:VoidVisitorAdapter.java

示例8: testAddAnnotationInInnerClass

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Test
public void testAddAnnotationInInnerClass() throws ParseException {
   String code = "public class Foo {\n\tpublic void aux(){\n\t\t new X(){\n\t\t\tvoid hello(){\n\t\t\t\ty();\n\t\t\t}\n\t\t};\n\t}\n}";
   DefaultJavaParser parser = new DefaultJavaParser();
   CompilationUnit cu = parser.parse(code, false);
   CompilationUnit cu2 = parser.parse(code, false);
   MethodDeclaration md = (MethodDeclaration) cu.getTypes().get(0).getMembers().get(0);
   List<Statement> stmts = md.getBody().getStmts();
   ExpressionStmt stmt = (ExpressionStmt) stmts.get(0);
   ObjectCreationExpr oce = (ObjectCreationExpr) stmt.getExpression();

   List<BodyDeclaration> body = oce.getAnonymousClassBody();

   MethodDeclaration md2 = (MethodDeclaration) body.get(0);
   List<AnnotationExpr> annotations = new LinkedList<AnnotationExpr>();
   annotations.add(new MarkerAnnotationExpr(new NameExpr("Override")));
   md2.setAnnotations(annotations);

   List<Action> actions = getActions(cu2, cu);
   Assert.assertEquals(1, actions.size());

   assertCode(actions, code,
         "public class Foo {\n\tpublic void aux(){\n\t\t new X(){\n\t\t\[email protected]\n\t\t\tvoid hello(){\n\t\t\t\ty();\n\t\t\t}\n\t\t};\n\t}\n}");

}
 
开发者ID:walkmod,项目名称:walkmod-javalang-plugin,代码行数:26,代码来源:ChangeLogVisitorTest.java

示例9: getActions

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Override
public List<SymbolAction> getActions(ObjectCreationExpr n) {
    RemoveUnusedSymbolsAction unusedSymbols = new RemoveUnusedSymbolsAction(siblings.peek());
    actions = new LinkedList<SymbolAction>();
    actions.add(unusedSymbols);
    siblings.push(n.getAnonymousClassBody());
    return actions;
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:9,代码来源:RemoveUnusedSymbolsProvider.java

示例10: isDisabledCode

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
static boolean isDisabledCode(ObjectCreationExpr n) {
    Node child = n;
    Node node = child.getParentNode();
    while (node != null) {
        if (node instanceof IfStmt) {
            IfStmt ifs = (IfStmt) node;
            if (child == ifs.getThenStmt() && isCompilationDisabledCondition(ifs.getCondition())) {
                return true;
            }
        }
        child = node;
        node = child.getParentNode();
    }
    return false;
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:16,代码来源:ConditionalCompilationUtil.java

示例11: argTypes

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
private ArgTypes argTypes(List<Expression> args, A arg) {
    boolean hasFunctionalExpressions = false;
    SymbolType[] symbolTypes = null;
    if (args != null) {

        symbolTypes = new SymbolType[args.size()];
        int i = 0;

        for (Expression e : args) {
            if (!(e instanceof LambdaExpr) && !(e instanceof MethodReferenceExpr)) {
                e.accept(this, arg);
                SymbolType argType = null;
                if (e instanceof ObjectCreationExpr) {
                    ObjectCreationExpr aux = (ObjectCreationExpr) e;
                    argType = (SymbolType) aux.getType().getSymbolData();
                } else {
                    argType = (SymbolType) e.getSymbolData();
                }
                symbolTypes[i] = argType;
            } else {
                hasFunctionalExpressions = true;
            }
            i++;
        }
    } else {
        symbolTypes = new SymbolType[0];
    }
    return new ArgTypes(symbolTypes, hasFunctionalExpressions);
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:30,代码来源:TypeVisitorAdapter.java

示例12: doPush

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Override
public void doPush(Symbol<?> symbol, SymbolTable table) throws Exception {
    Node node = symbol.getLocation();

    if (node instanceof TypeDeclaration || node instanceof ObjectCreationExpr) {
        if (symbol.getName().equals("this")) {
            LoadInheritedNestedClasses<?> vis = new LoadInheritedNestedClasses<Object>(table);
            node.accept(vis, null);
        }
    }

}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:13,代码来源:LoadTypeDeclarationsAction.java

示例13: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Override
public void visit(ObjectCreationExpr n, A ctx) {
    n.accept(typeTable, null);
    ClassOrInterfaceType type = n.getType();
    List<ClassOrInterfaceType> extendsList = new LinkedList<ClassOrInterfaceType>();
    extendsList.add(type);
    loadExtendsOrImplements(extendsList);
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:9,代码来源:LoadTypeDeclarationsAction.java

示例14: doPush

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Override
public void doPush(Symbol<?> symbol, SymbolTable table) throws Exception {

    if (symbol.getName().equals("this")) {
        Node node = symbol.getLocation();
        if (node instanceof TypeDeclaration || node instanceof ObjectCreationExpr
                || node instanceof EnumConstantDeclaration) {
            node.accept(new FieldsPopulator(table), table.getScopes().peek());
        }

    }
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:13,代码来源:LoadFieldDeclarationsAction.java

示例15: visit

import org.walkmod.javalang.ast.expr.ObjectCreationExpr; //导入依赖的package包/类
@Override
public void visit(ObjectCreationExpr o, Scope scope) {
    if (!scope.hasFieldsLoaded()) {
        table.pushScope(scope);
        List<ClassOrInterfaceType> types = new LinkedList<ClassOrInterfaceType>();
        types.add(o.getType());
        loadExtendsOrImplements(types);
        loadFields(o.getAnonymousClassBody(), scope);
        table.popScope(true);
    }
}
 
开发者ID:rpau,项目名称:javalang-compiler,代码行数:12,代码来源:LoadFieldDeclarationsAction.java


注:本文中的org.walkmod.javalang.ast.expr.ObjectCreationExpr类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。