private void outputBlockMethod(String methodName, Method method, StringBuilder sb) { sb.append("{ \"name\": \""); sb.append(methodName); sb.append("\", \"description\": "); sb.append(formatDescription(method.description)); sb.append(", \"params\": "); outputParameters(method.parameters, sb); if (method.getReturnType() != null) { sb.append(", \"returnType\": \""); sb.append(javaTypeToYailType(method.getReturnType())); sb.append("\"}"); } else { sb.append("}"); } }
private void addCriteriaMethods(TopLevelClass topLevelClass, int newMethodsStart) { if (!generateCriteriaMethods) return; InnerClass criteria = null; for (InnerClass c : topLevelClass.getInnerClasses()) { if (c.getType().getShortName().equals("Criteria")) criteria = c; } if (criteria == null) return; boolean owner = false; for (Field f : criteria.getFields()) if (ExampleMethodsChainPlugin.OWNER.equals(f.getName())) owner = true; if (!owner) return; for (ListIterator<Method> methods = topLevelClass.getMethods().listIterator(newMethodsStart); methods.hasNext(); ) { Method base = methods.next(); if (base.getVisibility() != PUBLIC || base.isStatic() || base.isConstructor()) continue; Method m = method(PUBLIC, base.getReturnType(), base.getName()); StringBuilder sb = new StringBuilder(); sb.append("return ").append(ExampleMethodsChainPlugin.OWNER).append(".").append(base.getName()).append("("); for (ListIterator<Parameter> params = base.getParameters().listIterator(); params.hasNext(); ) { if (params.hasPrevious()) sb.append(", "); Parameter p = params.next(); m.addParameter(new Parameter(p.getType(), p.getName())); sb.append(p.getName()); } sb.append(");"); m.addBodyLine(sb.toString()); criteria.addMethod(m); } }
public static Imports allOf(@Nonnull final Method method) { Check.notNull(method, "method"); final List<Import> imports = Lists.newArrayList(); imports.add(Import.of(method.getReturnType().getType())); imports.addAll(ofAnnotations(method.getAnnotations()).asList()); return new Imports(imports); }
private void importMethod(DbJVClass dbClaz, Method method) throws DbException { if (dbClaz == null) { return; } String methodName = method.getName(); boolean isConstructor = "<init>".equals(methodName); boolean isInitBlock = "<clinit>".equals(methodName); DbOOAbstractMethod oper = null; if (isInitBlock) { new DbJVInitBlock(dbClaz); } else if (isConstructor) { DbJVConstructor constr = new DbJVConstructor(dbClaz); importExceptions(constr, method); oper = constr; } else { // create method and return type DbJVMethod meth = new DbJVMethod(dbClaz); Type type = method.getReturnType(); meth.setReturnType(toAdt(type)); meth.setTypeUse(toTypeUse(type)); // set method modifiers meth.setAbstract(method.isAbstract()); meth.setFinal(method.isFinal()); meth.setNative(method.isNative()); meth.setStatic(method.isStatic()); meth.setStrictfp(method.isStrictfp()); meth.setSynchronized(method.isSynchronized()); // method.isTransient() // method.isVolatile() importExceptions(meth, method); oper = meth; } // set name and visibility if (oper != null) { oper.setName(methodName); oper.setVisibility(toVisibility(method)); // create parameters Type[] args = method.getArgumentTypes(); for (Type arg : args) { DbJVParameter param = new DbJVParameter(oper); param.setType(toAdt(arg)); param.setTypeUse(toTypeUse(arg)); } // end for } // end if } // end importMethod()
/** * Creates a new {@link GeneratorAdapter}. * * @param access access flags of the adapted method. * @param method the adapted method. * @param mv the method visitor to which this adapter delegates calls. */ public GeneratorAdapter(final int access, final Method method, final MethodVisitor mv) { super(access, method.getDescriptor(), mv); this.access = access; this.returnType = method.getReturnType(); this.argumentTypes = method.getArgumentTypes(); }
public String generate(Object argument) { final StringBuffer stringBuffer = new StringBuffer(); CreateMessageDrivenBeanTemplateModel model = (CreateMessageDrivenBeanTemplateModel) argument; model.removeFlags(CreateJavaEEArtifactTemplateModel.FLAG_QUALIFIED_SUPERCLASS_NAME); if (model.getJavaPackageName() != null && model.getJavaPackageName().length() > 0) { stringBuffer.append(TEXT_1); stringBuffer.append(model.getJavaPackageName()); stringBuffer.append(TEXT_2); } stringBuffer.append(TEXT_3); Collection<String> imports = model.getImports(); for (String anImport : imports) { stringBuffer.append(TEXT_4); stringBuffer.append(anImport); stringBuffer.append(TEXT_5); } stringBuffer.append(TEXT_6); stringBuffer.append(TEXT_7); stringBuffer.append(TEXT_8); stringBuffer.append(model.getClassName()); stringBuffer.append(TEXT_9); Map<String, String> params = model.getClassAnnotationParams(); if (!params.isEmpty()) { stringBuffer.append(TEXT_10); Set<String> keys = params.keySet(); boolean needNewLine = keys.contains(CreateMessageDrivenBeanTemplateModel.ATT_ACTIVATION_CONFIG); boolean needComma = false; for (String key : keys) { if (needComma) { stringBuffer.append(TEXT_11); if (needNewLine) { stringBuffer.append(TEXT_12); } } String value = params.get(key); if (key.equals(CreateMessageDrivenBeanTemplateModel.ATT_ACTIVATION_CONFIG)) { stringBuffer.append(TEXT_13); stringBuffer.append(value); stringBuffer.append(TEXT_14); } else { stringBuffer.append(key); stringBuffer.append(TEXT_15); stringBuffer.append(value); } needComma = true; } stringBuffer.append(TEXT_16); } if (!model.isContainerType()) { stringBuffer.append(TEXT_17); } if (model.isPublic()) { stringBuffer.append(TEXT_18); } if (model.isAbstract()) { stringBuffer.append(TEXT_19); } if (model.isFinal()) { stringBuffer.append(TEXT_20); } stringBuffer.append(TEXT_21); stringBuffer.append(model.getClassName()); String superClass = model.getSuperclassName(); if (superClass != null && superClass.length() > 0) { stringBuffer.append(TEXT_22); stringBuffer.append(superClass); } List<String> interfaces = model.getInterfaces(); if (interfaces.size() > 0) { stringBuffer.append(TEXT_23); } for (int i = 0; i < interfaces.size(); i++) { String INTERFACE = (String) interfaces.get(i); if (i > 0) { stringBuffer.append(TEXT_24); } stringBuffer.append(INTERFACE); } stringBuffer.append(TEXT_25); if (!model.hasEmptySuperclassConstructor()) { stringBuffer.append(TEXT_26); stringBuffer.append(model.getClassName()); stringBuffer.append(TEXT_27); } if (model.shouldGenSuperclassConstructors()) { List<Constructor> constructors = model.getConstructors(); for (Constructor constructor : constructors) { if (constructor.isPublic() || constructor.isProtected()) { stringBuffer.append(TEXT_28); stringBuffer.append(model.getSuperclassName()); stringBuffer.append(TEXT_29); stringBuffer.append(model.getSuperclassName()); stringBuffer.append(TEXT_30); stringBuffer.append(constructor.getParamsForJavadoc()); stringBuffer.append(TEXT_31); stringBuffer.append(model.getClassName()); stringBuffer.append(TEXT_32); stringBuffer.append(constructor.getParamsForDeclaration()); stringBuffer.append(TEXT_33); stringBuffer.append(constructor.getParamsForCall()); stringBuffer.append(TEXT_34); } } } if (model.shouldImplementAbstractMethods()) { for (Method method : model.getUnimplementedMethods()) { stringBuffer.append(TEXT_35); stringBuffer.append(method.getContainingJavaClass()); stringBuffer.append(TEXT_36); stringBuffer.append(method.getName()); stringBuffer.append(TEXT_37); stringBuffer.append(method.getParamsForJavadoc()); stringBuffer.append(TEXT_38); stringBuffer.append(method.getReturnType()); stringBuffer.append(TEXT_39); stringBuffer.append(method.getName()); stringBuffer.append(TEXT_40); stringBuffer.append(method.getParamsForDeclaration()); stringBuffer.append(TEXT_41); String defaultReturnValue = method.getDefaultReturnValue(); if (defaultReturnValue != null) { stringBuffer.append(TEXT_42); stringBuffer.append(defaultReturnValue); stringBuffer.append(TEXT_43); } stringBuffer.append(TEXT_44); } } if (model.shouldImplementAbstractMethods()) { if (model.isJMS()) { stringBuffer.append(TEXT_45); } } stringBuffer.append(TEXT_46); stringBuffer.append(TEXT_47); return stringBuffer.toString(); }
public Object visit(Method node) { return layoutBinary( "Method " + node.getName() + ":" + node.getReturnType(), node.getFormalList(), node.getStmtList()); }