Class DTO
- java.lang.Object
-
- org.wurbelizer.wurblet.AbstractWurblet
-
- org.wurbelizer.wurblet.AbstractJavaWurblet
-
- org.tentackle.wurblet.DTOWurblet
-
- org.tentackle.wurblet.DTO
-
- All Implemented Interfaces:
org.wurbelizer.wurblet.Wurblet
public class DTO extends DTOWurblet
(@wurblet) DTO creates code for a data transfer object.usage:
@wurblet <tag> DTO [--builder [--from]] <filename>arguments:
- --builder: generate code according to the builder pattern.
- --equals: generate the equals method.
- --hashCode: generate the hashCode method.
- --validate[=<code>]: perform validation after construction.
Requires that the DTO implements
Validateable. If the optional <code> is missing, the default"ValidationUtilities.getInstance().validate(this)"will be used. - --names: generate the name constants for all properties.
- --from: only if --builder set: generate method to create a builder from instance. This will automatically happen if the '+' option at set for at least one property.
- --nott: generate generic code that does not need any Tentackle dependency (such as TentackleRuntimeException)
- filename: the file holding the DTO model.
AbstractWurblet.The model is usually stored in a heap-file such as ".$filename" created as a here-document within the leading comment block of the DTO-file.
Each line describes a property.
Example:String name the object's name int count the counter
If the line is prefixed with "^", the property is passed to the super entity within the constructor.
In builder pattern mode, standard java inheritance must be used instead.
Example:^String name the name
If the line is prefixed with "=" or "~", the property is mutable and a setter is generated. "~" marks the property transient as well.
In builder pattern mode, no builder method is generated for this property.
Examples:=String name the name
Only for builder mode: lines prefixed with "!" are considered as required and a (Tentackle)RuntimeException is thrown by the build-method, if a required attribute was not configured. Notice that a required attribute is always immutable.!String name the name
For lines prefixed with "+" a from-Method is generated that creates a new DTO from the current one by replacing the given property.+String name the name
This would create an instance method "fromName(String name)" that returns a new DTO instance.The comment may contain optional annotations enclosed in square brackets.
String name the name [@Bindable(MAXCOL=20)] [@MyAnno]
Can also be written as:String name the name [@Bindable(MAXCOL=20), @MyAnno]
Annotations not belonging to a property are applied to all properties, if not already defined in the comment. Global annotations can be removed from a property with a leading dash or exclamation mark.
[@Bindable] String blah the blah String blue the blue not bindable [-@Bindable] ...
If the builder pattern is used and the class extends a superclass, the builder is created as an extension of the superclass'es builder.
Important: if
--equalsor--hashCodeis given in a subclass, all superclasses must get those options as well!
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.tentackle.wurblet.DTOWurblet
DTOWurblet.Property
-
-
Field Summary
-
Fields inherited from class org.tentackle.wurblet.DTOWurblet
annotations, filename, modelSourceLine, modelSourceName, needConstructor, nott, properties, superClass, validate, withBuilder, withEquals, withFrom, withHashCode, withNames
-
-
Constructor Summary
Constructors Constructor Description DTO()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidrun()-
Methods inherited from class org.wurbelizer.wurblet.AbstractJavaWurblet
getClassName, getPackageName, getSuperClassName, isAbstract, isFinal, isPrivate, isProtected, isPublic, toString
-
-
-
-
Method Detail
-
run
public void run() throws org.wurbelizer.wurbel.WurbelException- Specified by:
runin interfaceorg.wurbelizer.wurblet.Wurblet- Overrides:
runin classDTOWurblet- Throws:
org.wurbelizer.wurbel.WurbelException
-
-