@Override public void visit(BlockStmt n, Void arg) { out.println("BlockStmt: " + (extended ? n : n.getStatements().size() + " statements")); super.visit(n, arg); }
@Override public int getNumberOfSpecifiedExceptions() { return wrappedNode.getThrownExceptions().size(); }
@Override public int getNumberOfParams() { return this.wrappedNode.getParameters().size(); }
public static int getParamPos(Node node) { if (getParentNode(node) instanceof MethodCallExpr) { MethodCallExpr call = (MethodCallExpr) getParentNode(node); for (int i = 0; i < call.getArguments().size(); i++) { if (call.getArguments().get(i) == node) return i; } throw new IllegalStateException(); } else { throw new IllegalArgumentException(); } }
@Override public ResolvedType visit(FieldDeclaration node, Boolean solveLambdas) { if (node.getVariables().size() == 1) { return node.getVariables().get(0).accept(this, solveLambdas); } else { throw new IllegalArgumentException("Cannot resolve the type of a field with multiple variable declarations. Pick one"); } } }
@Override public List<VariableDeclarator> localVariablesExposedToChild(Node child) { for (int i=0;i<wrappedNode.getVariables().size();i++) { if (child == wrappedNode.getVariable(i)) { return wrappedNode.getVariables().subList(0, i); } } return Collections.emptyList(); }
public static int getParamPos(Node node) { if (requireParentNode(node) instanceof MethodCallExpr) { MethodCallExpr call = (MethodCallExpr) requireParentNode(node); for (int i = 0; i < call.getArguments().size(); i++) { if (call.getArguments().get(i) == node) return i; } throw new IllegalStateException(); } throw new IllegalArgumentException(); }
@Override public ResolvedType visit(FieldDeclaration node, Boolean solveLambdas) { if (node.getVariables().size() == 1) { return node.getVariables().get(0).accept(this, solveLambdas); } else { throw new IllegalArgumentException("Cannot resolve the type of a field with multiple variable declarations. Pick one"); } } }
@Override public ResolvedType visit(VariableDeclarationExpr node, Boolean solveLambdas) { if (node.getVariables().size() != 1) { throw new UnsupportedOperationException(); } return facade.convertToUsageVariableType(node.getVariables().get(0)); }
@Override public ResolvedType visit(VariableDeclarationExpr node, Boolean solveLambdas) { if (node.getVariables().size() != 1) { throw new UnsupportedOperationException(); } return facade.convertToUsageVariableType(node.getVariables().get(0)); }
@Override public ResolvedType visit(FieldDeclaration node, Boolean solveLambdas) { if (node.getVariables().size() == 1) { return node.getVariables().get(0).accept(this, solveLambdas); } throw new IllegalArgumentException("Cannot resolve the type of a field with multiple variable declarations. Pick one"); } }
public static int getParamPos(Node node) { if (getParentNode(node) instanceof MethodCallExpr) { MethodCallExpr call = (MethodCallExpr) getParentNode(node); for (int i = 0; i < call.getArguments().size(); i++) { if (call.getArguments().get(i) == node) return i; } throw new IllegalStateException(); } else { throw new IllegalArgumentException(); } }
@Override public ResolvedType visit(VariableDeclarationExpr node, Boolean solveLambdas) { if (node.getVariables().size() != 1) { throw new UnsupportedOperationException(); } return facade.convertToUsageVariableType(node.getVariables().get(0)); }
private static void writeClassDeclaration(PrintStream s, ClassOrInterfaceDeclaration c) { s.format("\npublic%s class %s", c.isFinal() ? " final" : "", c.getName()); if (c.getImplementedTypes() != null && !c.getImplementedTypes().isEmpty()) { s.format(" implements"); for (ClassOrInterfaceType iface : c.getImplementedTypes()) { s.append(" " + iface); } } s.append(" {\n"); Preconditions.checkArgument(c.getExtendedTypes().size() == 0); }
private static void writeClassDeclaration(PrintStream s, ClassOrInterfaceDeclaration c) { s.format("\npublic%s class %s", c.isFinal() ? " final" : "", c.getName()); if (c.getImplementedTypes() != null && !c.getImplementedTypes().isEmpty()) { s.format(" implements"); for (ClassOrInterfaceType iface : c.getImplementedTypes()) { s.append(" " + iface); } } s.append(" {\n"); Preconditions.checkArgument(c.getExtendedTypes().size() == 0); }
public String getName() { if (declaration instanceof MethodDeclaration) { return ((MethodDeclaration) declaration).getNameAsString(); } else if (declaration instanceof FieldDeclaration) { NodeList<VariableDeclarator> vars = ((FieldDeclaration) declaration).getVariables(); if (vars.size() == 1) { return vars.get(0).getNameAsString(); } } return null; } }
@Override public Boolean visit(BlockStmt n, Void arg) { // An empty block that is not a switch block can complete normally iff it is reachable if (n.isEmpty() && !parentIs(statement, SwitchStmt.class)) { return isReachable(statement); } // A non-empty block that is not a switch block can complete normally iff the last statement in // it can complete normally. if (!n.isEmpty() && !parentIs(statement, SwitchStmt.class)) { return canCompleteNormally(n.getStatement(n.getStatements().size() - 1)); } throw new UnsupportedOperationException(); }
@Override public ResolvedType visit(ArrayCreationExpr node, Boolean solveLambdas) { ResolvedType res = facade.convertToUsage(node.getElementType(), JavaParserFactory.getContext(node, typeSolver)); for (int i = 0; i < node.getLevels().size(); i++) { res = new ResolvedArrayType(res); } return res; }
@Override public ResolvedType visit(ArrayCreationExpr node, Boolean solveLambdas) { ResolvedType res = facade.convertToUsage(node.getElementType(), JavaParserFactory.getContext(node, typeSolver)); for (int i = 0; i < node.getLevels().size(); i++) { res = new ResolvedArrayType(res); } return res; }
@Override public ResolvedType visit(ArrayCreationExpr node, Boolean solveLambdas) { ResolvedType res = facade.convertToUsage(node.getElementType(), JavaParserFactory.getContext(node, typeSolver)); for (int i = 0; i < node.getLevels().size(); i++) { res = new ResolvedArrayType(res); } return res; }