@Override public boolean matches(final INode other, final Match match) { if (other instanceof AnonymousObjectCreationExpression) { final AnonymousObjectCreationExpression otherExpression = (AnonymousObjectCreationExpression) other; return super.matches(other, match) && getTypeDeclaration().matches(otherExpression.getTypeDeclaration(), match); } return false; } }
@Override public boolean matches(final INode other, final Match match) { if (other instanceof AnonymousObjectCreationExpression) { final AnonymousObjectCreationExpression otherExpression = (AnonymousObjectCreationExpression) other; return super.matches(other, match) && getTypeDeclaration().matches(otherExpression.getTypeDeclaration(), match); } return false; } }
@Override public boolean matches(final INode other, final Match match) { if (other instanceof AnonymousObjectCreationExpression) { final AnonymousObjectCreationExpression otherExpression = (AnonymousObjectCreationExpression) other; return super.matches(other, match) && getTypeDeclaration().matches(otherExpression.getTypeDeclaration(), match); } return false; } }
@Override public Void visitAnonymousObjectCreationExpression(final AnonymousObjectCreationExpression node, final Void p) { super.visitAnonymousObjectCreationExpression(node, p); final TypeDefinition resolvedType = node.getTypeDeclaration().getUserData(Keys.TYPE_DEFINITION); if (resolvedType != null && isLocalOrAnonymous(resolvedType)) { List<ObjectCreationExpression> instantiations = _instantiations.get(resolvedType); if (instantiations == null) { _instantiations.put(resolvedType, instantiations = new ArrayList<>()); } instantiations.add(node); } return null; }
@Override public Void visitAnonymousObjectCreationExpression(final AnonymousObjectCreationExpression node, final Void _) { super.visitAnonymousObjectCreationExpression(node, _); final TypeDefinition resolvedType = node.getTypeDeclaration().getUserData(Keys.TYPE_DEFINITION); if (resolvedType != null && isLocalOrAnonymous(resolvedType)) { List<ObjectCreationExpression> instantiations = _instantiations.get(resolvedType); if (instantiations == null) { _instantiations.put(resolvedType, instantiations = new ArrayList<>()); } instantiations.add(node); } return null; }
@Override public Void visitAnonymousObjectCreationExpression(final AnonymousObjectCreationExpression node, final Void _) { super.visitAnonymousObjectCreationExpression(node, _); final TypeDefinition resolvedType = node.getTypeDeclaration().getUserData(Keys.TYPE_DEFINITION); if (resolvedType != null && isLocalOrAnonymous(resolvedType)) { List<ObjectCreationExpression> instantiations = _instantiations.get(resolvedType); if (instantiations == null) { _instantiations.put(resolvedType, instantiations = new ArrayList<>()); } instantiations.add(node); } return null; }
@Override public Void visitAnonymousObjectCreationExpression(final AnonymousObjectCreationExpression node, final Void data) { for (final Expression argument : node.getArguments()) { argument.acceptVisitor(this, data); } processCall(node); node.getTypeDeclaration().acceptVisitor(this, data); return null; }
public static void replaceClosureMembers( final DecompilerContext context, final TypeDeclaration declaration, final List<? extends ObjectCreationExpression> instantiations) { VerifyArgument.notNull(context, "context"); VerifyArgument.notNull(declaration, "declaration"); VerifyArgument.notNull(instantiations, "instantiations"); final Map<String, Expression> initializers = new HashMap<>(); final Map<String, Expression> replacements = new HashMap<>(); final List<AstNode> nodesToRemove = new ArrayList<>(); final List<ParameterDefinition> parametersToRemove = new ArrayList<>(); final List<Expression> originalArguments; if (instantiations.isEmpty()) { originalArguments = Collections.emptyList(); } else { originalArguments = new ArrayList<>(instantiations.get(0).getArguments()); } new ClosureRewriterPhaseOneVisitor(context, originalArguments, replacements, initializers, parametersToRemove, nodesToRemove).run(declaration); rewriteThisReferences(context, declaration, initializers); new ClosureRewriterPhaseTwoVisitor(context, replacements, initializers).run(declaration); for (final ObjectCreationExpression instantiation : instantiations) { for (final ParameterDefinition p : parametersToRemove) {
public static void replaceClosureMembers( final DecompilerContext context, final TypeDeclaration declaration, final List<? extends ObjectCreationExpression> instantiations) { VerifyArgument.notNull(context, "context"); VerifyArgument.notNull(declaration, "declaration"); VerifyArgument.notNull(instantiations, "instantiations"); final Map<String, Expression> initializers = new HashMap<>(); final Map<String, Expression> replacements = new HashMap<>(); final List<AstNode> nodesToRemove = new ArrayList<>(); final List<ParameterDefinition> parametersToRemove = new ArrayList<>(); final List<Expression> originalArguments; if (instantiations.isEmpty()) { originalArguments = Collections.emptyList(); } else { originalArguments = new ArrayList<>(instantiations.get(0).getArguments()); } new ClosureRewriterPhaseOneVisitor(context, originalArguments, replacements, initializers, parametersToRemove, nodesToRemove).run(declaration); rewriteThisReferences(context, declaration, initializers); new ClosureRewriterPhaseTwoVisitor(context, replacements, initializers).run(declaration); for (final ObjectCreationExpression instantiation : instantiations) { for (final ParameterDefinition p : parametersToRemove) {
public static void replaceClosureMembers( final DecompilerContext context, final TypeDeclaration declaration, final List<? extends ObjectCreationExpression> instantiations) { VerifyArgument.notNull(context, "context"); VerifyArgument.notNull(declaration, "declaration"); VerifyArgument.notNull(instantiations, "instantiations"); final Map<String, Expression> initializers = new HashMap<>(); final Map<String, Expression> replacements = new HashMap<>(); final List<AstNode> nodesToRemove = new ArrayList<>(); final List<ParameterDefinition> parametersToRemove = new ArrayList<>(); final List<Expression> originalArguments; if (instantiations.isEmpty()) { originalArguments = Collections.emptyList(); } else { originalArguments = new ArrayList<>(instantiations.get(0).getArguments()); } new ClosureRewriterPhaseOneVisitor(context, originalArguments, replacements, initializers, parametersToRemove, nodesToRemove).run(declaration); rewriteThisReferences(context, declaration, initializers); new ClosureRewriterPhaseTwoVisitor(context, replacements, initializers).run(declaration); for (final ObjectCreationExpression instantiation : instantiations) { for (final ParameterDefinition p : parametersToRemove) {
final AnonymousObjectCreationExpression creation = (AnonymousObjectCreationExpression) initializer; for (final EntityDeclaration member : creation.getTypeDeclaration().getMembers()) { member.remove(); enumDeclaration.getMembers().add(member);
final AnonymousObjectCreationExpression creation = (AnonymousObjectCreationExpression) initializer; for (final EntityDeclaration member : creation.getTypeDeclaration().getMembers()) { member.remove(); enumDeclaration.getMembers().add(member);
final AnonymousObjectCreationExpression creation = (AnonymousObjectCreationExpression) initializer; for (final EntityDeclaration member : creation.getTypeDeclaration().getMembers()) { member.remove(); enumDeclaration.getMembers().add(member);
@Override public Void visitAnonymousObjectCreationExpression(final AnonymousObjectCreationExpression node, final Void ignored) { startNode(node); final Expression target = node.getTarget(); if (target != null && !target.isNull()) { target.acceptVisitor(this, ignored); writeToken(Roles.DOT); } writeKeyword(ObjectCreationExpression.NEW_KEYWORD_ROLE); node.getType().acceptVisitor(this, ignored); space(policy.SpaceBeforeMethodCallParentheses); writeCommaSeparatedListInParenthesis(node.getArguments(), policy.SpaceWithinMethodCallParentheses); node.getTypeDeclaration().acceptVisitor(new JavaOutputVisitor(output, settings), ignored); endNode(node); return null; }
@Override public Void visitAnonymousObjectCreationExpression(final AnonymousObjectCreationExpression node, final Void ignored) { startNode(node); final Expression target = node.getTarget(); if (target != null && !target.isNull()) { target.acceptVisitor(this, ignored); writeToken(Roles.DOT); } writeKeyword(ObjectCreationExpression.NEW_KEYWORD_ROLE); node.getType().acceptVisitor(this, ignored); space(policy.SpaceBeforeMethodCallParentheses); writeCommaSeparatedListInParenthesis(node.getArguments(), policy.SpaceWithinMethodCallParentheses); node.getTypeDeclaration().acceptVisitor(new JavaOutputVisitor(output, settings), ignored); endNode(node); return null; }
@Override public Void visitAnonymousObjectCreationExpression(final AnonymousObjectCreationExpression node, final Void ignored) { startNode(node); final Expression target = node.getTarget(); if (target != null && !target.isNull()) { target.acceptVisitor(this, ignored); writeToken(Roles.DOT); } writeKeyword(ObjectCreationExpression.NEW_KEYWORD_ROLE); node.getType().acceptVisitor(this, ignored); space(policy.SpaceBeforeMethodCallParentheses); writeCommaSeparatedListInParenthesis(node.getArguments(), policy.SpaceWithinMethodCallParentheses); node.getTypeDeclaration().acceptVisitor(new JavaOutputVisitor(output, settings), ignored); endNode(node); return null; }