/* * Copyright 2012 SAP AG * * 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 com.sap.research.connectivity.gw.parsers; import japa.parser.ast.body.FieldDeclaration; public class JavaSourceField { public String FIELD_STRING; private String fieldPrefix; private String fieldType; private String fieldName; private String fieldValue; private String fieldAnnotations; JavaSourceField(String fieldPrefix, String fieldType, String fieldName, String fieldValue, String fieldAnnotations) { this.fieldPrefix = fieldPrefix; this.fieldType = fieldType; this.fieldName = fieldName; this.fieldValue = fieldValue; this.fieldAnnotations = fieldAnnotations; try { FIELD_STRING = makeField(); } catch (Exception e) { e.printStackTrace(); } } public JavaSourceField (FieldDeclaration field) { this(JavaSourceParserUtils.translateModifiers(field.getModifiers()), field.getType().toString(), JavaSourceParserUtils.translateFieldName(field.getVariables()), JavaSourceParserUtils.translateFieldValue(field.getVariables()), JavaSourceParserUtils.translateAnnotations(field.getAnnotations())); } public void setFieldPrefix(String fieldPrefix) { this.fieldPrefix = fieldPrefix; } public void setFieldType(String fieldType) { this.fieldType = fieldType; } public void setFieldName(String fieldName) { this.fieldName = fieldName; } public void setFieldValue(String fieldValue) { this.fieldValue = fieldValue; } public String getFieldPrefix() { return fieldPrefix; } public String getFieldType() { return fieldType; } public String getFieldName() { return fieldName; } public String getFieldValue() { return fieldValue; } public void setAnnotations(String annotations) { this.fieldAnnotations = annotations; } public String makeField() throws Exception { if (!fieldPrefix.isEmpty()) fieldPrefix += " "; if (fieldType.isEmpty()) throw new Exception("Field Type cannot be empty!"); if (fieldName.isEmpty()) throw new Exception("Field Name cannot be empty!"); if (!fieldValue.isEmpty()) { if (fieldType.equals("String")) fieldValue = "\"" + fieldValue + "\""; fieldValue = " = " + fieldValue; } if (!fieldAnnotations.isEmpty()) fieldAnnotations += "\n"; String returnString = ""; if (!fieldAnnotations.isEmpty()){ returnString = "\t" + fieldAnnotations + "\t" + fieldPrefix + fieldType + " " + fieldName + fieldValue + ";"; } else { returnString = "\t" + fieldPrefix + fieldType + " " + fieldName + fieldValue + ";"; } return returnString; } }