public String accessorName() { return methodInfo.name(); }
public String accessorName() { return methodInfo.name(); }
public boolean hasName(String name) { return name().equals(name); }
public boolean hasNamePrefix(String prefix) { return name().startsWith(prefix); }
public MethodInfoCodeWriter setMethodName() { set(methodInfo.name()); return this; }
public String className() { return Code.upperCaseFirstChar(name()); }
public Object invoke(Object instance) { try { Method method = instance.getClass().getDeclaredMethod(name()); if (!method.isAccessible()) { method.setAccessible(true); } return method.invoke(instance); } catch (SecurityException e) { throw new RuntimeException(e); } catch (NoSuchMethodException e) { throw new AssertionError(e); } catch (IllegalArgumentException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new AssertionError(e); } catch (InvocationTargetException e) { throw new RuntimeException(e); } }
private String attributeName() { return methodInfo.annotationInfo(Attribute.class) .flatMap(ann -> ann.stringValue("name")) .orElse(methodInfo.name()); }
String signature() { StringBuilder sig = new StringBuilder(); sig.append(name()); sig.append("("); Iterator<ParameterInfo> parameters = parameterInfoList().iterator(); if (parameters.hasNext()) { parameters.next().signature(sig); while (parameters.hasNext()) { sig.append(","); parameters.next().signature(sig); } } sig.append(")"); return sig.toString(); }
public String fieldName() { String prefix = getterPrefix(); String field = name().replace(prefix, ""); return Code.lowerCaseFirstChar(field); }
@Override public String toString() { StringBuilder toString = new StringBuilder(); toString.append(accessInfo().declaration()); Iterator<ModifierInfo> modifierInfo = modifierInfoSet().iterator(); while (modifierInfo.hasNext()) { toString.append(modifierInfo.next()); toString.append(" "); } toString.append(returnTypeInfo().qualifiedName()); toString.append(" "); toString.append(name()); toString.append("("); Iterator<ParameterInfo> parameters = parameterInfoList().iterator(); if (parameters.hasNext()) { parameters.next().toString(toString); while (parameters.hasNext()) { toString.append(", "); parameters.next().toString(toString); } } toString.append(")"); return toString.toString(); }
public MethodSpec write() { Builder b = MethodSpec.methodBuilder(methodInfo.name()) .addModifiers(modifiers()) .addParameters(parameterList) .returns(returnTypeName) .varargs(methodInfo.varargs()); for (CodeBlock codeBlock : statementList) { b.addCode(codeBlock); } return build(b); }
void accept(TypeSpec.Builder type) { MethodInfoOverrideWriter writer = methodInfo.overrideWriter(); if (!methodInfo.hasModifierInfo(ModifierInfo.ABSTRACT)) { writer.addStatement("super.$L()", methodInfo.name()); } contributionList.forEach(contribution -> contribution.accept(writer)); if (self) { writer.addStatement("return this"); } type.addMethod(writer.write()); }
void accept(TypeSpec.Builder type) { MethodInfoOverrideWriter writer = methodInfo.overrideWriter(); if (!methodInfo.hasModifierInfo(ModifierInfo.ABSTRACT)) { writer.addStatement("super.$L()", methodInfo.name()); } contributionList.forEach(contribution -> contribution.accept(writer)); if (self) { writer.addStatement("return this"); } type.addMethod(writer.write()); }
@Override public Equality isEqualTo(Object that) { return Tester.of(MethodInfo.class) .add("name", o -> o.name()) .add("accessInfo", o -> o.accessInfo()) .add("modifierInfoSet", o -> o.modifierInfoSet()) .add("returnTypeInfo", o -> o.returnTypeInfo()) .add("annotationInfoList", o -> o.annotationInfoList()) .add("parameterInfoList", o -> o.parameterInfoList()) .test(this, that); }