Skip to content

Commit 9e7ac0e

Browse files
committed
Add Prefix and Postfix to Java Generation
1 parent 365f7c0 commit 9e7ac0e

File tree

14 files changed

+172
-58
lines changed

14 files changed

+172
-58
lines changed

core/esmf-aspect-model-java-generator/src/main/java/org/eclipse/esmf/aspectmodel/java/AspectModelJavaUtil.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.eclipse.esmf.aspectmodel.java.exception.CodeGenerationException;
3030
import org.eclipse.esmf.aspectmodel.visitor.AspectStreamTraversalVisitor;
3131
import org.eclipse.esmf.metamodel.AbstractEntity;
32+
import org.eclipse.esmf.metamodel.Aspect;
3233
import org.eclipse.esmf.metamodel.Characteristic;
3334
import org.eclipse.esmf.metamodel.ComplexType;
3435
import org.eclipse.esmf.metamodel.Entity;
@@ -559,6 +560,13 @@ public static String genericClassSignature( final StructureElement element ) {
559560
return generics.isEmpty() ? "" : "<" + generics + ">";
560561
}
561562

563+
public static String generateClassName( final StructureElement element, final JavaCodeGenerationConfig config ) {
564+
if ( ( !config.aspectPrefix().isBlank() || !config.aspectPostfix().isBlank() ) && element instanceof Aspect ) {
565+
return config.aspectPrefix() + element.getName() + config.aspectPostfix();
566+
}
567+
return element.getName();
568+
}
569+
562570
/**
563571
* Generates the comma-separated list of arguments in a constructor call
564572
*

core/esmf-aspect-model-java-generator/src/main/java/org/eclipse/esmf/aspectmodel/java/JavaCodeGenerationConfig.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ public record JavaCodeGenerationConfig(
2929
String packageName,
3030
ImportTracker importTracker,
3131
boolean executeLibraryMacros,
32-
File templateLibFile
32+
File templateLibFile,
33+
String aspectPrefix,
34+
String aspectPostfix
35+
3336
) implements GenerationConfig {
3437
public JavaCodeGenerationConfig {
3538
if ( packageName == null ) {
@@ -44,5 +47,11 @@ public record JavaCodeGenerationConfig(
4447
if ( executeLibraryMacros && !templateLibFile.exists() ) {
4548
throw new CodeGenerationException( "Incorrect configuration. Please provide a valid path to the velocity template library file." );
4649
}
50+
if ( aspectPrefix == null ) {
51+
aspectPrefix = "";
52+
}
53+
if ( aspectPostfix == null ) {
54+
aspectPostfix = "";
55+
}
4756
}
4857
}

core/esmf-aspect-model-java-generator/src/main/java/org/eclipse/esmf/aspectmodel/java/pojo/StructureElementJavaArtifactGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public JavaArtifact apply( final E element, final JavaCodeGenerationConfig confi
131131

132132
final String generatedSource = new TemplateEngine( context, engineConfiguration ).apply( "java-pojo" );
133133
try {
134-
return new JavaArtifact( Roaster.format( generatedSource ), element.getName(),
134+
return new JavaArtifact( Roaster.format( generatedSource ), AspectModelJavaUtil.generateClassName( element, config ),
135135
config.packageName() );
136136
} catch ( final Exception exception ) {
137137
throw new CodeGenerationException( generatedSource, exception );

core/esmf-aspect-model-java-generator/src/main/resources/java-pojo-class-body-lib.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ ${util.determineCollectionAspectClassDefinition( $element, $codeGenerationConfig
2828
${util.generateAbstractEntityClassAnnotations( $complexElement, $codeGenerationConfig, $extendingEntities )}
2929
${util.determineComplexTypeClassDefinition( $complexElement, $codeGenerationConfig )}
3030
#else
31-
public class $element.getName()${util.genericClassSignature( $element )} {
31+
public class ${util.generateClassName( $element, $codeGenerationConfig )}${util.genericClassSignature( $element )} {
3232
#end
3333
#foreach( $property in $element.properties )
3434
#javaPojoProperty( $property )

core/esmf-aspect-model-java-generator/src/main/resources/java-pojo-constructor-lib.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
$codeGenerationConfig.importTracker().importExplicit( $JsonCreator )
1919
@JsonCreator
2020
#end
21-
public ${element.name}(
21+
public ${util.generateClassName( $element, $codeGenerationConfig )}(
2222
$util.constructorArguments( $allProperties, $codeGenerationConfig, $enableJacksonAnnotations )
2323
) #if( $needInitializer ) throws DatatypeConfigurationException #end {
2424
super(

core/esmf-aspect-model-java-generator/src/main/resources/java-pojo-equals-method-lib.vm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ if (o == null || getClass() != o.getClass()) {
3131
#if( $element.getProperties().isEmpty() ) return true
3232
#else
3333
#set( $objectEqualsExpression = $util.objectEqualsExpression( $element ) )
34+
#set( $className = ${util.generateClassName( $element, $codeGenerationConfig )} )
3435
#if( $objectEqualsExpression && !$objectEqualsExpression.empty )
35-
final $element.getName() that = ($element.getName())o;
36+
final $className that = ($className)o;
3637
return $objectEqualsExpression
3738
#else
3839
return true

core/esmf-aspect-model-java-generator/src/main/resources/java-static-class-body-lib.vm

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313
#parse( "java-static-class-property-lib.vm" )
1414

1515
#macro( javaStaticClassBody )
16-
$codeGenerationConfig.importTracker().importExplicit( "${codeGenerationConfig.packageName()}.${element.getName()}" )
16+
#set( $className = ${util.generateClassName( $element, $codeGenerationConfig )} )
17+
$codeGenerationConfig.importTracker().importExplicit( "${codeGenerationConfig.packageName()}.${className}" )
1718
/**
18-
* Generated class {@link Meta${element.getName()}}.
19+
* Generated class {@link Meta${className}}.
1920
*/
20-
public class Meta${element.getName()} implements StaticMetaClass<${element.getName()}>, PropertyContainer {
21+
public class Meta${className} implements StaticMetaClass<${className}>, PropertyContainer {
2122
public static final String NAMESPACE = "${modelUrnPrefix}";
2223
public static final String MODEL_ELEMENT_URN = NAMESPACE + "${element.getName()}";
2324

@@ -49,8 +50,8 @@ static {
4950
#end
5051
#end
5152

52-
public Class<${element.getName()}> getModelClass() {
53-
return ${element.getName()}.class;
53+
public Class<${className}> getModelClass() {
54+
return ${className}.class;
5455
}
5556

5657
@Override
@@ -65,13 +66,13 @@ static {
6566

6667
@Override
6768
public String getName() {
68-
return "${element.getName()}";
69+
return "${className}";
6970
}
7071

7172
#if( $element.getExtends().isPresent() )
72-
#set( $propertyTypeParameter = "? super ${element.getName()}" )
73+
#set( $propertyTypeParameter = "? super ${className}" )
7374
#else
74-
#set( $propertyTypeParameter = ${element.getName()} )
75+
#set( $propertyTypeParameter = ${className} )
7576
#end
7677
@Override
7778
public List<StaticProperty<$propertyTypeParameter, ?>> getProperties() {

0 commit comments

Comments
 (0)