processor injection

This commit is contained in:
2025-10-23 18:26:34 +02:00
parent 53a6fdf775
commit f6cae99d59
5 changed files with 47 additions and 1 deletions

View File

@@ -110,6 +110,8 @@ public#if( $entity.isAbstract() ) abstract#end class ${entity.name}#if( $entity.
.configure(com.fasterxml.jackson.databind.SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
public abstract CommandWrapper serialize() throws java.io.IOException;
public abstract Command process() throws Exception;
#else
#if ( $entity.name != "CommandWrapper" )
public CommandWrapper serialize() throws java.io.IOException {
@@ -126,6 +128,11 @@ public#if( $entity.isAbstract() ) abstract#end class ${entity.name}#if( $entity.
public static boolean isType(CommandWrapper wrapper) {
return wrapper.getType().equals(${entity.name}.class.getSimpleName());
}
@Override
public Command process() throws Exception {
return jakarta.enterprise.inject.spi.CDI.current().select(${entity.name}Processor.class).get().process${entity.name}(this);
}
#else
public $entity.name copyIds(CommandWrapper wrapper) {
setTransaction(wrapper.getTransaction());
@@ -143,6 +150,11 @@ public#if( $entity.isAbstract() ) abstract#end class ${entity.name}#if( $entity.
this();
copyIds(wrapper);
}
public Command process() throws Exception {
Command command = (Command) Class.forName(getClass().getPackageName() + "." + this.getType()).getMethod("deserialize", getClass()).invoke(null, this);
return command.process();
}
#end
#end

View File

@@ -0,0 +1,23 @@
## --------------------------------------------------
#if ( !($entity.hasTag("Command")) || $entity.isAbstract() )
#cancel("Not a concrete Command")
#end
## --------------------------------------------------
/*
* Java command processor interface for entity "${entity.name}"
* Created on $now.date ( $now.time )
* Generated by $generator.name ( version $generator.version )
*/
package ${target.javaPackageFromFolder("persistence/${SRC}")};
/**
* Command processor interface for entity "${entity.name}"
*
* @author Telosys Tools Generator
*
*/
public interface ${entity.name}Processor {
Command process${entity.name}($entity.name request) throws Exception;
}

View File

@@ -32,6 +32,16 @@
<artifactId>jackson-annotations</artifactId>
<version>2.20</version>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<version>4.1.0</version>
</dependency>
</dependencies>
<build>

View File

@@ -30,4 +30,5 @@ Maven Backend pom.xml ; pom.xml ; backend
### Persistence ###
Java Persistence Models ; ${BEANNAME}.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/persistence_entity_java.vm
Java Command Models (P) ; ${BEANNAME}.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/command_entity_java.vm
Java Command Processors (P) ; ${BEANNAME}Processor.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/command_processor_java.vm
Maven Persistence pom.xml ; pom.xml ; persistence ; persistence/pom_xml.vm ; 1