/** * Returns mapped domain name (*unprefixed*) for the specified @{link PersistentEntity}. * * @param entity * @return */ public static String getMappedDomainName(PersistentEntity entity) { @SuppressWarnings("unchecked") ClassMapping<SimpleDBDomainClassMappedForm> classMapping = entity.getMapping(); SimpleDBDomainClassMappedForm mappedForm = classMapping.getMappedForm(); String entityFamily = getFamily(entity, mappedForm); return entityFamily; }
@Override public IdentityMapping createIdentityMapping(final ClassMapping classMapping) { final Mapping mappedForm = createMappedForm(classMapping.getEntity()); final Object identity = mappedForm.getIdentity(); final ValueGenerator generator; if (identity instanceof Identity) { Identity id = (Identity) identity; String generatorName = id.getGenerator(); if (generatorName != null) { try { generator = ValueGenerator.valueOf(generatorName.toUpperCase()); } catch (IllegalArgumentException e) { throw new DatastoreConfigurationException( "Invalid id generation strategy for entity [" + classMapping.getEntity().getName() + "]: " + generatorName); } } else { generator = ValueGenerator.AUTO; } } else { generator = ValueGenerator.AUTO; } return new IdentityMapping() { @Override public String[] getIdentifierName() { if (identity instanceof Identity) { final String name = ((Identity) identity).getName(); if (name != null) { return new String[] {name}; } else { return DEFAULT_IDENTITY_MAPPING; } } else if (identity instanceof CompositeIdentity) { return ((CompositeIdentity) identity).getPropertyNames(); } return DEFAULT_IDENTITY_MAPPING; } @Override public ValueGenerator getGenerator() { return generator; } @Override public ClassMapping getClassMapping() { return classMapping; } @Override public Property getMappedForm() { return (Property) identity; } }; }
private PersistentEntity getPersistentEntity( Class javaClass, MappingContext context, ClassMapping classMapping) { PersistentEntity entity; if (classMapping != null) { entity = classMapping.getEntity(); } else { entity = context.getPersistentEntity(javaClass.getName()); } return entity; }