Many JavaGen developers are not aware that each Java simple type is modeled as a UML datatype because UML tools come loaded with predefined datatype definitions. Like a stereotype, a UML datatype is nothing more than a name.
For each datatype, JavaGen maintains a record describing such things as SQL type, display length and even regular expressions used for data validation. Much of JavaGen's intelligence comes from utilizing this datatype metadata in the code generation process.
JavaGen defines the following default datatypes
| Name | Java Type | Max Length | Validation |
|---|---|---|---|
| void | void | N/A | N/A |
| boolean | boolean | N/A | N/A |
| char | char | N/A | N/A |
| byte | byte | 4 | ^(\-|\+)?[0-9][0-9]?[0-9]?$ |
| short | short | 6 | ^(\-|\+)?[0-9]+$ |
| int | int | 11 | ^(\-|\+)?[0-9]+$ |
| long | long | 20 | ^(\-|\+)?[0-9]+$ |
| integer | java.math.BigInteger | N/A | ^(\-|\+)?[0-9]+$ |
| float | float | 40 | ^(\-|\+)?[0-9]*\.?[0-9]*$ |
| double | double | 80 | ^([\+|\-]?[0-9]*)\.?([0-9]*)$ |
| Void | java.lang.Void | N/A | N/A |
| Boolean | java.lang.Boolean | N/A | N/A |
| Character | java.lang.Character | N/A | N/A |
| Byte | java.lang.Byte | 4 | N/A |
| Short | java.lang.Short | 6 | N/A |
| Integer | java.lang.Integer | 11 | N/A |
| Long | java.lang.Long | 20 | N/A |
| Float | java.lang.Float | 40 | N/A |
| Double | java.lang.Double | 80 | N/A |
| Object | java.lang.Object | N/A | N/A |
| Class | java.lang.Class | N/A | N/A |
| String | java.lang.String | N/A | N/A |
| StringBuffer | java.lang.StringBuffer | N/A | N/A |
| URL | java.net.URL | N/A | N/A |
| File | java.io.File | N/A | N/A |
| Date | java.util.Date | 40 | N/A |
| Time | java.sql.Time | 40 | N/A |
| Timestamp | java.sql.Timestamp | 40 | N/A |
| Calendar | java.util.Calendar | 40 | N/A |
| TimeZone | java.util.TimeZone | N/A | N/A |
| Currency | java.util.Currency | N/A | N/A |
| Number | java.util.Number | N/A | N/A |
| BigInteger | java.math.BigInteger | N/A | N/A |
| BigDecimal | java.math.BigDecimal | N/A | N/A |
| Locale | java.util.Locale | 10 | ^[a-z]{2}(\-[a-zA-Z]{2})?$ |
| URLString | java.lang.String | N/A | N/A |
| DateString | java.lang.String | 40 | N/A |
| TimeString | java.lang.String | 40 | N/A |
| TimestampString | java.lang.String | 40 | N/A |
| NumberString | java.lang.String | N/A | N/A |
| BigIntegerString | java.lang.String | N/A | N/A |
| BigDecimalString | java.lang.String | N/A | N/A |
| LocaleString | java.lang.String | 10 | N/A |
| id | java.lang.String | 50 | ^\d*$ |
| autoPkString | java.lang.String | 50 | N/A |
| naturalPkString | java.lang.String | 50 | N/A |
| timestamp | java.util.Date | 40 | ^([0-1]?[0-9])[\-|/| ]?([0-3]?[0-9])[\-|/| ]?([1-2]?[0-9]?[0-9][0-9])([ |,]([0-2]?[0-9]):?([0-5]?[0-9]?))?$ |
| textDate | java.lang.String | 40 | ^([0-1]?[0-9])[\-|/| ]?([0-3]?[0-9])[\-|/| ]?([1-2]?[0-9]?[0-9][0-9])$ |
| decimal | java.math.BigDecimal | N/A | ^(\-|\+)?[0-9]*\.?[0-9]*$ |
| percent | double | 80 | ^([\+|\-]?[0-9]*)\.?([0-9]*)[%]?$ |
| currency | double | 11 | N/A |
| firstName | java.lang.String | 60 | ^\w+$ |
| lastName | java.lang.String | 60 | ^[a-zA-Z]*$ |
| userName | java.lang.String | 30 | ^\w+$ |
| password | java.lang.String | 30 | ^\w+$ |
| streetAddress | java.lang.String | 60 | ^[0-9a-zA-Z]*$ |
| city | java.lang.String | 60 | ^[a-zA-Z]*$ |
| zip | int | 9 | ^([0-9]{5})[-| ]?([0-9]{4})?$ |
| state | java.lang.String | N/A | ^[a-zA-Z]{2}$ |
| country | java.lang.String | N/A | ^[a-zA-Z]{2}$ |
| phone | java.lang.String | 20 | ^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$ |
| ssNumber | java.lang.String | 11 | ^(\d{3})[\-]?(\d{2})[\-]?(\d{4})$ |
| usTimestamp | java.sql.Timestamp | 11 | ^([0-1]?[0-9])[\-|/| ]?([0-3]?[0-9])[\-|/| ]?([1-2]?[0-9]?[0-9][0-9])([ |,]([0-2]?[0-9]):?([0-5]?[0-9]?))?$ |
| usDate | java.sql.Date | 11 | ^([0-1]?[0-9])[\-|/| ]?([0-3]?[0-9])[\-|/| ]?([1-2]?[0-9]?[0-9][0-9])$ |
| usTime | java.sql.Time | 11 | ^([0-2]?[0-9]):?([0-5]?[0-9]?)$ |
| textUrl | java.lang.String | N/A | N/A |
| java.lang.String | 60 | N/A | |
| creditCard | java.lang.String | 19 | N/A |
| string | java.lang.String | N/A | N/A |
| textLine | java.lang.String | N/A | ^[^\t\n\r\f]*$ |
| description | java.lang.String | 255 | N/A |
| age | short | 3 | ^[1]?[0-9]?[0-9]$ |
| creditCardNumber | java.lang.String | 19 | ^(\d{4})[-| ]?(\d{4})[-| ]?(\d{4})[-| ]?(\d{4})[ ]*$ |
| creditCardExpirationDate | java.lang.String | 40 | N/A |
| creditCardType | java.lang.String | 10 | N/A |