Examples of BuilderGenerationHelper


Examples of com.gwtplatform.dispatch.annotation.helper.BuilderGenerationHelper

@SupportedAnnotationTypes("com.gwtplatform.dispatch.annotation.GenDto")
public class GenDtoProcessor extends GenProcessor {

    @Override
    public void process(Element dtoElement) {
        BuilderGenerationHelper writer = null;
        try {
            ReflectionHelper reflection = new ReflectionHelper(getEnvironment(), (TypeElement) dtoElement);
            String dtoElementSimpleName = reflection.getSimpleClassName();
            String dtoSimpleName = dtoElementSimpleName + "Dto";
            String dtoClassName = reflection.getClassName() + "Dto";

            printMessage("Generating '" + dtoClassName + "' from '" + dtoElementSimpleName + "'.");

            @SuppressWarnings("resource")
            Writer sourceWriter = getEnvironment().getFiler().createSourceFile(dtoClassName, dtoElement).openWriter();
            writer = new BuilderGenerationHelper(sourceWriter);

            Collection<VariableElement> orderedElementFields = reflection.getOrderedFields();
            Collection<VariableElement> allFields = reflection.getNonConstantFields();
            Collection<VariableElement> optionalFields = reflection.getOptionalFields();
            Collection<VariableElement> requiredFields = reflection.getNonConstantFields();
            requiredFields.removeAll(optionalFields);

            writer.generatePackageDeclaration(reflection.getPackageName());
            writer.generateImports("com.google.gwt.user.client.rpc.IsSerializable");
            writer.generateClassHeader(dtoSimpleName, null, reflection.getClassRepresenter().getModifiers(),
                    "IsSerializable");
            writer.generateFieldDeclarations(orderedElementFields);

            if (!optionalFields.isEmpty()) { // has optional fields.
                writer.setWhitespaces(2);
                writer.generateBuilderClass(dtoSimpleName, requiredFields, optionalFields);
                writer.resetWhitespaces();
                writer.generateEmptyConstructor(dtoSimpleName, Modifier.PROTECTED);
                if (!requiredFields.isEmpty()) { // and required fields
                    writer.generateConstructorUsingFields(dtoSimpleName, requiredFields, Modifier.PUBLIC);
                }
                writer.generateCustomBuilderConstructor(dtoSimpleName, allFields);
            } else if (!requiredFields.isEmpty()) { // has only required fields
                writer.generateEmptyConstructor(dtoSimpleName, Modifier.PROTECTED);
                writer.generateConstructorUsingFields(dtoSimpleName, requiredFields, Modifier.PUBLIC);
            } else { // has no non-static fields
                writer.generateEmptyConstructor(dtoSimpleName, Modifier.PUBLIC);
            }

            writer.generateFieldAccessors(orderedElementFields);
            writer.generateEquals(dtoSimpleName, orderedElementFields);
            writer.generateHashCode(orderedElementFields);
            writer.generateToString(dtoSimpleName, orderedElementFields);

            writer.generateFooter();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if (writer != null) {
                writer.close();
            }
        }
    }
View Full Code Here

Examples of com.gwtplatform.dispatch.annotation.helper.BuilderGenerationHelper

@SupportedAnnotationTypes("com.gwtplatform.dispatch.annotation.GenEvent")
public class GenEventProcessor extends GenProcessor {

    @Override
    public void process(Element eventElement) {
        BuilderGenerationHelper writer = null;
        try {
            ReflectionHelper reflection = new ReflectionHelper(getEnvironment(), (TypeElement) eventElement);
            String eventElementSimpleName = reflection.getSimpleClassName();
            String eventSimpleName = eventElementSimpleName + "Event";
            String eventClassName = reflection.getClassName() + "Event";

            @SuppressWarnings("resource")
            Writer sourceWriter = getEnvironment().getFiler().createSourceFile(eventClassName,
                    eventElement).openWriter();
            writer = new BuilderGenerationHelper(sourceWriter);

            Collection<VariableElement> orderedElementFields = reflection.getOrderedFields();
            Collection<VariableElement> allFields = reflection.getNonConstantFields();
            Collection<VariableElement> optionalFields = reflection.getOptionalFields();
            Collection<VariableElement> requiredFields = reflection.getNonConstantFields();
            requiredFields.removeAll(optionalFields);

            writer.generatePackageDeclaration(reflection.getPackageName());
            writer.generateImports(
                    "com.google.gwt.event.shared.EventHandler",
                    "com.google.gwt.event.shared.GwtEvent",
                    "com.google.web.bindery.event.shared.HandlerRegistration",
                    null,
                    "com.google.gwt.event.shared.HasHandlers"
            );

            writer.generateClassHeader(eventSimpleName,
                    "GwtEvent<" + eventSimpleName + "." + eventElementSimpleName + "Handler>",
                    reflection.getClassRepresenter().getModifiers()
            );
            writer.generateFieldDeclarations(orderedElementFields);

            if (!optionalFields.isEmpty()) { // has optional fields.
                writer.setWhitespaces(2);
                writer.generateBuilderClass(eventSimpleName, requiredFields, optionalFields);
                writer.resetWhitespaces();
                if (!requiredFields.isEmpty()) { // and required fields
                    writer.generateConstructorUsingFields(eventSimpleName, requiredFields, Modifier.PUBLIC);
                }
                writer.generateCustomBuilderConstructor(eventSimpleName, allFields);
                generateFireSelfMethod(writer);
            } else if (!requiredFields.isEmpty()) {  // has only required fields
                writer.generateEmptyConstructor(eventSimpleName, Modifier.PROTECTED);
                writer.generateConstructorUsingFields(eventSimpleName, requiredFields, Modifier.PUBLIC);
                generateFireFieldsStaticMethod(writer, requiredFields, eventSimpleName);
            } else { // has no non-static fields
                writer.generateEmptyConstructor(eventSimpleName, Modifier.PUBLIC);
                generateFireFieldsStaticMethod(writer, requiredFields, eventSimpleName);
            }

            generateFireInstanceStaticMethod(writer, eventSimpleName);
            generateHasHandlerInterface(writer, eventElementSimpleName);
            generateHandlerInterface(writer, eventElementSimpleName);
            generateStaticTypeField(writer, eventElementSimpleName);
            generateTypeAccessorMethod(writer, eventElementSimpleName);
            generateAssociatedTypeMethod(writer, eventElementSimpleName);
            generateDispatchMethod(writer, eventElementSimpleName);

            writer.generateFieldAccessors(orderedElementFields);
            writer.generateEquals(eventSimpleName, orderedElementFields);
            writer.generateHashCode(orderedElementFields);
            writer.generateToString(eventSimpleName, orderedElementFields);

            writer.generateFooter();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if (writer != null) {
                writer.close();
            }
        }
    }
View Full Code Here

Examples of com.gwtplatform.dispatch.annotation.helper.BuilderGenerationHelper

        generateResult(dispatchElement, genDispatch.extraResultInterfaces());
    }

    protected void generateAction(Element dispatchElement, boolean isSecure, String serviceName,
            String extraActionInterfaces) {
        BuilderGenerationHelper writer = null;
        try {
            ReflectionHelper reflection = new ReflectionHelper(getEnvironment(), (TypeElement) dispatchElement);
            String dispatchElementSimpleName = reflection.getSimpleClassName();
            String dispatchActionSimpleName = dispatchElementSimpleName + "Action";
            String dispatchActionClassName = reflection.getClassName() + "Action";

            printMessage("Generating '" + dispatchActionClassName + "' from '" + dispatchElementSimpleName + "'.");

            @SuppressWarnings("resource")
            Writer sourceWriter = getEnvironment().getFiler().createSourceFile(dispatchActionClassName,
                    dispatchElement).openWriter();
            writer = new BuilderGenerationHelper(sourceWriter);

            Collection<VariableElement> annotatedInFields = reflection.getInFields();
            Collection<VariableElement> allFields = reflection.filterConstantFields(reflection.getInFields());
            Collection<VariableElement> optionalFields = reflection.sortFields(In.class,
                    reflection.getOptionalFields(In.class));
            Collection<VariableElement> requiredFields = reflection.filterConstantFields(reflection.getInFields());
            requiredFields.removeAll(optionalFields);

            writer.generatePackageDeclaration(reflection.getPackageName());
            writer.generateImports(RPC_DISPATCH_PACKAGE + ".Action");

            String actionInterface = "Action<" + dispatchElementSimpleName + "Result>";
            writer.generateClassHeader(dispatchActionSimpleName, null,
                    reflection.getClassRepresenter().getModifiers(),
                    actionInterface, extraActionInterfaces
            );
            writer.generateFieldDeclarations(annotatedInFields);

            if (!optionalFields.isEmpty()) { // has optional fields.
                writer.setWhitespaces(2);
                writer.generateBuilderClass(dispatchActionSimpleName, requiredFields, optionalFields);
                writer.resetWhitespaces();
                writer.generateEmptyConstructor(dispatchActionSimpleName, Modifier.PROTECTED);
                if (!requiredFields.isEmpty()) { // and required fields
                    writer.generateConstructorUsingFields(dispatchActionSimpleName, requiredFields, Modifier.PUBLIC);
                }
                writer.generateCustomBuilderConstructor(dispatchActionSimpleName, allFields);
            } else if (!requiredFields.isEmpty()) { // has only required fields
                writer.generateEmptyConstructor(dispatchActionSimpleName, Modifier.PROTECTED);
                writer.generateConstructorUsingFields(dispatchActionSimpleName, requiredFields, Modifier.PUBLIC);
            } else { // has no non-static fields
                writer.generateEmptyConstructor(dispatchActionSimpleName, Modifier.PUBLIC);
            }

            generateServiceNameAccessor(writer, dispatchElementSimpleName, serviceName);
            generateIsSecuredMethod(writer, isSecure);

            writer.generateFieldAccessors(annotatedInFields);
            writer.generateEquals(dispatchActionSimpleName, annotatedInFields);
            writer.generateHashCode(annotatedInFields);
            writer.generateToString(dispatchActionSimpleName, annotatedInFields);

            writer.generateFooter();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if (writer != null) {
                writer.close();
            }
        }
    }
View Full Code Here

Examples of com.gwtplatform.dispatch.annotation.helper.BuilderGenerationHelper

            }
        }
    }

    protected void generateResult(Element dispatchElement, String extraResultInterfaces) {
        BuilderGenerationHelper writer = null;
        try {
            ReflectionHelper reflection = new ReflectionHelper(getEnvironment(), (TypeElement) dispatchElement);
            String dispatchElementSimpleName = reflection.getSimpleClassName();
            String dispatchResultSimpleName = dispatchElementSimpleName + "Result";
            String dispatchResultClassName = reflection.getClassName() + "Result";

            printMessage("Generating '" + dispatchResultClassName + "' from '" + dispatchElementSimpleName + "'.");

            @SuppressWarnings("resource")
            Writer sourceWriter = getEnvironment().getFiler().createSourceFile(dispatchResultClassName,
                    dispatchElement).openWriter();
            writer = new BuilderGenerationHelper(sourceWriter);

            Collection<VariableElement> annotatedOutFields = reflection.getOutFields();
            Collection<VariableElement> allFields = reflection.filterConstantFields(reflection.getOutFields());
            Collection<VariableElement> optionalFields = reflection.sortFields(Out.class,
                    reflection.getOptionalFields(Out.class));
            Collection<VariableElement> requiredFields = reflection.filterConstantFields(reflection.getOutFields());
            requiredFields.removeAll(optionalFields);

            writer.generatePackageDeclaration(reflection.getPackageName());
            writer.generateImports(
                    reflection.hasOptionalFields() ? IsSerializable.class.getName() : null,
                    null,
                    RPC_DISPATCH_PACKAGE + ".Result"
            );

            String resultInterface = "Result";
            writer.generateClassHeader(dispatchResultSimpleName, null,
                    reflection.getClassRepresenter().getModifiers(),
                    resultInterface, extraResultInterfaces
            );
            writer.generateFieldDeclarations(annotatedOutFields);

            if (!optionalFields.isEmpty()) {
                writer.setWhitespaces(2);
                writer.generateBuilderClass(dispatchResultSimpleName, requiredFields, optionalFields, "IsSerializable");
                writer.resetWhitespaces();
                writer.generateEmptyConstructor(dispatchResultSimpleName, Modifier.PROTECTED);
                if (!requiredFields.isEmpty()) {
                    writer.generateConstructorUsingFields(dispatchResultSimpleName, requiredFields, Modifier.PUBLIC);
                }
                writer.generateCustomBuilderConstructor(dispatchResultSimpleName, allFields);
            } else if (!requiredFields.isEmpty()) {
                writer.generateEmptyConstructor(dispatchResultSimpleName, Modifier.PROTECTED);
                writer.generateConstructorUsingFields(dispatchResultSimpleName, requiredFields, Modifier.PUBLIC);
            } else {
                writer.generateEmptyConstructor(dispatchResultSimpleName, Modifier.PUBLIC);
            }

            writer.generateFieldAccessors(annotatedOutFields);
            writer.generateEquals(dispatchResultSimpleName, annotatedOutFields);
            writer.generateHashCode(annotatedOutFields);
            writer.generateToString(dispatchResultSimpleName, annotatedOutFields);

            writer.generateFooter();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if (writer != null) {
                writer.close();
            }
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.