@Override public JavaWriter beginConstructor(Parameter... parameters) throws IOException { types.push(types.peek()); beginLine(PUBLIC, types.peek().getSimpleName()).params(parameters).append(" {").nl(); return goIn(); }
@Override public <T> JavaWriter beginConstructor(Collection<T> parameters, Function<T, Parameter> transformer) throws IOException { types.push(types.peek()); beginLine(PUBLIC, types.peek().getSimpleName()).params(parameters, transformer) .append(" {").nl(); return goIn(); }
private JavaWriter beginMethod(String modifiers, Type returnType, String methodName, Parameter... args) throws IOException { types.push(types.peek()); beginLine( modifiers, returnType.getGenericName(true, packages, classes), SPACE, methodName) .params(args).append(" {").nl(); return goIn(); }
@Override public JavaWriter annotation(Class<? extends Annotation> annotation) throws IOException { return beginLine().append("@").appendType(annotation).nl(); }
@Override public JavaWriter annotation(Annotation annotation) throws IOException { beginLine().append("@").appendType(annotation.annotationType()); Method[] methods = annotation.annotationType().getDeclaredMethods(); if (methods.length == 1 && methods[0].getName().equals("value")) {
@Override public JavaWriter beginInterface(Type type, Type... interfaces) throws IOException { packages.add(type.getPackageName()); beginLine(PUBLIC_INTERFACE, type.getGenericName(false, packages, classes)); if (interfaces.length > 0) { append(EXTENDS); for (int i = 0; i < interfaces.length; i++) { if (i > 0) { append(COMMA); } append(interfaces[i].getGenericName(false, packages, classes)); } } append(" {").nl().nl(); goIn(); types.push(type); return this; }
@Override public JavaWriter beginClass(Type type, Type superClass, Type... interfaces) throws IOException { packages.add(type.getPackageName()); beginLine(PUBLIC_CLASS, type.getGenericName(false, packages, classes)); if (superClass != null) { append(EXTENDS).append(superClass.getGenericName(false, packages, classes)); } if (interfaces.length > 0) { append(IMPLEMENTS); for (int i = 0; i < interfaces.length; i++) { if (i > 0) { append(COMMA); } append(interfaces[i].getGenericName(false, packages, classes)); } } append(" {").nl().nl(); goIn(); types.push(type); return this; }