use of org.hibernate.jpamodelgen.util.AccessTypeInformation in project hibernate-orm by hibernate.
the class JpaDescriptorParser method determineXmlAccessTypes.
private void determineXmlAccessTypes() {
for (EntityMappings mappings : entityMappings) {
String fqcn;
String packageName = mappings.getPackage();
AccessType defaultAccessType = determineEntityAccessType(mappings);
for (Entity entity : mappings.getEntity()) {
String name = entity.getClazz();
fqcn = StringUtil.determineFullyQualifiedClassName(packageName, name);
AccessType explicitAccessType = null;
org.hibernate.jpamodelgen.xml.jaxb.AccessType type = entity.getAccess();
if (type != null) {
explicitAccessType = mapXmlAccessTypeToJpaAccessType(type);
}
AccessTypeInformation accessInfo = new AccessTypeInformation(fqcn, explicitAccessType, defaultAccessType);
context.addAccessTypeInformation(fqcn, accessInfo);
}
for (org.hibernate.jpamodelgen.xml.jaxb.MappedSuperclass mappedSuperClass : mappings.getMappedSuperclass()) {
String name = mappedSuperClass.getClazz();
fqcn = StringUtil.determineFullyQualifiedClassName(packageName, name);
AccessType explicitAccessType = null;
org.hibernate.jpamodelgen.xml.jaxb.AccessType type = mappedSuperClass.getAccess();
if (type != null) {
explicitAccessType = mapXmlAccessTypeToJpaAccessType(type);
}
AccessTypeInformation accessInfo = new AccessTypeInformation(fqcn, explicitAccessType, defaultAccessType);
context.addAccessTypeInformation(fqcn, accessInfo);
}
for (org.hibernate.jpamodelgen.xml.jaxb.Embeddable embeddable : mappings.getEmbeddable()) {
String name = embeddable.getClazz();
fqcn = StringUtil.determineFullyQualifiedClassName(packageName, name);
AccessType explicitAccessType = null;
org.hibernate.jpamodelgen.xml.jaxb.AccessType type = embeddable.getAccess();
if (type != null) {
explicitAccessType = mapXmlAccessTypeToJpaAccessType(type);
}
AccessTypeInformation accessInfo = new AccessTypeInformation(fqcn, explicitAccessType, defaultAccessType);
context.addAccessTypeInformation(fqcn, accessInfo);
}
}
}
use of org.hibernate.jpamodelgen.util.AccessTypeInformation in project hibernate-orm by hibernate.
the class BasicAttributeVisitor method createMetaCollectionAttribute.
private AnnotationMetaAttribute createMetaCollectionAttribute(DeclaredType declaredType, Element element, String fqNameOfReturnType, String collection, String targetEntity) {
if (TypeUtils.containsAnnotation(element, Constants.ELEMENT_COLLECTION)) {
String explicitTargetEntity = getTargetEntity(element.getAnnotationMirrors());
TypeMirror collectionElementType = TypeUtils.getCollectionElementType(declaredType, fqNameOfReturnType, explicitTargetEntity, context);
final TypeElement collectionElement = (TypeElement) context.getTypeUtils().asElement(collectionElementType);
AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo(collectionElementType.toString());
if (accessTypeInfo == null) {
AccessType explicitAccessType = null;
if (collectionElement != null) {
explicitAccessType = TypeUtils.determineAnnotationSpecifiedAccessType(collectionElement);
}
accessTypeInfo = new AccessTypeInformation(collectionElementType.toString(), explicitAccessType, entity.getEntityAccessTypeInfo().getAccessType());
context.addAccessTypeInformation(collectionElementType.toString(), accessTypeInfo);
} else {
accessTypeInfo.setDefaultAccessType(entity.getEntityAccessTypeInfo().getAccessType());
}
}
if (collection.equals("javax.persistence.metamodel.MapAttribute")) {
return createAnnotationMetaAttributeForMap(declaredType, element, collection, targetEntity);
} else {
return new AnnotationMetaCollection(entity, element, collection, getElementType(declaredType, targetEntity));
}
}
Aggregations