/** Returns a standalone adapter for {@code type}. */ public TypeSpec generateAdapterForCustomType(Type type) { NameAllocator nameAllocator = nameAllocators.getUnchecked(type); ClassName adapterTypeName = abstractAdapterName(type.type()); ClassName typeName = (ClassName) typeName(type.type()); TypeSpec.Builder adapter; if (type instanceof MessageType) { adapter = messageAdapter(nameAllocator, (MessageType) type, typeName, adapterTypeName, null) .toBuilder(); } else { adapter = enumAdapter(nameAllocator, (EnumType) type, typeName, adapterTypeName).toBuilder(); } if (adapterTypeName.enclosingClassName() != null) adapter.addModifiers(STATIC); for (Type nestedType : type.nestedTypes()) { if (profile.getAdapter(nestedType.type()) == null) { throw new IllegalArgumentException("Missing custom proto adapter for " + nestedType.type().enclosingTypeOrPackage() + "." + nestedType.type().simpleName() + " when enclosing proto has custom proto adapter."); } adapter.addType(generateAdapterForCustomType(nestedType)); } return adapter.build(); }
private static void createInlineType(CreationResult containingResult) { for (CreationResult internalType: containingResult.internalTypes.values()) { // here I must check to see if the container is an interface, if it is, I must add static. createInlineType(internalType); TypeSpec.Builder internalBuilder = internalType.getInterface().toBuilder(); if ( internalType.getInterface().kind == TypeSpec.Kind.CLASS) { internalBuilder.addModifiers(Modifier.STATIC); } containingResult.interf = containingResult.getInterface().toBuilder().addType(internalBuilder.build()).build(); if ( containingResult.getImplementation().isPresent()) { if (internalType.getImplementation().isPresent() ) { containingResult.impl = containingResult.getImplementation().get().toBuilder().addType( internalType.getImplementation().get().toBuilder(). addModifiers(Modifier.STATIC).build()).build(); } } else { if ( internalType.getImplementation().isPresent() ) { containingResult.interf = containingResult.getInterface().toBuilder().addType(internalType.getImplementation().get().toBuilder().addModifiers(Modifier.STATIC).build()).build(); } } } }
@Nonnull @CheckReturnValue public String convert(@Nonnull String packageName, @Nonnull String className, @Nonnull String json) throws IOException { final JsonValue value = configuration.jsonParser().parse(json); final TypeSpec.Builder builder = fromValue(className, value).toBuilder(); // Adding root class specific annotations for (final AnnotationPolicy policy : configuration.annotationPolicies()) { policy.apply(builder); } return configuration.javaBuilder().build(packageName, builder.build()); }
private static void writeClassFile(String packageName, TypeSpec classSpec, Filer filer) throws ProcessorException { try { AnnotationSpec generatedAnnotation = AnnotationSpec.builder(Generated.class) .addMember("value", "$S", CODE_GEN) .build(); classSpec = classSpec.toBuilder() .addAnnotation(generatedAnnotation) .build(); JavaFile javaFile = JavaFile.builder(packageName, classSpec) .skipJavaLangImports(true) .build(); javaFile.writeTo(filer); } catch (IOException e) { throw new ProcessorException("Cannot generate code file %s.%s.", packageName, classSpec.name); } }
public void mergeWithParentFrom(Map<Element, ClassSpecDescription> classes) { ClassSpecDescription container = classes.computeIfAbsent( getClassElement().getEnclosingElement(), enclosing -> new ClassSpecDescription( getClassElement().getEnclosingElement(), MethodsCollector.commonClassPart(enclosing).build() ) ); container.setSpec( container.getSpec() .toBuilder() .addType(getSpec()) .build() ); }
final TypeSpec.Builder builder = generatePresenterHost(annotatedPresenter, false).toBuilder(); for (AnnotatedPresenter ap : annotatedPresenterList) { final TypeSpec cls = generatePresenterHost(ap, true);
private void resolveDependencies() { for (CursorHelper from : cursorHelpers) { for (Dependency dependency : from.dependencies) { for (CursorHelper to : cursorHelpers) { if (dependency.getTypeName().equals(ProcessUtils.getFieldClass(to.element))) { HashSet<String> methodsNames = new HashSet<>(ProcessUtils.getMethodsNames(to.getTypeSpec())); TypeSpec.Builder builder = to.getTypeSpec().toBuilder(); for (MethodSpec methodSpec : dependency.getMethodsToAdd()) { if (!methodsNames.contains(ProcessUtils.getMethodId(methodSpec))) { builder.addMethod(methodSpec); methodsNames.add(ProcessUtils.getMethodId(methodSpec)); } } to.setTypeSpec(builder.build()); } } } } }
TypeSpec.Builder builder = typeAdapter.toBuilder(); generatedAnnotationSpec.ifPresent(builder::addAnnotation); JavaFile.builder(context.packageName(), builder.build()) TypeSpec.Builder subclass = TypeSpec.classBuilder(classNameClass) .superclass(superclasstype) .addType(typeAdapter.toBuilder() .addModifiers(STATIC) .build())
.endControlFlow().build(); BundleHelper = BundleHelper.toBuilder() .addMethod(pack) .addMethod(unpack)