Create and return the builder for the ExposedType of our {@link IsVueComponent}.

@param exposedTypeClassName The name of the generated ExposedType class
@return A Builder to build the class
160294
private Builder createComponentExposedTypeBuilder(ClassName exposedTypeClassName) {
    return TypeSpec
        .classBuilder(exposedTypeClassName)
        .addModifiers(Modifier.PUBLIC)
        .superclass(TypeName.get(component.asType()))
        .addAnnotation(AnnotationSpec
            .builder(Generated.class)
            .addMember("value", "$S", ComponentExposedTypeGenerator.class.getCanonicalName())
            .addMember("comments", "$S", "https://github.com/Axellience/vue-gwt")
            .build());
  }
517062
@Nonnull
	public static <R> LByteFunction<R> byteFunctionFrom(Consumer<LByteFunctionBuilder<R>> buildingFunction) {
		LByteFunctionBuilder builder = new LByteFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
7481
@Nonnull
	public static LBoolSupplier boolSupplierFrom(Consumer<LBoolSupplierBuilder> buildingFunction) {
		LBoolSupplierBuilder builder = new LBoolSupplierBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
523819
@Nonnull
	public static LByteToCharFunction byteToCharFunctionFrom(Consumer<LByteToCharFunctionBuilder> buildingFunction) {
		LByteToCharFunctionBuilder builder = new LByteToCharFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
449021
@Nonnull
	public static <R> LSrtFunction<R> srtFunctionFrom(Consumer<LSrtFunctionBuilder<R>> buildingFunction) {
		LSrtFunctionBuilder builder = new LSrtFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
1123388
public static <T extends Annotation> T create(Class<T> annotationType) {
    return new Builder<T>(annotationType).create();
  }
458577
@XmlElementDecl(namespace = "http://www.opengis.net/citygml/building/2.0", name = "Building", substitutionHeadNamespace = "http://www.opengis.net/citygml/building/2.0", substitutionHeadName = "_AbstractBuilding")
    public JAXBElement<BuildingType> createBuilding(BuildingType value) {
        return new JAXBElement<BuildingType>(_Building_QNAME, BuildingType.class, null, value);
    }
768143
@Nonnull
	public static <T1, T2, R> LBiObjIntFunction<T1, T2, R> biObjIntFunctionFrom(Consumer<LBiObjIntFunctionBuilder<T1, T2, R>> buildingFunction) {
		LBiObjIntFunctionBuilder builder = new LBiObjIntFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
881065
@Nonnull
	public static <T> BinaryOperator<T> binaryOperatorFrom(Consumer<BinaryOperatorBuilder<T>> buildingFunction) {
		BinaryOperatorBuilder builder = new BinaryOperatorBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
442883
@Nonnull
	public static LSrtSupplier srtSupplierFrom(Consumer<LSrtSupplierBuilder> buildingFunction) {
		LSrtSupplierBuilder builder = new LSrtSupplierBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
582591
@Nonnull
	public static <T1, T2, R> LBiObjFltFunction<T1, T2, R> biObjFltFunctionFrom(Consumer<LBiObjFltFunctionBuilder<T1, T2, R>> buildingFunction) {
		LBiObjFltFunctionBuilder builder = new LBiObjFltFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
188303
@Nonnull
	public static <T1, T2, R> LBiObjDblFunction<T1, T2, R> biObjDblFunctionFrom(Consumer<LBiObjDblFunctionBuilder<T1, T2, R>> buildingFunction) {
		LBiObjDblFunctionBuilder builder = new LBiObjDblFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
1126356
@Nonnull
	public static <T, R> LObjBoolFunction<T, R> objBoolFunctionFrom(Consumer<LObjBoolFunctionBuilder<T, R>> buildingFunction) {
		LObjBoolFunctionBuilder builder = new LObjBoolFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
823211
public BuildableType.Builder mergeFrom(BuildableType.Builder template) {
    // Upcast to access private fields; otherwise, oddly, we get an access violation.
    BuildableType_Builder base = template;
    BuildableType_Builder defaults = new BuildableType.Builder();
    if (!base._unsetProperties.contains(Property.TYPE)
        && (defaults._unsetProperties.contains(Property.TYPE)
            || !Objects.equals(template.type(), defaults.type()))) {
      type(template.type());
    }
    if (!base._unsetProperties.contains(Property.BUILDER_TYPE)
        && (defaults._unsetProperties.contains(Property.BUILDER_TYPE)
            || !Objects.equals(template.builderType(), defaults.builderType()))) {
      builderType(template.builderType());
    }
    if (!base._unsetProperties.contains(Property.MERGE_BUILDER)
        && (defaults._unsetProperties.contains(Property.MERGE_BUILDER)
            || !Objects.equals(template.mergeBuilder(), defaults.mergeBuilder()))) {
      mergeBuilder(template.mergeBuilder());
    }
    if (!base._unsetProperties.contains(Property.PARTIAL_TO_BUILDER)
        && (defaults._unsetProperties.contains(Property.PARTIAL_TO_BUILDER)
            || !Objects.equals(template.partialToBuilder(), defaults.partialToBuilder()))) {
      partialToBuilder(template.partialToBuilder());
    }
    if (!base._unsetProperties.contains(Property.BUILDER_FACTORY)
        && (defaults._unsetProperties.contains(Property.BUILDER_FACTORY)
            || !Objects.equals(template.builderFactory(), defaults.builderFactory()))) {
      builderFactory(template.builderFactory());
    }
    if (!base._unsetProperties.contains(Property.SUPPRESS_UNCHECKED)
        && (defaults._unsetProperties.contains(Property.SUPPRESS_UNCHECKED)
            || !Objects.equals(template.suppressUnchecked(), defaults.suppressUnchecked()))) {
      suppressUnchecked(template.suppressUnchecked());
    }
    return (BuildableType.Builder) this;
  }
584601
@Nonnull
	public static <T> LOiToCharFunction<T> oiToCharFunctionFrom(Consumer<LOiToCharFunctionBuilder<T>> buildingFunction) {
		LOiToCharFunctionBuilder builder = new LOiToCharFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
927267
@Nonnull
	public static <T1, T2> ToIntBiFunction<T1, T2> toIntBiFunctionFrom(Consumer<ToIntBiFunctionBuilder<T1, T2>> buildingFunction) {
		ToIntBiFunctionBuilder builder = new ToIntBiFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
42545
private Builder createFactoryBuilderClass(TypeElement component, ClassName vueFactoryClassName) {
    return TypeSpec
        .classBuilder(vueFactoryClassName)
        .addModifiers(Modifier.PUBLIC, Modifier.FINAL)
        .superclass(ParameterizedTypeName.get(ClassName.get(VueComponentFactory.class),
            ClassName.get(component)))
        .addAnnotation(Singleton.class)
        .addJavadoc("VueComponentFactory for Component {@link $L}",
            component.getQualifiedName().toString())
        .addAnnotation(AnnotationSpec
            .builder(Generated.class)
            .addMember("value", "$S", this.getClass().getCanonicalName())
            .addMember("date", "$S", new Date().toString())
            .addMember("comments", "$S", "https://github.com/Axellience/vue-gwt")
            .build());
  }