Search in sources :

Example 1 with ElementValueDescr

use of org.kie.workbench.common.services.datamodeller.parser.descr.ElementValueDescr in project kie-wb-common by kiegroup.

the class ParserTestUtil method createAnnotation.

public static AnnotationDescr createAnnotation(String className, String defaultValue, String[][] paramValues) {
    AnnotationDescr annotationDescr = new AnnotationDescr();
    annotationDescr.setQualifiedName(new QualifiedNameDescr(className, -1, -1, -1, -1));
    if (defaultValue != null) {
        annotationDescr.setParamsStartParen(new JavaTokenDescr(ElementDescriptor.ElementType.JAVA_LBRACE, "(", -1, -1, -1, -1));
        annotationDescr.setElementValue(new ElementValueDescr(defaultValue, -1, -1, -1, -1));
        annotationDescr.setParamsStopParen(new JavaTokenDescr(ElementDescriptor.ElementType.JAVA_RBRACE, ")", -1, -1, -1, -1));
    } else if (paramValues != null) {
        annotationDescr.setParamsStartParen(new JavaTokenDescr(ElementDescriptor.ElementType.JAVA_LBRACE, "(", -1, -1, -1, -1));
        if (paramValues.length > 0) {
            ElementValuePairListDescr valuePairs = new ElementValuePairListDescr();
            for (int i = 0; i < paramValues.length; i++) {
                ElementValuePairDescr valuePair = new ElementValuePairDescr();
                valuePair.setIdentifier(new IdentifierDescr(paramValues[i][0], -1, -1, -1, -1));
                valuePair.setValue(new ElementValueDescr(paramValues[i][1], -1, -1, -1, -1));
                valuePairs.addValuePair(valuePair);
            }
            annotationDescr.setElementValuePairs(valuePairs);
        }
        annotationDescr.setParamsStopParen(new JavaTokenDescr(ElementDescriptor.ElementType.JAVA_RBRACE, ")", -1, -1, -1, -1));
    }
    return annotationDescr;
}
Also used : ElementValuePairDescr(org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairDescr) QualifiedNameDescr(org.kie.workbench.common.services.datamodeller.parser.descr.QualifiedNameDescr) ElementValuePairListDescr(org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairListDescr) AnnotationDescr(org.kie.workbench.common.services.datamodeller.parser.descr.AnnotationDescr) JavaTokenDescr(org.kie.workbench.common.services.datamodeller.parser.descr.JavaTokenDescr) IdentifierDescr(org.kie.workbench.common.services.datamodeller.parser.descr.IdentifierDescr) ElementValueDescr(org.kie.workbench.common.services.datamodeller.parser.descr.ElementValueDescr)

Example 2 with ElementValueDescr

use of org.kie.workbench.common.services.datamodeller.parser.descr.ElementValueDescr in project kie-wb-common by kiegroup.

the class DefaultJavaModelAnnotationDriver method buildAnnotation.

@Override
public Annotation buildAnnotation(AnnotationDefinition annotationDefinition, Object annotationToken) throws ModelDriverException {
    AnnotationDescr javaAnnotationToken = (AnnotationDescr) annotationToken;
    AnnotationImpl annotation = new AnnotationImpl(annotationDefinition);
    if (annotationDefinition.isMarker()) {
        return annotation;
    } else {
        // try to read annotation parameters
        if (javaAnnotationToken.hasElementValue()) {
            for (AnnotationValuePairDefinition annotationMember : annotationDefinition.getValuePairs()) {
                if ("value".equals(annotationMember.getName())) {
                    annotation.setValue(annotationMember.getName(), parseParamValue(annotationDefinition, annotationMember.getName(), javaAnnotationToken.getElementValue().getValue()));
                }
            }
        } else if (javaAnnotationToken.hasElementValuePairs()) {
            ElementValuePairListDescr valuePairListDescr = javaAnnotationToken.getElementValuePairs();
            if (valuePairListDescr != null && valuePairListDescr.getValuePairs() != null) {
                Map<String, ElementValueDescr> valuePairValues = new HashMap<String, ElementValueDescr>();
                for (ElementValuePairDescr valuePair : valuePairListDescr.getValuePairs()) {
                    valuePairValues.put(valuePair.getIdentifier().getIdentifier(), valuePair.getValue());
                }
                for (AnnotationValuePairDefinition annotationMember : annotationDefinition.getValuePairs()) {
                    ElementValueDescr value = valuePairValues.get(annotationMember.getName());
                    if (value != null) {
                        annotation.setValue(annotationMember.getName(), parseParamValue(annotationDefinition, annotationMember.getName(), value.getValue()));
                    }
                }
            }
        }
    }
    return annotation;
}
Also used : ElementValuePairDescr(org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairDescr) ElementValuePairListDescr(org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairListDescr) AnnotationDescr(org.kie.workbench.common.services.datamodeller.parser.descr.AnnotationDescr) AnnotationImpl(org.kie.workbench.common.services.datamodeller.core.impl.AnnotationImpl) HashMap(java.util.HashMap) Map(java.util.Map) AnnotationValuePairDefinition(org.kie.workbench.common.services.datamodeller.core.AnnotationValuePairDefinition) ElementValueDescr(org.kie.workbench.common.services.datamodeller.parser.descr.ElementValueDescr)

Aggregations

AnnotationDescr (org.kie.workbench.common.services.datamodeller.parser.descr.AnnotationDescr)2 ElementValueDescr (org.kie.workbench.common.services.datamodeller.parser.descr.ElementValueDescr)2 ElementValuePairDescr (org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairDescr)2 ElementValuePairListDescr (org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairListDescr)2 HashMap (java.util.HashMap)1 Map (java.util.Map)1 AnnotationValuePairDefinition (org.kie.workbench.common.services.datamodeller.core.AnnotationValuePairDefinition)1 AnnotationImpl (org.kie.workbench.common.services.datamodeller.core.impl.AnnotationImpl)1 IdentifierDescr (org.kie.workbench.common.services.datamodeller.parser.descr.IdentifierDescr)1 JavaTokenDescr (org.kie.workbench.common.services.datamodeller.parser.descr.JavaTokenDescr)1 QualifiedNameDescr (org.kie.workbench.common.services.datamodeller.parser.descr.QualifiedNameDescr)1