@Override
public void setDefaultValues( DataObject dataObject, Map<String, Object> portableParams ) {
if ( portableParams != null ) {
Object currentValue = portableParams.get( "persistable" );
boolean isPersistable = Boolean.valueOf( currentValue != null ? currentValue.toString() : null );
currentValue = portableParams.get( "tableName" );
String tableName = currentValue != null ? currentValue.toString() : null;
if ( isPersistable ) {
//add default parameters for a persistable data object
JavaRoasterModelDriver modelDriver = new JavaRoasterModelDriver();
//mark the class as Entity
dataObject.addAnnotation( new AnnotationImpl( modelDriver.getConfiguredAnnotation( Entity.class.getName() ) ) );
if ( tableName != null && !"".equals( tableName.trim() ) ) {
Annotation tableAnnotation = new AnnotationImpl( modelDriver.getConfiguredAnnotation( Table.class.getName() ) );
tableAnnotation.setValue( "name", tableName.trim() );
dataObject.addAnnotation( tableAnnotation );
}
//add the by default id field
ObjectProperty id = dataObject.addProperty( "id", Long.class.getName() );
id.addAnnotation( new AnnotationImpl( modelDriver.getConfiguredAnnotation( Id.class.getName() ) ) );
//set the by default generated value annotation.
String generatorName = createDefaultGeneratorName( dataObject.getName() );
Annotation generatedValue = new AnnotationImpl( modelDriver.getConfiguredAnnotation( GeneratedValue.class.getName() ) );
generatedValue.setValue( "generator", generatorName );
generatedValue.setValue( "strategy", GenerationType.AUTO.name() );
id.addAnnotation( generatedValue );
//set by default sequence generator
Annotation sequenceGenerator = new AnnotationImpl( modelDriver.getConfiguredAnnotation( SequenceGenerator.class.getName() ) );
String sequenceName = createDefaultSequenceName( dataObject.getName() );
sequenceGenerator.setValue( "name", generatorName );
sequenceGenerator.setValue( "sequenceName", sequenceName );
id.addAnnotation( sequenceGenerator );
boolean isAuditable = portableParams.containsKey( "audited" ) ?
Boolean.valueOf( portableParams.get( "audited" ).toString() ) : false;
if ( isAuditable ) {
Annotation audited = new AnnotationImpl( modelDriver.getConfiguredAnnotation( Audited.class.getName() ) );
audited.setValue( "targetAuditMode", RelationTargetAuditMode.NOT_AUDITED.name() );
dataObject.addAnnotation( audited );
}
}
}
}
JPADomainHandler.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:kie-wb-common
作者:
评论列表
文章目录