All Downloads are FREE. Search and download functionalities are using the official Maven repository.

kz.facilities.common-base.1.3.46.source-code.Base.profile Maven / Gradle / Ivy

There is a newer version: 1.3.51
Show newest version
package org.joinedworks.facilities.common.profiles.base

// model element types: any, type, simpletype, enum, complextype, field, service, operation, association, restriction
// property types: ID, STRING, INTEGER, DECIMAL, BOOLEAN, ENUMERATION
// stereotype propagations: specialization, referencing, including


/* stereotypes */

stereotype string applicable for simpletype 
stereotype number applicable for simpletype
stereotype integer applicable for simpletype specialization of number
stereotype long applicable for simpletype specialization of number
stereotype decimal applicable for simpletype specialization of number
stereotype boolean applicable for simpletype
stereotype date applicable for simpletype
stereotype time applicable for simpletype
stereotype binary applicable for simpletype

stereotype id applicable for simpletype 
stereotype key applicable for field propagated by specialization, including  // not propagated by referencing
stereotype version applicable for field  // a field with this stereotype is intended to be used for optimistic locking (should be numeric or timestamp)

stereotype immutable applicable for complextype, field
stereotype entity applicable for complextype not propagated by specialization
stereotype aggregate applicable for complextype not propagated by specialization
stereotype projection applicable for complextype not propagated by specialization
stereotype collection applicable for complextype not propagated by specialization
stereotype sequence applicable for simpletype
stereotype dao applicable for service
stereotype controller applicable for service
stereotype gateway applicable for service

stereotype aggregation applicable for association
stereotype composition applicable for association

stereotype storage applicable for component
stereotype extern applicable for component
stereotype ux applicable for component

stereotype init applicable for operation  // TODO support 'action'

stereotype custom applicable for service,_widget  // Custom service or widget

constraint unique
constraint index
constraint readOnly


/* outlets */

abstract outlet StandardOutput  
	createNotExistingDirectory = true
	overwriteExistingFiles = true
	markAsDerived = true
	deleteFilesOnCleanBuild = true
	cleanWholdDirectoryOnCleanBuild = false
	keepLocalHistory = true
	
outlet generatedDiagram specialization of StandardOutput
	directory = "./diagram"
	
outlet generatedSchema specialization of StandardOutput
	directory = "./target/joinedworkz/schema"
	
outlet generatedOpenApi specialization of StandardOutput
    directory = "./src/generated/resources/openapi"
    
outlet generatedOpenApiHtml specialization of StandardOutput
	directory = "./diagram/api"


/* cartridges */

cartridge DiagramCartridge implementation="org.joinedworkz.common.DiagramCartridge" outlets=generatedDiagram
cartridge SchemaCartridge implementation="org.joinedworkz.common.SchemaCartridge" outlets=generatedSchema
cartridge OpenApiCartridge implementation="org.joinedworkz.common.OpenApiCartridge" outlets=generatedOpenApi, generatedOpenApiHtml


/* settings */

setting CommonSetting implementation="org.joinedworkz.common.CommonSetting"


/* platforms */

platform Base setting=CommonSetting {
	
	/* apply cartridges */
	apply cartridge DiagramCartridge
	apply cartridge SchemaCartridge
	apply cartridge OpenApiCartridge

	contribute to simpletype {
		property minLength: INTEGER
		property maxLength: INTEGER 
		property pattern: STRING
		property javaType: STRING
	}
	
	contribute to simpletype {
		 property minValue: DECIMAL
		 property maxValue: DECIMAL
		 property precision: INTEGER
	}
	
	contribute to simpletype {
		 property scale: INTEGER
	}
	
	contribute to complextype {
		property tableName: STRING not propagated by specialization
	}
	
	contribute to complextype.field {
		property columnName: STRING
	}
	
}






© 2015 - 2024 Weber Informatics LLC | Privacy Policy