public TypeDef apply(TypeDef type) { return new TypeDefBuilder(type).accept(UNWRAP_CLASSREF_VISITOR).build(); } };
public Set<TypeDef> apply(Set<TypeDef> source) { Set<TypeDef> result = new LinkedHashSet<TypeDef>(source); Set<TypeParamDef> typeParameters = findParameters(source); for (TypeParamDef type : typeParameters) { Set<TypeDef> intermediate = new LinkedHashSet<TypeDef>(); for (TypeDef clazz : result) { intermediate.add(new TypeDefBuilder(clazz).accept(new TypeParamDefReplace(type, Generics.MAP.apply(type.toReference()))).build()); } result = new LinkedHashSet<TypeDef>(intermediate); } return result; } };
/** * Returns all references of a {@link ClassRef} that are considered buildable. * @param ref The reference. * @return The list with all detected references. */ public static List<ClassRef> findBuildableReferences(ClassRef ref) { List<ClassRef> result = new ArrayList<>(); TypeDef def = new TypeDefBuilder(ref.getDefinition()) .accept(new TypedVisitor<ClassRefBuilder>() { @Override public void visit(ClassRefBuilder builder) { ClassRef candidate = builder.build(); if (isBuildable(candidate)) { result.add(candidate); } } }) .build(); return result; }
private static final Set<TypeParamDef> extractParameters(TypeDef typeDef) { final Set<TypeParamDef> result = new LinkedHashSet<TypeParamDef>(); final Set<TypeParamRef> refs = new LinkedHashSet<TypeParamRef>(); TypeDef ignored = new TypeDefBuilder(typeDef).accept(new TypeParamDefColletor(result)).accept(new TypeParamRefColletor(refs)).build(); for (TypeParamRef typeParamRef : refs) { result.add(new TypeParamDefBuilder().withName(typeParamRef.getName()).withAttributes(typeParamRef.getAttributes()).build()); } return result; }
public TypeDef apply(final TypeDef item) { final Modifier[] modifiers = item.isAbstract() ? new Modifier[]{Modifier.PUBLIC, Modifier.ABSTRACT} : new Modifier[]{Modifier.PUBLIC}; final TypeDef editable = EDITABLE.apply(item); return new TypeDefBuilder(BUILDER.apply(item)) .withAnnotations() .accept(new TypedVisitor<MethodBuilder>() { public void visit(MethodBuilder builder) { if (builder.getName() != null && builder.getName().equals("build")) { builder.withModifiers(TypeUtils.modifiersToInt(modifiers)); builder.withReturnType(editable.toInternalReference()); builder.withBlock(new Block(new Provider<List<Statement>>() { @Override public List<Statement> get() { return toBuild(editable, editable); } })); } } }).build(); } });
.accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build(); .accept(new ReplacePackage("io.sundr.builder", builderPackage)) .build();
.addToAttributes(EDIATABLE_ENABLED, generated.editableEnabled()) .addToAttributes(VALIDATION_ENABLED, generated.validationEnabled()) .accept(new Visitor<PropertyBuilder>() { @Override public void visit(PropertyBuilder builder) { .addToAttributes(EDIATABLE_ENABLED, generated.editableEnabled()) .addToAttributes(VALIDATION_ENABLED, generated.validationEnabled()) .accept(new Visitor<PropertyBuilder>() { @Override public void visit(PropertyBuilder builder) {
final ClassRef reCombinedRef = reCombinedType.toInternalReference(); reCombinedType = new TypeDefBuilder(reCombinedType).accept(new TypedVisitor<TypeDefBuilder>() { public void visit(TypeDefBuilder builder) { List<ClassRef> updatedInterfaces = new ArrayList<ClassRef>();
.addToAttributes(EDIATABLE_ENABLED, buildable.editableEnabled()) .addToAttributes(VALIDATION_ENABLED, buildable.validationEnabled()) .accept(new Visitor<PropertyBuilder>() { @Override public void visit(PropertyBuilder builder) { .addToAttributes(EDIATABLE_ENABLED, buildable.editableEnabled()) .addToAttributes(VALIDATION_ENABLED, buildable.validationEnabled()) .accept(new Visitor<PropertyBuilder>() { @Override public void visit(PropertyBuilder builder) {
.addToAttributes(CARDINALITY_MULTIPLE, multiple) .addToAttributes(KEYWORDS, scopeKeywords(scopeClasses)) .accept(new TypedVisitor<TypeDefBuilder>() { public void visit(TypeDefBuilder builder) { builder.getAttributes().remove(BEGIN_SCOPE);
.addToProperties(builderProperty, functionProperty) .addToMethods(inlineMethod) .accept(new TypedVisitor<ClassRefBuilder>() { public void visit(ClassRefBuilder builder) { List<TypeRef> updatedArguments = new ArrayList<TypeRef>();