@Override public boolean isArray() { return metadata.isArray(); }
@Override public String getRole() { return metadata.getRole(); }
@Override public boolean hasIndex() { return metadata.hasIndex(); }
@Override public Type getElementType() { return TypeV2Adapter.adapt(metadata.getElementType()); }
private CollectionType buildCollectionType(SessionFactory sessionFactory, Class<?> collectionClass, String role) { CollectionMetadata cm = sessionFactory.getCollectionMetadata(role); // FIXME buildCollectionType if (null == cm) return null; org.hibernate.type.Type type = cm.getElementType(); EntityType elementType = null; if (type.isEntityType()) { elementType = (EntityType) entityTypes.get(type.getName()); if (null == elementType) elementType = buildEntityType(sessionFactory, type.getName()); } else { elementType = new EntityType(type.getReturnedClass()); } CollectionType collectionType = new CollectionType(); collectionType.setElementType(elementType); collectionType.setArray(cm.isArray()); collectionType.setCollectionClass(collectionClass); if (!collectionTypes.containsKey(collectionType.getName())) { collectionTypes.put(collectionType.getName(), collectionType); } return collectionType; }
@Override public Type getIndexType() { return TypeV2Adapter.adapt(metadata.getIndexType()); }
@Override public Type getKeyType() { return TypeV2Adapter.adapt(metadata.getKeyType()); }
/** * * {@inheritDoc} */ @Override protected Set<Class<?>> findTypesToRegister() { Set<Class<?>> typesToRegister = new HashSet<Class<?>>(); if (hibernateConfigured) { for(ClassMetadata classMetadata : this.classMetadata) { if (!classMetadata.getMappedClass().isInterface()) { typesToRegister.add(classMetadata.getMappedClass()); findComponentProperties(classMetadata.getPropertyTypes(), typesToRegister); } } for (CollectionMetadata collectionMetadata : this.collectionMetadata) { Type elementType = collectionMetadata.getElementType(); if (elementType instanceof ComponentType) { if (!elementType.getReturnedClass().isInterface()) { typesToRegister.add(elementType.getReturnedClass()); findComponentProperties(((ComponentType)elementType).getSubtypes(), typesToRegister); } } } } return typesToRegister; }
/** * * {@inheritDoc} */ @Override protected Set<Class<?>> findTypesToRegister() { Set<Class<?>> typesToRegister = new HashSet<Class<?>>(); if (hibernateConfigured) { for(ClassMetadata classMetadata : this.classMetadata) { if (!classMetadata.getMappedClass(EntityMode.POJO).isInterface()) { typesToRegister.add(classMetadata.getMappedClass(EntityMode.POJO)); findComponentProperties(classMetadata.getPropertyTypes(), typesToRegister); } } for (CollectionMetadata collectionMetadata : this.collectionMetadata) { Type elementType = collectionMetadata.getElementType(); if (elementType instanceof ComponentType) { if (!elementType.getReturnedClass().isInterface()) { typesToRegister.add(elementType.getReturnedClass()); findComponentProperties(((ComponentType)elementType).getSubtypes(), typesToRegister); } } } } return typesToRegister; }
CollectionMetadata collectionMetadata = sessionFactory.getCollectionMetadata(persistentCollection.getRole()); Class<?> elementClass = collectionMetadata.getElementType().getReturnedClass(); if (elementClass.isAssignableFrom(object.getClass())) { if (persistentCollection instanceof Map<?, ?>) {