@Override protected Role doCreateIdentityType(Object identity, JPAIdentityStore store) { String name = store.getModelProperty(String.class, identity, PROPERTY_IDENTITY_NAME); SimpleRole role = new SimpleRole(name); return role; }
@Override protected Group doCreateIdentityType(Object identity, JPAIdentityStore store) { String name = store.getModelProperty(String.class, identity, PROPERTY_IDENTITY_NAME); Object parentInstance = store.getModelProperty(Object.class, identity, PROPERTY_PARENT_GROUP); SimpleGroup group = null; if (parentInstance != null) { String parentId = store.getModelProperty(String.class, parentInstance, PROPERTY_IDENTITY_NAME); Group parent = store.getGroup(parentId); group = new SimpleGroup(name, parent); } else { group = new SimpleGroup(name); } return group; }
/** * <p> * Creates a {@link IdentityType} instance using the information from the given Identity Class instance. This method already * provides the mapping for the common properties for all {@link IdentityType} types. * </p> * * @param realm * @param identity * @return */ public T createIdentityType(Realm realm, Object identity, JPAIdentityStore store) { T identityType = doCreateIdentityType(identity, store); identityType.setEnabled(store.getModelProperty(Boolean.class, identity, PROPERTY_IDENTITY_ENABLED)); identityType.setExpirationDate(store.getModelProperty(Date.class, identity, JPAIdentityStoreConfiguration.PROPERTY_IDENTITY_EXPIRES)); identityType.setCreatedDate(store.getModelProperty(Date.class, identity, JPAIdentityStoreConfiguration.PROPERTY_IDENTITY_CREATED)); return identityType; }
@Override protected User doCreateIdentityType(Object identity, JPAIdentityStore store) { JPAIdentityStoreConfiguration storeConfig = store.getConfig(); String idValue = storeConfig.getModelProperty(PROPERTY_IDENTITY_ID).getValue(identity).toString(); User user = new SimpleUser(idValue); user.setFirstName(store.getModelProperty(String.class, identity, PROPERTY_USER_FIRST_NAME)); user.setLastName(store.getModelProperty(String.class, identity, PROPERTY_USER_LAST_NAME)); user.setEmail(store.getModelProperty(String.class, identity, PROPERTY_USER_EMAIL)); return user; }
@Override protected Relationship doCreateIdentityType(Object identity, JPAIdentityStore store) { String name = store.getModelProperty(String.class, identity, PROPERTY_IDENTITY_NAME); Object relatesToInstance = store.getModelProperty(Object.class, identity, PROPERTY_IDENTITY_RELATES_TO); String relatesToDiscriminator = store.getConfig().getModelProperty(PROPERTY_IDENTITY_DISCRIMINATOR).getValue(relatesToInstance) .toString(); IdentityTypeHandler<? extends IdentityType> relatesToIdentityTypeManager = store.getConfig().getIdentityTypeManager(relatesToDiscriminator); IdentityType relatesToType = relatesToIdentityTypeManager.createIdentityType(null, relatesToInstance, store); Object relatedToInstance = store.getModelProperty(Object.class, identity, PROPERTY_IDENTITY_RELATED_TO); String relatedToDiscriminator = store.getConfig().getModelProperty(PROPERTY_IDENTITY_DISCRIMINATOR).getValue(relatesToInstance) .toString(); IdentityTypeHandler<? extends IdentityType> relatedToTypeManager = store.getConfig().getIdentityTypeManager(relatedToDiscriminator); IdentityType relatedToType = relatedToTypeManager.createIdentityType(null, relatedToInstance, store); SimpleRelationship relationship = new SimpleRelationship(name); relationship.setFrom(relatedToType); relationship.setTo(relatesToType); return relationship; }
private void configurePartition(Partition partition, Object identity, IdentityType identityType) { if (getConfig().isModelPropertySet(PROPERTY_IDENTITY_PARTITION)) { // TODO implement cache support for partitions Object partitionInstance = getModelProperty(Object.class, identity, PROPERTY_IDENTITY_PARTITION); identityType.setPartition(convertPartitionEntityToPartition(partitionInstance)); } else { identityType.setPartition(partition); } }