private void addConstructorUnlessAlreadyExisting(ClassNode classNode, ConstructorNode consNode, boolean copyConstructorAnnotations, boolean copyParameterAnnotations) { Parameter[] origParams = consNode.getParameters(); if (consNode.isPrivate()) return; Parameter[] params = new Parameter[origParams.length]; Map<String, ClassNode> genericsSpec = createGenericsSpec(classNode); extractSuperClassGenerics(classNode, classNode.getSuperClass(), genericsSpec); List<Expression> theArgs = buildParams(origParams, params, genericsSpec, copyParameterAnnotations); if (isExisting(classNode, params)) return; ConstructorNode added = addGeneratedConstructor(classNode, consNode.getModifiers(), params, consNode.getExceptions(), block(ctorSuperS(args(theArgs)))); if (copyConstructorAnnotations) { added.addAnnotations(copyAnnotatedNodeAnnotations(consNode, MY_TYPE_NAME)); } }
if (cn.isPrivate()) { ClassNode classNode = controller.getClassNode(); ClassNode declaringClass = cn.getDeclaringClass();
private void addConstructorUnlessAlreadyExisting(ClassNode classNode, ConstructorNode consNode) { Parameter[] origParams = consNode.getParameters(); if (consNode.isPrivate()) return; Parameter[] params = new Parameter[origParams.length]; List<Expression> args = new ArrayList<Expression>(); for (int i = 0; i < origParams.length; i++) { Parameter p = origParams[i]; params[i] = p.hasInitialExpression() ? new Parameter(p.getType(), p.getName(), p.getInitialExpression()) : new Parameter(p.getType(), p.getName()); args.add(new VariableExpression(p.getName(), p.getType())); } if (isExisting(classNode, params)) return; BlockStatement body = new BlockStatement(); body.addStatement(new ExpressionStatement( new ConstructorCallExpression(ClassNode.SUPER, new ArgumentListExpression(args)))); classNode.addConstructor(consNode.getModifiers(), params, consNode.getExceptions(), body); }