/** * Creates a VelocityContext and inject common variables into it. * * @param generationContext Generation context provided by user. * * @return A properly initialized VelocityContext. */ private VelocityContext buildContext(GenerationContext generationContext) { VelocityContext context = new VelocityContext(); // Add main objects to velocity context context.put("engine", this); context.put("context", generationContext); context.put("dataModel", generationContext.getDataModel()); context.put("nameTool", new GenerationTools()); generationContext.setVelocityContext(context); return context; }
public String buildMethodReturnTypeString( Type returnType ) { if ( returnType == null ) { return null; } StringBuilder builder = new StringBuilder(); builder.append( returnType.getName() ); buildTypeArgumentsString( returnType.getTypeArguments(), builder ); return builder.toString(); }
public String resolveStringValue( Object value ) { if ( value == null ) { return null; } StringBuilder builder = new StringBuilder( ); builder.append( "\"" ); builder.append( escapeStringForJavaCode( value != null ? value.toString() : null ) ); builder.append( "\"" ); return builder.toString(); }
ClassTypeResolver classTypeResolver) throws Exception { GenerationTools genTools = new GenerationTools(); GenerationEngine engine = GenerationEngine.getInstance(); GenerationContext context = new GenerationContext(null); oldClassName = oldClass.getName(); accessorName = genTools.toJavaGetter(fieldName, oldClassName); removeMethodByParamsClass(javaClassSource, accessorName); accessorName = genTools.toJavaSetter(fieldName); removeMethodByParamsClass(javaClassSource, accessorName, methodSource = genTools.indent(engine.generateFieldGetterString(context, property)); javaClassSource.addMethod(methodSource); methodSource = genTools.indent(engine.generateFieldSetterString(context, property)); javaClassSource.addMethod(methodSource);
/** * Takes care of field and the corresponding setter/getter removal. */ public void removeField(JavaClassSource javaClassSource, String fieldName, ClassTypeResolver classTypeResolver) throws Exception { logger.debug("Removing field: " + fieldName + ", from class: " + javaClassSource.getName()); FieldSource<JavaClassSource> field; GenerationTools genTools = new GenerationTools(); String methodName; field = javaClassSource.getField(fieldName); if (field != null) { //check if the class has a setter/getter for the given field. Class<?> fieldClass = classTypeResolver.resolveType(field.getType().getName()); methodName = genTools.toJavaGetter(fieldName, fieldClass.getName()); removeMethodByParamsClass(javaClassSource, methodName); methodName = genTools.toJavaSetter(fieldName); removeMethodByParamsClass(javaClassSource, methodName, fieldClass); //finally remove the field. javaClassSource.removeField(field); } else { logger.debug("Field field: " + fieldName + " was not found in class: " + javaClassSource.getName()); } }
GenerationTools generationTools = new GenerationTools(); AnnotationDefinition annotationDefinition; annotationCode.append(generationTools.resolveAnnotationType(annotation)); for (AnnotationValuePairDefinition valuePairDefinition : annotationDefinition.getValuePairs()) { if ((value = annotation.getValue(valuePairDefinition.getName())) != null) { valuePairCode = generationTools.resolveMemberTypeExpression(valuePairDefinition, value); } else {
GenerationTools genTools = new GenerationTools(); JavaRoasterModelDriver modelDriver = new JavaRoasterModelDriver(); defaultConstructorSource = genTools.indent(engine.generateDefaultConstructorString(generationContext, dataObject)); newConstructor = javaClassSource.addMethod(defaultConstructorSource); allFieldsConstructorSource = genTools.indent(engine.generateAllFieldsConstructorString(generationContext, dataObject)); if (allFieldsConstructorSource != null && !allFieldsConstructorSource.trim().isEmpty()) { positionFieldsConstructorSource = genTools.indent(engine.generatePositionFieldsConstructorString(generationContext, dataObject)); if (positionFieldsConstructorSource != null && !positionFieldsConstructorSource.trim().isEmpty()) { keyFieldsConstructorSource = genTools.indent(engine.generateKeyFieldsConstructorString(generationContext, dataObject)); if (keyFieldsConstructorSource != null && !keyFieldsConstructorSource.trim().isEmpty()) { equalsMethodSource = genTools.indent(engine.generateEqualsString(generationContext, dataObject)); javaClassSource.addMethod(equalsMethodSource); hashCodeMethodSource = genTools.indent(engine.generateHashCodeString(generationContext, dataObject)); javaClassSource.addMethod(hashCodeMethodSource);
if ( props != null && props.size() > 0 ) { for ( ObjectProperty prop : props ) { String _propName = toJavaVar( prop.getName() ); if ( DataModelUtils.isKeyField( prop ) ) { addHashCodeTermForPrimitive( sb, _propName, prop.getClassName() ); } else {
if ( props != null && props.size() > 0 ) { for ( ObjectProperty prop : props ) { String _propName = toJavaVar( prop.getName() ); if ( DataModelUtils.isKeyField( prop ) ) { addEqualsTermForPrimitive( sb, _propName, prop.getClassName() ); } else {
public boolean hasEquals( DataObject dataObject ) { return keyFieldsCount( dataObject ) > 0; }
public boolean hasProperties( DataObject dataObject ) { return propertiesCount( dataObject ) > 0; }
GenerationTools genTools = new GenerationTools(); fieldSource = genTools.indent(engine.generateCompleteFieldString(generationContext, property)); javaClassSource.addField(fieldSource); methodSource = genTools.indent(engine.generateFieldGetterString(generationContext, property)); methodName = genTools.toJavaGetter(property.getName(), property.getClassName()); methodSource = genTools.indent(engine.generateFieldSetterString(generationContext, property)); methodName = genTools.toJavaSetter(property.getName());
protected TypeMetadata buildTypeMetadata(String type, ClassLoader classLoader) throws ClassNotFoundException { GenerationTools generationTools = new GenerationTools(); Class<?> clazz = classLoader.loadClass(type); ClassFieldInspector fieldInspector = new ClassFieldInspector(clazz); List<FieldMetadata> fields = new ArrayList<>(); for (String fieldName : fieldInspector.getFieldNames()) { ClassFieldInspector.FieldInfo fieldInfo = fieldInspector.getFieldTypesFieldInfo().get(fieldName); if (fieldInfo.getOrigin() == ModelField.FIELD_ORIGIN.DECLARED || fieldInfo.getOrigin() == ModelField.FIELD_ORIGIN.INHERITED) { String accessor = null; String mutator = null; if (fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.ACCESSOR || fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.BOTH) { accessor = generationTools.toJavaGetter(fieldName, fieldInfo.getReturnType().getName()); } if (fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.MUTATOR || fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.BOTH) { mutator = generationTools.toJavaSetter(fieldName); } fields.add(new FieldMetadata(fieldName, fieldInfo.getReturnType().getName(), accessor, mutator)); } } return new TypeMetadata(type, fields); }
ClassTypeResolver classTypeResolver) throws Exception { GenerationTools genTools = new GenerationTools(); GenerationEngine engine = GenerationEngine.getInstance(); GenerationContext context = new GenerationContext(null); oldClassName = oldClass.getName(); accessorName = genTools.toJavaGetter(fieldName, oldClassName); removeMethodByParamsClass(javaClassSource, accessorName); accessorName = genTools.toJavaSetter(fieldName); removeMethodByParamsClass(javaClassSource, accessorName, methodSource = genTools.indent(engine.generateFieldGetterString(context, property)); javaClassSource.addMethod(methodSource); methodSource = genTools.indent(engine.generateFieldSetterString(context, property)); javaClassSource.addMethod(methodSource);
private void buildTypeArgumentsString( List<Type> typeArguments, StringBuilder builder ) { if ( typeArguments == null || typeArguments.isEmpty() ) { return; } builder.append( "<" ); java.util.Iterator<Type> iterator = typeArguments.iterator(); while ( iterator.hasNext() ) { Type argument = iterator.next(); builder.append( argument.getName() ); buildTypeArgumentsString( argument.getTypeArguments(), builder ); if ( iterator.hasNext() ) { builder.append( "," ); } } builder.append( ">" ); }
public String buildMethodParameterString( List<Parameter> methodParameters ) { if ( methodParameters == null || methodParameters.isEmpty() ) { return null; } StringBuilder builder = new StringBuilder(); Iterator<Parameter> iterator = methodParameters.iterator(); while ( iterator.hasNext() ) { Parameter parameter = iterator.next(); Type parameterType = parameter.getType(); builder.append( parameterType.getName() ); buildTypeArgumentsString( parameter.getType().getTypeArguments(), builder ); builder.append( " " ); builder.append( parameter.getName() ); if ( iterator.hasNext() ) { builder.append( "," ); } } return builder.toString(); }