Search in sources :

Example 1 with GenerationException

use of org.uberfire.annotations.processors.exceptions.GenerationException in project kie-wb-common by kiegroup.

the class MainProcessor method processLastRoundDefinitionFactory.

private boolean processLastRoundDefinitionFactory(final Set<? extends TypeElement> set, final RoundEnvironment roundEnv) throws Exception {
    final Messager messager = processingEnv.getMessager();
    try {
        final int size = processingContext.getDefinitionAnnotations().getBuilderFieldNames().size() + processingContext.getDefSetAnnotations().getBuilderFieldNames().size();
        if (size > 0) {
            final Map<String, String> buildersMap = new LinkedHashMap<>();
            if (!processingContext.getDefinitionAnnotations().getBuilderFieldNames().isEmpty()) {
                buildersMap.putAll(processingContext.getDefinitionAnnotations().getBuilderFieldNames());
            }
            if (!processingContext.getDefSetAnnotations().getBuilderFieldNames().isEmpty()) {
                buildersMap.putAll(processingContext.getDefSetAnnotations().getBuilderFieldNames());
            }
            // Ensure visible on both backend and client sides.
            final String packageName = getGeneratedPackageName() + ".definition.factory";
            final String className = getSetClassPrefix() + DEFINITION_FACTORY_CLASSNAME;
            final String classFQName = packageName + "." + className;
            messager.printMessage(Diagnostic.Kind.NOTE, "Starting ModelFactory adf for class named " + classFQName);
            final StringBuffer ruleClassCode = generatedDefinitionFactoryGenerator.generate(packageName, className, buildersMap, messager);
            writeCode(packageName, className, ruleClassCode);
        }
    } catch (GenerationException ge) {
        final String msg = ge.getMessage();
        processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, msg);
    }
    return true;
}
Also used : Messager(javax.annotation.processing.Messager) GenerationException(org.uberfire.annotations.processors.exceptions.GenerationException) LinkedHashMap(java.util.LinkedHashMap)

Example 2 with GenerationException

use of org.uberfire.annotations.processors.exceptions.GenerationException in project kie-wb-common by kiegroup.

the class MainProcessor method processLastRoundPropertySetAdapter.

private boolean processLastRoundPropertySetAdapter(final Set<? extends TypeElement> set, final RoundEnvironment roundEnv) throws Exception {
    final Messager messager = processingEnv.getMessager();
    try {
        // Ensure visible on both backend and client sides.
        final String packageName = getGeneratedPackageName() + ".definition.adapter.binding";
        final String className = getSetClassPrefix() + PROPERTYSET_ADAPTER_CLASSNAME;
        final String classFQName = packageName + "." + className;
        messager.printMessage(Diagnostic.Kind.NOTE, "Starting ErraiBinderAdapter adf named " + classFQName);
        final StringBuffer ruleClassCode = propertySetAdapterGenerator.generate(packageName, className, processingContext.getPropertySetAnnotations(), messager);
        writeCode(packageName, className, ruleClassCode);
    } catch (GenerationException ge) {
        final String msg = ge.getMessage();
        processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, msg);
    }
    return true;
}
Also used : Messager(javax.annotation.processing.Messager) GenerationException(org.uberfire.annotations.processors.exceptions.GenerationException)

Example 3 with GenerationException

use of org.uberfire.annotations.processors.exceptions.GenerationException in project kie-wb-common by kiegroup.

the class MainProcessor method processLastRoundDefinitionSetAdapter.

private boolean processLastRoundDefinitionSetAdapter(final Set<? extends TypeElement> set, final RoundEnvironment roundEnv) throws Exception {
    final Messager messager = processingEnv.getMessager();
    try {
        // Ensure visible on both backend and client sides.
        final String packageName = getGeneratedPackageName() + ".definition.adapter.binding";
        final String className = getSetClassPrefix() + DEFINITIONSET_ADAPTER_CLASSNAME;
        final String classFQName = packageName + "." + className;
        messager.printMessage(Diagnostic.Kind.NOTE, "Starting ErraiBinderAdapter adf named " + classFQName);
        final StringBuffer ruleClassCode = definitionSetAdapterGenerator.generate(packageName, className, processingContext.getDefSetAnnotations(), messager);
        writeCode(packageName, className, ruleClassCode);
    } catch (GenerationException ge) {
        final String msg = ge.getMessage();
        processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, msg);
    }
    return true;
}
Also used : Messager(javax.annotation.processing.Messager) GenerationException(org.uberfire.annotations.processors.exceptions.GenerationException)

Example 4 with GenerationException

use of org.uberfire.annotations.processors.exceptions.GenerationException in project kie-wb-common by kiegroup.

the class MainProcessor method processLastRoundPropertyAdapter.

private boolean processLastRoundPropertyAdapter(final Set<? extends TypeElement> set, final RoundEnvironment roundEnv) throws Exception {
    final Messager messager = processingEnv.getMessager();
    try {
        // Ensure visible on both backend and client sides.
        final String packageName = getGeneratedPackageName() + ".definition.adapter.binding";
        final String className = getSetClassPrefix() + PROPERTY_ADAPTER_CLASSNAME;
        final String classFQName = packageName + "." + className;
        messager.printMessage(Diagnostic.Kind.NOTE, "Starting ErraiBinderAdapter adf named " + classFQName);
        final StringBuffer ruleClassCode = propertyAdapterGenerator.generate(packageName, className, processingContext.getPropertyAnnotations(), messager);
        writeCode(packageName, className, ruleClassCode);
    } catch (GenerationException ge) {
        final String msg = ge.getMessage();
        processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, msg);
    }
    return true;
}
Also used : Messager(javax.annotation.processing.Messager) GenerationException(org.uberfire.annotations.processors.exceptions.GenerationException)

Example 5 with GenerationException

use of org.uberfire.annotations.processors.exceptions.GenerationException in project kie-wb-common by kiegroup.

the class EdgeCardinalityRuleGenerator method generateRule.

private StringBuffer generateRule(final Messager messager, final String ruleName, final String ruleDefinitionId, final String role, final String direction, final long min, final long max) throws GenerationException {
    Map<String, Object> root = new HashMap<String, Object>();
    root.put("ruleName", ruleName);
    root.put("edgeId", ruleDefinitionId);
    root.put("role", role);
    root.put("direction", direction);
    root.put("min", min);
    root.put("max", max);
    // Generate code
    final StringWriter sw = new StringWriter();
    final BufferedWriter bw = new BufferedWriter(sw);
    try {
        final Template template = config.getTemplate("EdgeCardinalityRule.ftl");
        template.process(root, bw);
    } catch (IOException ioe) {
        throw new GenerationException(ioe);
    } catch (TemplateException te) {
        throw new GenerationException(te);
    } finally {
        try {
            bw.close();
            sw.close();
        } catch (IOException ioe) {
            throw new GenerationException(ioe);
        }
    }
    messager.printMessage(Diagnostic.Kind.NOTE, "Successfully generated code for [" + ruleName + "]");
    return sw.getBuffer();
}
Also used : StringWriter(java.io.StringWriter) HashMap(java.util.HashMap) TemplateException(freemarker.template.TemplateException) GenerationException(org.uberfire.annotations.processors.exceptions.GenerationException) IOException(java.io.IOException) BufferedWriter(java.io.BufferedWriter) Template(freemarker.template.Template)

Aggregations

GenerationException (org.uberfire.annotations.processors.exceptions.GenerationException)24 HashMap (java.util.HashMap)13 Messager (javax.annotation.processing.Messager)11 Template (freemarker.template.Template)9 TemplateException (freemarker.template.TemplateException)9 BufferedWriter (java.io.BufferedWriter)9 IOException (java.io.IOException)9 StringWriter (java.io.StringWriter)9 GeneratorException (org.kie.workbench.common.stunner.svg.gen.exception.GeneratorException)7 LinkedHashMap (java.util.LinkedHashMap)3 LinkedList (java.util.LinkedList)3 Map (java.util.Map)3 TypeElement (javax.lang.model.element.TypeElement)3 AnnotationMirror (javax.lang.model.element.AnnotationMirror)2 AnnotationValue (javax.lang.model.element.AnnotationValue)2 ViewDefinitionImpl (org.kie.workbench.common.stunner.svg.gen.model.impl.ViewDefinitionImpl)2 Circle (com.ait.lienzo.client.core.shape.Circle)1 MultiPath (com.ait.lienzo.client.core.shape.MultiPath)1 Picture (com.ait.lienzo.client.core.shape.Picture)1 Rectangle (com.ait.lienzo.client.core.shape.Rectangle)1