/* * Copyright 2014 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.workbench.common.services.datamodeller.parser; import org.kie.workbench.common.services.datamodeller.parser.descr.AnnotationDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.ClassOrInterfaceTypeDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.ElementDescriptor; import org.kie.workbench.common.services.datamodeller.parser.descr.ElementValueDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.ElementValuePairListDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.FieldDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.IdentifierDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.JavaTokenDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.ModifierDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.ModifierListDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.PrimitiveTypeDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.QualifiedNameDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.TypeDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.VariableDeclarationDescr; import org.kie.workbench.common.services.datamodeller.parser.descr.VariableInitializerDescr; import org.kie.workbench.common.services.datamodeller.util.NamingUtils; public class ParserTestUtil { 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; } public static FieldDescr createField( String[] modifiers, String name, String type, String initializer ) { FieldDescr fieldDescr = new FieldDescr( ); if (modifiers != null) { fieldDescr.setModifiers( new ModifierListDescr( ) ); for (int i = 0; i < modifiers.length; i++) { fieldDescr.addModifier( new ModifierDescr( modifiers[i], -1, -1, -1, -1, modifiers[i] ) ); } } if ( NamingUtils.isPrimitiveTypeId( type )) { fieldDescr.setType( new TypeDescr( ) ); fieldDescr.getType().setPrimitiveType( new PrimitiveTypeDescr( type, -1, -1, -1, -1, type ) ); } else { fieldDescr.setType( new TypeDescr( ) ); fieldDescr.getType().setClassOrInterfaceType( new ClassOrInterfaceTypeDescr( type, -1, -1, -1, -1 ) ); } VariableDeclarationDescr variableDecl = new VariableDeclarationDescr( ); variableDecl.setIdentifier( new IdentifierDescr( name, -1, -1, -1 ) ); fieldDescr.addVariableDeclaration( variableDecl ); if (initializer != null) { variableDecl.setVariableInitializer( new VariableInitializerDescr( initializer, -1, -1, -1, -1, initializer ) ); } fieldDescr.setEndSemiColon( new JavaTokenDescr( ElementDescriptor.ElementType.JAVA_SEMI_COLON, ";", -1, -1, -1, -1 ) ); return fieldDescr; } }