Value Objects
We will now add a value object called
TimecardVO
to the model.
This will be the value object for the
Timecard
entity and we will
keep it simple by mapping it one-to-one with the
Timecard
entity.
The model for the
TimecardVO
looks like this:
The TimeTracker front end will receive
TimecardVO
objects from
the time tracking service. Typically items that the front end will need to display
are put in value objects. For example we could add a string with the submitting
user's name toTimecardVO, even though this information may or
may not be stored in the actual
Timecard
entity.
- Create a new diagram by right clicking on the
VO
package and clicking
New Diagram
|Class Diagram. Set the name of the diagram
to
Value Object Diagram
and clickOk.
- Click the
Class
tool
in the toolbar and make a new class on the surface. Double click on the class, name
itTimecardVO, and add the
Value Object
stereotype
to it.
- Right click on the
TimecardVO
object and selectInsert
new attribute. Add three public attributes to the class by:
- One called
id
of typeLong.
- One called
startDate
of typeDate.
- One called
comments
of typeString.
- Drag the
Timecard
class onto the diagram. Click the
Dependency
tool
and draw a dependency from the
Timecard
class to the
TimecardVO
class. Adding this dependency will tell AndroMDA that the
Timecard
entity will be converted to
TimecardVO
objects, and it will generate
helper code in the generated
TimecardDao
data access class to support
translation between them.
- Click the
Class
tool
in the toolbar and make a new class on the surface. Double click on the class and
name itTimecardVO[]. We do not need to add a stereotype to it.
This will create a type that we can use to return collections of
TimecardVO
objects from service methods.