From 2d0a179c3b0a2e7f828326a5ffde29e4e874c0eb Mon Sep 17 00:00:00 2001 From: rbygrave Date: Fri, 15 May 2015 00:09:19 +1200 Subject: [PATCH] No effective change - reformat and tidy --- .../server/deploy/parse/AnnotationFields.java | 35 +- .../server/deploy/parse/DeployUtil.java | 331 +++++++++--------- 2 files changed, 167 insertions(+), 199 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java index c868e6c18..027849d0b 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java @@ -119,9 +119,9 @@ public class AnnotationFields extends AnnotationParser { readGenValue(gen, prop); } - Id id = (Id) get(prop, Id.class); + Id id = get(prop, Id.class); if (id != null) { - readId(id, prop); + readId(prop); } // determine the JDBC type using Lob/Temporal @@ -202,8 +202,7 @@ public class AnnotationFields extends AnnotationParser { } } else { - throw new RuntimeException("Can't use EmbeddedColumns on ScalarType " - + prop.getFullBeanName()); + throw new RuntimeException("Can't use EmbeddedColumns on ScalarType " + prop.getFullBeanName()); } } @@ -219,8 +218,7 @@ public class AnnotationFields extends AnnotationParser { if (!prop.isTransient()) { - EncryptDeploy encryptDeploy = util.getEncryptDeploy(info.getDescriptor().getBaseTableFull(), - prop.getDbColumn()); + EncryptDeploy encryptDeploy = util.getEncryptDeploy(info.getDescriptor().getBaseTableFull(), prop.getDbColumn()); if (encryptDeploy == null || encryptDeploy.getMode().equals(Mode.MODE_ANNOTATION)) { Encrypted encrypted = get(prop, Encrypted.class); if (encrypted != null) { @@ -233,7 +231,7 @@ public class AnnotationFields extends AnnotationParser { Index index = get(prop, Index.class); if (index != null) { - if(hasRelationshipItem(prop)) { + if (hasRelationshipItem(prop)) { throw new RuntimeException("Can't use Index on foreign key relationships."); } prop.setIndexed(true); @@ -243,8 +241,8 @@ public class AnnotationFields extends AnnotationParser { private boolean hasRelationshipItem(DeployBeanProperty prop) { return get(prop, OneToMany.class) != null || - get(prop, ManyToOne.class) != null || - get(prop, OneToOne.class) != null; + get(prop, ManyToOne.class) != null || + get(prop, OneToOne.class) != null; } /** @@ -252,13 +250,7 @@ public class AnnotationFields extends AnnotationParser { * can be applied to DDL generation. */ private boolean isNotNullOnAllValidationGroups(Class[] groups) { - if (groups.length == 0) { - return true; - } - if (groups.length == 1 && javax.validation.groups.Default.class.isAssignableFrom(groups[0])) { - return true; - } - return false; + return groups.length == 0 || groups.length == 1 && javax.validation.groups.Default.class.isAssignableFrom(groups[0]); } private void setEncryption(DeployBeanProperty prop, boolean dbEncString, int dbLen) { @@ -324,7 +316,7 @@ public class AnnotationFields extends AnnotationParser { return util.createDataEncryptSupport(table, column); } - private void readId(Id id, DeployBeanProperty prop) { + private void readId(DeployBeanProperty prop) { prop.setId(true); prop.setNullable(false); @@ -368,9 +360,6 @@ public class AnnotationFields extends AnnotationParser { if (prop.getPropertyType().equals(UUID.class)) { descriptor.setIdGeneratorName(UuidIdGenerator.AUTO_UUID); descriptor.setIdType(IdType.GENERATOR); - - } else { - // use DatabasePlatform defaults } } } @@ -414,13 +403,9 @@ public class AnnotationFields extends AnnotationParser { String baseTable = descriptor.getBaseTable(); String tableName = columnAnn.table(); - if (tableName.equals("") || tableName.equalsIgnoreCase(baseTable)) { - // its a base table property... - } else { + if (!"".equals(tableName) && !tableName.equalsIgnoreCase(baseTable)) { // its on a secondary table... prop.setSecondaryTable(tableName); - // DeployTableJoin tableJoin = info.getTableJoin(tableName); - // tableJoin.addProperty(prop); } } diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java index 4589a4e46..10471ad7e 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java @@ -28,201 +28,184 @@ import org.slf4j.LoggerFactory; */ public class DeployUtil { - private static final Logger logger = LoggerFactory.getLogger(DeployUtil.class); + private static final Logger logger = LoggerFactory.getLogger(DeployUtil.class); + /** + * Assumes CLOB rather than LONGVARCHAR. + */ + private static final int dbCLOBType = Types.CLOB; + /** + * Assumes BLOB rather than LONGVARBINARY. This should probably be + * configurable. + */ + private static final int dbBLOBType = Types.BLOB; - /** - * Assumes CLOB rather than LONGVARCHAR. - */ - private static final int dbCLOBType = Types.CLOB; + private final NamingConvention namingConvention; - /** - * Assumes BLOB rather than LONGVARBINARY. This should probably be - * configurable. - */ - private static final int dbBLOBType = Types.BLOB; + private final TypeManager typeManager; - private final NamingConvention namingConvention; + private final DatabasePlatform dbPlatform; - private final TypeManager typeManager; + private final EncryptDeployManager encryptDeployManager; - private final String manyToManyAlias; + private final EncryptKeyManager encryptKeyManager; - private final DatabasePlatform dbPlatform; - - private final EncryptDeployManager encryptDeployManager; + private final Encryptor bytesEncryptor; - private final EncryptKeyManager encryptKeyManager; - - private final Encryptor bytesEncryptor; - - public DeployUtil(TypeManager typeMgr, ServerConfig serverConfig) { + public DeployUtil(TypeManager typeMgr, ServerConfig serverConfig) { - this.typeManager = typeMgr; - this.namingConvention = serverConfig.getNamingConvention(); - this.dbPlatform = serverConfig.getDatabasePlatform(); - this.encryptDeployManager = serverConfig.getEncryptDeployManager(); - this.encryptKeyManager = serverConfig.getEncryptKeyManager(); - - Encryptor be = serverConfig.getEncryptor(); - this.bytesEncryptor = be != null ? be : new SimpleAesEncryptor(); - - // this alias is used for ManyToMany lazy loading queries - this.manyToManyAlias = "zzzzzz"; - } - - public TypeManager getTypeManager() { - return typeManager; + this.typeManager = typeMgr; + this.namingConvention = serverConfig.getNamingConvention(); + this.dbPlatform = serverConfig.getDatabasePlatform(); + this.encryptDeployManager = serverConfig.getEncryptDeployManager(); + this.encryptKeyManager = serverConfig.getEncryptKeyManager(); + + Encryptor be = serverConfig.getEncryptor(); + this.bytesEncryptor = be != null ? be : new SimpleAesEncryptor(); + } + + public TypeManager getTypeManager() { + return typeManager; + } + + public DatabasePlatform getDbPlatform() { + return dbPlatform; + } + + public NamingConvention getNamingConvention() { + return namingConvention; + } + + /** + * Check that the EncryptKeyManager has been defined. + */ + public void checkEncryptKeyManagerDefined(String fullPropName) { + if (encryptKeyManager == null) { + String msg = "Using encryption on " + fullPropName + " but no EncryptKeyManager defined!"; + throw new PersistenceException(msg); + } + } + + public EncryptDeploy getEncryptDeploy(TableName table, String column) { + if (encryptDeployManager == null) { + return EncryptDeploy.ANNOTATION; + } + return encryptDeployManager.getEncryptDeploy(table, column); + } + + public DataEncryptSupport createDataEncryptSupport(String table, String column) { + return new DataEncryptSupport(encryptKeyManager, bytesEncryptor, table, column); + } + + public ScalarType setEnumScalarType(Enumerated enumerated, DeployBeanProperty prop) { + + Class enumType = prop.getPropertyType(); + if (!enumType.isEnum()) { + throw new IllegalArgumentException("Class [" + enumType + "] is Not a Enum?"); + } + ScalarType scalarType = typeManager.getScalarType(enumType); + if (scalarType == null) { + // see if it has a Mapping in avaje.properties + scalarType = typeManager.createEnumScalarType(enumType); + if (scalarType == null) { + // use JPA normal Enum type (without mapping) + EnumType type = enumerated != null ? enumerated.value() : null; + scalarType = createEnumScalarTypePerSpec(enumType, type, prop.getDbType()); + } + + typeManager.add(scalarType); + } + prop.setScalarType(scalarType); + prop.setDbType(scalarType.getJdbcType()); + return scalarType; + } + + private ScalarType createEnumScalarTypePerSpec(Class enumType, EnumType type, int dbType) { + + if (type == null) { + // default as per spec is ORDINAL + return new ScalarTypeEnumStandard.OrdinalEnum(enumType); + + } else if (type == EnumType.ORDINAL) { + return new ScalarTypeEnumStandard.OrdinalEnum(enumType); + + } else { + return new ScalarTypeEnumStandard.StringEnum(enumType); + } + } + + /** + * Find the ScalarType for this property. + *

+ * This determines if there is a conversion required from the logical (bean) + * type to a DB (jdbc) type. This is the case for java.util.Date etc. + *

+ */ + public void setScalarType(DeployBeanProperty property) { + + if (property.getScalarType() != null) { + // already has a ScalarType assigned. + // this will be an Enum type... + return; + } + if (property instanceof DeployBeanPropertyCompound) { + // compound properties have a CvoInternalType instead + return; } - public DatabasePlatform getDbPlatform() { - return dbPlatform; - } + ScalarType scalarType = getScalarType(property); + if (scalarType != null) { + // set the jdbc type this maps to - public NamingConvention getNamingConvention() { - return namingConvention; - } + property.setDbType(scalarType.getJdbcType()); + property.setScalarType(scalarType); + } + } - /** - * Check that the EncryptKeyManager has been defined. - */ - public void checkEncryptKeyManagerDefined(String fullPropName) { - if (encryptKeyManager == null){ - String msg = "Using encryption on "+fullPropName+" but no EncryptKeyManager defined!"; - throw new PersistenceException(msg); - } - } - - public EncryptDeploy getEncryptDeploy(TableName table, String column) { - if (encryptDeployManager == null){ - return EncryptDeploy.ANNOTATION; - } - return encryptDeployManager.getEncryptDeploy(table, column); - } - - public DataEncryptSupport createDataEncryptSupport(String table, String column) { - return new DataEncryptSupport(encryptKeyManager, bytesEncryptor, table, column); - } - - /** - * Return the table alias used for ManyToMany joins. - */ - public String getManyToManyAlias() { - return manyToManyAlias; - } + private ScalarType getScalarType(DeployBeanProperty property) { - public ScalarType setEnumScalarType(Enumerated enumerated, DeployBeanProperty prop) { + // Note that Temporal types already have dbType + // set via annotations + Class propType = property.getPropertyType(); + ScalarType scalarType = typeManager.getScalarType(propType, property.getDbType()); + if (scalarType != null) { + return scalarType; + } - Class enumType = prop.getPropertyType(); - if (!enumType.isEnum()) { - throw new IllegalArgumentException("Class ["+enumType+"] is Not a Enum?"); - } - ScalarType scalarType = typeManager.getScalarType(enumType); - if (scalarType == null) { - // see if it has a Mapping in avaje.properties - scalarType = typeManager.createEnumScalarType(enumType); - if (scalarType == null){ - // use JPA normal Enum type (without mapping) - EnumType type = enumerated != null? enumerated.value(): null; - scalarType = createEnumScalarTypePerSpec(enumType, type, prop.getDbType()); - } + String msg = property.getFullBeanName() + " has no ScalarType - type[" + propType.getName() + "]"; + if (!property.isTransient()) { + throw new PersistenceException(msg); - typeManager.add(scalarType); - } - prop.setScalarType(scalarType); - prop.setDbType(scalarType.getJdbcType()); - return scalarType; - } + } else { + // this is ok... + logger.trace("... transient property " + msg); + return null; + } + } - private ScalarType createEnumScalarTypePerSpec(Class enumType, EnumType type, int dbType) { + /** + * This property is marked as a Lob object. + */ + public void setLobType(DeployBeanProperty prop) { - if (type == null) { - // default as per spec is ORDINAL - return new ScalarTypeEnumStandard.OrdinalEnum(enumType); + // is String or byte[] ? used to determine if its a CLOB or BLOB + Class type = prop.getPropertyType(); - } else if (type == EnumType.ORDINAL) { - return new ScalarTypeEnumStandard.OrdinalEnum(enumType); + // this also sets the lob flag on DeployBeanProperty + int lobType = isClobType(type) ? dbCLOBType : dbBLOBType; - } else { - return new ScalarTypeEnumStandard.StringEnum(enumType); - } - } + ScalarType scalarType = typeManager.getScalarType(type, lobType); + if (scalarType == null) { + // this should never occur actually + throw new RuntimeException("No ScalarType for LOB type [" + type + "] [" + lobType + "]"); + } + prop.setDbType(lobType); + prop.setScalarType(scalarType); + } - /** - * Find the ScalarType for this property. - *

- * This determines if there is a conversion required from the logical (bean) - * type to a DB (jdbc) type. This is the case for java.util.Date etc. - *

- */ - public void setScalarType(DeployBeanProperty property) { - - if (property.getScalarType() != null){ - // already has a ScalarType assigned. - // this will be an Enum type... - return; - } - if (property instanceof DeployBeanPropertyCompound){ - // compound properties have a CvoInternalType instead - return; - } - - ScalarType scalarType = getScalarType(property); - if (scalarType != null){ - // set the jdbc type this maps to - - property.setDbType(scalarType.getJdbcType()); - property.setScalarType(scalarType); - } - } - - private ScalarType getScalarType(DeployBeanProperty property) { - - // Note that Temporal types already have dbType - // set via annotations - Class propType = property.getPropertyType(); - ScalarType scalarType = typeManager.getScalarType(propType, property.getDbType()); - if (scalarType != null) { - return scalarType; - } - - String msg = property.getFullBeanName()+" has no ScalarType - type[" + propType.getName() + "]"; - if (!property.isTransient()){ - throw new PersistenceException(msg); - - } else { - // this is ok... - logger.trace("... transient property "+msg); - return null; - } - } - - /** - * This property is marked as a Lob object. - */ - public void setLobType(DeployBeanProperty prop) { - - // is String or byte[] ? used to determine if its a CLOB or BLOB - Class type = prop.getPropertyType(); - - // this also sets the lob flag on DeployBeanProperty - int lobType = isClobType(type) ? dbCLOBType : dbBLOBType; - - ScalarType scalarType = typeManager.getScalarType(type, lobType); - if (scalarType == null) { - // this should never occur actually - throw new RuntimeException("No ScalarType for LOB type ["+type+"] ["+lobType+"]"); - } - prop.setDbType(lobType); - prop.setScalarType(scalarType); - } - - public boolean isClobType(Class type){ - if (type.equals(String.class)){ - return true; - } - return false; - } + public boolean isClobType(Class type) { + return type.equals(String.class); + } }