From 32dcd471311f110e9324ee3a972ac76315f4727c Mon Sep 17 00:00:00 2001 From: Lennart Heinrich Date: Mon, 17 Nov 2025 20:01:17 +0100 Subject: [PATCH] order api + statistics + plantuml fix --- .../models/InfiniMotion/OmdbMovie.entity | 2 +- .../models/InfiniMotion/OmdbSearch.entity | 2 +- .../InfiniMotion/OrderTransaction.entity | 7 +++ .../models/InfiniMotion/StatisticsFilm.entity | 2 +- .../InfiniMotion/StatisticsFilmReduced.entity | 8 +++ .../InfiniMotion/StatisticsReduced.entity | 7 +++ .../InfiniMotion/StatisticsVorstellung.entity | 6 +- .../StatisticsVorstellungReduced.entity | 8 +++ TelosysTools/telosys-tools.cfg | 2 +- .../backend/backend_entity_java.vm | 4 +- .../frontend/frontend_entity_ts.vm | 4 +- .../infinimotion/frontend/index_ts.vm | 4 +- .../persistence/addon_entity_java.vm | 60 +++++++++++++++++++ .../infinimotion/plantuml/class-diag_txt.vm | 24 +++++--- .../templates/infinimotion/templates.cfg | 1 + 15 files changed, 119 insertions(+), 22 deletions(-) create mode 100644 TelosysTools/models/InfiniMotion/OrderTransaction.entity create mode 100644 TelosysTools/models/InfiniMotion/StatisticsFilmReduced.entity create mode 100644 TelosysTools/models/InfiniMotion/StatisticsReduced.entity create mode 100644 TelosysTools/models/InfiniMotion/StatisticsVorstellungReduced.entity create mode 100644 TelosysTools/templates/infinimotion/persistence/addon_entity_java.vm diff --git a/TelosysTools/models/InfiniMotion/OmdbMovie.entity b/TelosysTools/models/InfiniMotion/OmdbMovie.entity index cb0297b..0dd4e8a 100644 --- a/TelosysTools/models/InfiniMotion/OmdbMovie.entity +++ b/TelosysTools/models/InfiniMotion/OmdbMovie.entity @@ -1,6 +1,6 @@ // Entity OmdbMovie -#Omdb +#AddonModel OmdbMovie { imdbID: string {} ; title: string {} ; diff --git a/TelosysTools/models/InfiniMotion/OmdbSearch.entity b/TelosysTools/models/InfiniMotion/OmdbSearch.entity index 87c8f5c..905315a 100644 --- a/TelosysTools/models/InfiniMotion/OmdbSearch.entity +++ b/TelosysTools/models/InfiniMotion/OmdbSearch.entity @@ -1,6 +1,6 @@ // Entity OmdbSearch -#Omdb +#AddonModel OmdbSearch { search: OmdbMovie[] {} ; } diff --git a/TelosysTools/models/InfiniMotion/OrderTransaction.entity b/TelosysTools/models/InfiniMotion/OrderTransaction.entity new file mode 100644 index 0000000..8278b00 --- /dev/null +++ b/TelosysTools/models/InfiniMotion/OrderTransaction.entity @@ -0,0 +1,7 @@ +// Entity OrderTransaction + +#AddonModel +OrderTransaction { + order: Bestellung { } ; + tickets: Eintrittskarte[] {} ; +} diff --git a/TelosysTools/models/InfiniMotion/StatisticsFilm.entity b/TelosysTools/models/InfiniMotion/StatisticsFilm.entity index 1fbb22f..24b01dc 100644 --- a/TelosysTools/models/InfiniMotion/StatisticsFilm.entity +++ b/TelosysTools/models/InfiniMotion/StatisticsFilm.entity @@ -4,5 +4,5 @@ StatisticsFilm { movie: Film {}; tickets: Eintrittskarte[] {}; - earnings: int {}; + earnings: int { @NotNull }; } diff --git a/TelosysTools/models/InfiniMotion/StatisticsFilmReduced.entity b/TelosysTools/models/InfiniMotion/StatisticsFilmReduced.entity new file mode 100644 index 0000000..c328382 --- /dev/null +++ b/TelosysTools/models/InfiniMotion/StatisticsFilmReduced.entity @@ -0,0 +1,8 @@ +// Entity StatisticsFilmReduced + +#AddonModel +StatisticsFilmReduced { + movie: Film {}; + tickets: int { @NotNull }; + earnings: int { @NotNull }; +} diff --git a/TelosysTools/models/InfiniMotion/StatisticsReduced.entity b/TelosysTools/models/InfiniMotion/StatisticsReduced.entity new file mode 100644 index 0000000..ef86293 --- /dev/null +++ b/TelosysTools/models/InfiniMotion/StatisticsReduced.entity @@ -0,0 +1,7 @@ +// Entity OmdbMovie + +#AddonModel +StatisticsReduced { + movies: StatisticsFilmReduced[] {}; + shows: StatisticsVorstellungReduced[] {}; +} diff --git a/TelosysTools/models/InfiniMotion/StatisticsVorstellung.entity b/TelosysTools/models/InfiniMotion/StatisticsVorstellung.entity index 31dc2e1..1833a47 100644 --- a/TelosysTools/models/InfiniMotion/StatisticsVorstellung.entity +++ b/TelosysTools/models/InfiniMotion/StatisticsVorstellung.entity @@ -2,7 +2,7 @@ #Statistics StatisticsVorstellung { - show: Vorstellung {}; - tickets: Eintrittskarte[] {}; - earnings: int {}; + show: Vorstellung { }; + tickets: Eintrittskarte[] { }; + earnings: int { @NotNull }; } diff --git a/TelosysTools/models/InfiniMotion/StatisticsVorstellungReduced.entity b/TelosysTools/models/InfiniMotion/StatisticsVorstellungReduced.entity new file mode 100644 index 0000000..53ba242 --- /dev/null +++ b/TelosysTools/models/InfiniMotion/StatisticsVorstellungReduced.entity @@ -0,0 +1,8 @@ +// Entity StatisticsVorstellungReduced + +#AddonModel +StatisticsVorstellungReduced { + show: Vorstellung {} ; + tickets: int { @NotNull }; + earnings: int { @NotNull }; +} diff --git a/TelosysTools/telosys-tools.cfg b/TelosysTools/telosys-tools.cfg index 5a072b2..395b71f 100644 --- a/TelosysTools/telosys-tools.cfg +++ b/TelosysTools/telosys-tools.cfg @@ -22,7 +22,7 @@ ENTITY_PKG=de.infinimotion.model.bean ProjectVariable.MAVEN_ARTIFACT_ID=model ProjectVariable.MAVEN_GROUP_ID=de.infinimotion ProjectVariable.PROJECT_NAME=infinimodel -ProjectVariable.PROJECT_VERSION=0.0.102 +ProjectVariable.PROJECT_VERSION=0.0.110 ProjectVariable.REST_SERVER_PORT=3000 ProjectVariable.REST_API_ROOT=/api/v1 ProjectVariable.REST_URL_ROOT=http://localhost:3000 diff --git a/TelosysTools/templates/infinimotion/backend/backend_entity_java.vm b/TelosysTools/templates/infinimotion/backend/backend_entity_java.vm index 8d8bdb3..674fd89 100644 --- a/TelosysTools/templates/infinimotion/backend/backend_entity_java.vm +++ b/TelosysTools/templates/infinimotion/backend/backend_entity_java.vm @@ -1,6 +1,6 @@ ## -------------------------------------------------- -#if ( !($entity.hasTag("BaseModel") || $entity.hasTag("Omdb") || $entity.hasTag("Statistics")) ) -#cancel("Not a Base or Omdb Model") +#if ( !($entity.hasTag("BaseModel") || $entity.hasTag("AddonModel") || $entity.hasTag("Statistics")) ) +#cancel("Not a Base or Addon Model") #end ## -------------------------------------------------- /* diff --git a/TelosysTools/templates/infinimotion/frontend/frontend_entity_ts.vm b/TelosysTools/templates/infinimotion/frontend/frontend_entity_ts.vm index f3f90cf..64b7c84 100644 --- a/TelosysTools/templates/infinimotion/frontend/frontend_entity_ts.vm +++ b/TelosysTools/templates/infinimotion/frontend/frontend_entity_ts.vm @@ -1,6 +1,6 @@ ## -------------------------------------------------- -#if ( !($entity.hasTag("BaseModel") || $entity.hasTag("Omdb") || $entity.hasTag("Statistics")) ) -#cancel("Not a Base or Omdb Model") +#if ( !($entity.hasTag("BaseModel") || $entity.hasTag("AddonModel") || $entity.hasTag("Statistics")) ) +#cancel("Not a Base or Addon Model") #end ## -------------------------------------------------- #set( $env.language = 'TypeScript' ) diff --git a/TelosysTools/templates/infinimotion/frontend/index_ts.vm b/TelosysTools/templates/infinimotion/frontend/index_ts.vm index 805c91d..c6cb6ee 100644 --- a/TelosysTools/templates/infinimotion/frontend/index_ts.vm +++ b/TelosysTools/templates/infinimotion/frontend/index_ts.vm @@ -1,12 +1,12 @@ #foreach( $entity in $model.allEntities ) -#if ( $entity.hasTag("BaseModel") || $entity.hasTag("Omdb") || $entity.hasTag("Statistics") ) +#if ( $entity.hasTag("BaseModel") || $entity.hasTag("AddonModel") || $entity.hasTag("Statistics") ) import $entity.name from "./${entity.name}"; #end #end export type { #foreach( $entity in $model.allEntities ) -#if ( $entity.hasTag("BaseModel") || $entity.hasTag("Omdb") || $entity.hasTag("Statistics") ) +#if ( $entity.hasTag("BaseModel") || $entity.hasTag("AddonModel") || $entity.hasTag("Statistics") ) $entity.name, #end #end diff --git a/TelosysTools/templates/infinimotion/persistence/addon_entity_java.vm b/TelosysTools/templates/infinimotion/persistence/addon_entity_java.vm new file mode 100644 index 0000000..3879842 --- /dev/null +++ b/TelosysTools/templates/infinimotion/persistence/addon_entity_java.vm @@ -0,0 +1,60 @@ +## -------------------------------------------------- +#if ( !($entity.hasTag("AddonModel")) ) +#cancel("Not an Addon Model") +#end +## +/* + * Created on $now.date ( $now.time ) + * Generated by Telosys ( http://www.telosys.org/ ) version $generator.version + */ +package ${target.javaPackageFromFolder("persistence/${SRC}")}; + +import java.util.List; + +/** + * Addon model entity class for "${entity.name}" + * + * @author Telosys + * + */ +@lombok.EqualsAndHashCode +public class ${entity.name} { + +#foreach( $attribute in $entity.attributes ) + private $attribute.formattedType(10) $attribute.name #if($attribute.hasInitialValue())= ${attribute.ini} #end; + +#end + +#foreach( $link in $entity.links ) + private ${link.formattedFieldType(10)} $link.fieldName ; +#end + + /** + * Constructor + */ + public ${entity.name}() { + super(); + } + +#foreach( $attribute in $entity.attributes ) + public void ${attribute.setter}( $attribute.type $attribute.name ) { + this.$attribute.name = $attribute.name ; + } + public $attribute.type ${attribute.getter}() { + return this.$attribute.name; + } +#end + +#foreach( $link in $entity.links ) + public ${link.formattedFieldType(0)} ${link.getter}() { + return this.${link.formattedFieldName(0)}; + } + public void ${link.setter}( ${link.formattedFieldType(0)} $link.fieldName ) { + this.$link.fieldName = $link.fieldName ; + } +#end + + //--- toString specific method + @Override +$java.toStringMethod($entity, 1) +} diff --git a/TelosysTools/templates/infinimotion/plantuml/class-diag_txt.vm b/TelosysTools/templates/infinimotion/plantuml/class-diag_txt.vm index 5c34ddc..0ca8482 100644 --- a/TelosysTools/templates/infinimotion/plantuml/class-diag_txt.vm +++ b/TelosysTools/templates/infinimotion/plantuml/class-diag_txt.vm @@ -8,7 +8,7 @@ #if ( $link.isCollectionType() ) #set($cardinality = "N" ) #end -$entity.name --> "$cardinality" $link.targetEntity.name +$entity.name --> "$cardinality" $link.targetEntity.name : ${link.fieldName} #end #end #end @@ -21,17 +21,17 @@ $entity.name --> "$cardinality" $link.targetEntity.name #if ( $link.isCollectionType() ) #set($cardinality = "N" ) #end -${entity.name}::${link.fieldName} --> "$cardinality" $link.targetEntity.name +${entity.name}::${link.fieldName} --> "$cardinality" $link.targetEntity.name : ${link.fieldName} #end #end #end ## ----------------------------------------------------------------------- #macro( basicLink $entity $link $cardinality ) -$entity.name --> "$cardinality" $link.targetEntity.name +$entity.name --> "$cardinality" $link.targetEntity.name : ${link.fieldName} #end ## ----------------------------------------------------------------------- #macro( linkFromField $entity $link $cardinality ) -${entity.name}::${link.fieldName} --> "$cardinality" $link.targetEntity.name +${entity.name}::${link.fieldName} --> "$cardinality" $link.targetEntity.name : ${link.fieldName} #end ## ----------------------------------------------------------------------- @startuml @@ -45,7 +45,7 @@ end note ## --- Classes (based on model entities) #foreach( $entity in $selectedEntities ) -class $entity.name #if ( $entity.isJoinEntity() ) << (J,AliceBlue) Join Entity >> #else << (E,cornsilk) >> #end { +#if ( $entity.isAbstract() )abstract#end class $entity.name #if ( $entity.isJoinEntity() ) << (J,AliceBlue) Join Entity >> #else << (E,cornsilk) >> #end { #foreach( $attribute in $entity.keyAttributes ) + $attribute.name : $attribute.neutralType {PK} #if ($attribute.isFK() ){FK}#end @@ -55,10 +55,10 @@ class $entity.name #if ( $entity.isJoinEntity() ) << (J,AliceBlue) Join Entity + $attribute.name : $attribute.neutralType #if ($attribute.isFK() ){FK}#end #end - .... -#foreach( $link in $entity.selectedLinks ) - + $link.fieldName : $link.fieldType -#end +## .... +###foreach( $link in $entity.selectedLinks ) +## + $link.fieldName : $link.fieldType +###end } #end @@ -78,4 +78,10 @@ class $entity.name #if ( $entity.isJoinEntity() ) << (J,AliceBlue) Join Entity #end #end +#foreach( $entity in $selectedEntities ) +#if( $entity.hasSuperClass() ) +$entity.superClass <|-- $entity.name +#end +#end + @enduml diff --git a/TelosysTools/templates/infinimotion/templates.cfg b/TelosysTools/templates/infinimotion/templates.cfg index e9e0788..fc6cf07 100644 --- a/TelosysTools/templates/infinimotion/templates.cfg +++ b/TelosysTools/templates/infinimotion/templates.cfg @@ -55,6 +55,7 @@ Java Command Processors (P) ; ${BEANNAME}Processor.java ; persis Java Model Processors ; ${BEANNAME}Processor.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/processor_entity_java.vm Java Filter Query Interface ; GenericFilterQuery.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/generic_filter_query_java.vm ; 1 Java Statistics Models ; ${BEANNAME}.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/statistics_entity_java.vm +Java Addon Models ; ${BEANNAME}.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/addon_entity_java.vm Java Command GetModels (P) ; CommandGet${BEANNAME}.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/command/get_java.vm Java Command ListModels (P) ; CommandList${BEANNAME}.java ; persistence/${SRC}/${ROOT_PKG}/persistence ; persistence/command/list_java.vm