@Override public <T> void visitCtInvocation(CtInvocation<T> invocation) { if (childJDT instanceof TypeReference && child instanceof CtTypeAccess) { invocation.getExecutable().addActualTypeArgument(((CtTypeAccess) child).getAccessedType()); return; } else if (child instanceof CtExpression) { if (hasChildEqualsToReceiver(invocation) || hasChildEqualsToQualification(invocation)) { if (child instanceof CtThisAccess) { final CtTypeReference<?> declaringType = invocation.getExecutable().getDeclaringType(); if (declaringType != null && invocation.getExecutable().isStatic() && child.isImplicit()) { invocation.setTarget(jdtTreeBuilder.getFactory().Code().createTypeAccess(declaringType, declaringType.isAnonymous())); } else { invocation.setTarget((CtThisAccess<?>) child); } } else { invocation.setTarget((CtExpression<?>) child); } } else { invocation.addArgument((CtExpression<?>) child); } return; } super.visitCtInvocation(invocation); }
constant = false; i.addArgument(re);
@Override public <T> void visitCtInvocation(CtInvocation<T> invocation) { if (this.jdtTreeBuilder.context.isArgument(invocation) && child instanceof CtExpression) { invocation.addArgument((CtExpression<?>) child); return; } else if (child instanceof CtExpression) { invocation.setTarget((CtExpression<?>) child); return; } super.visitCtInvocation(invocation); }
CtLocalVariable localVar = (CtLocalVariable) stmt; final CtVariableAccess variableRead = stmt.getFactory().createVariableRead(localVar.getReference(), false);// TODO checks static invocationToObjectLog.addArgument(variableRead); invocationToObjectLog.addArgument(stmt.getFactory().createLiteral(localVar.getSimpleName())); insertAfter = stmt; } else if (stmt instanceof CtAssignment) { CtAssignment localVar = (CtAssignment) stmt; invocationToObjectLog.addArgument(localVar.getAssigned()); invocationToObjectLog.addArgument(stmt.getFactory().createLiteral(localVar.getAssigned().toString())); insertAfter = stmt; } else if (stmt instanceof CtInvocation) { CtInvocation invocation = (CtInvocation) stmt; if (isVoidReturn(invocation)) { invocationToObjectLog.addArgument(invocation.getTarget()); invocationToObjectLog.addArgument(stmt.getFactory().createLiteral( invocation.getTarget().toString().replace("\"", "\\\"")) ); throw new RuntimeException(e); invocationToObjectLog.addArgument(stmt.getFactory().createVariableRead(localVariable.getReference(), false)); invocationToObjectLog.addArgument(stmt.getFactory().createLiteral("o_" + id)); insertAfter = localVariable; invocationToObjectLogAtTheEnd.addArgument(stmt.getFactory().createLiteral(id + "___" + "end")); invocationToObjectLog.addArgument(stmt.getFactory().createLiteral(id));
constant = false; i.addArgument(re);