Package org.hibernate.jpamodelgen

Examples of org.hibernate.jpamodelgen.AccessTypeInformation


        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 );
      }
    }
View Full Code Here


  }

  public static void determineAccessTypeForHierarchy(TypeElement searchedElement, Context context) {
    String fqcn = searchedElement.getQualifiedName().toString();
    context.logMessage( Diagnostic.Kind.OTHER, "Determining access type for " + fqcn );
    AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( fqcn );

    if ( accessTypeInfo != null && accessTypeInfo.isAccessTypeResolved() ) {
      context.logMessage(
          Diagnostic.Kind.OTHER,
          "AccessType for " + searchedElement.toString() + " found in cache: " + accessTypeInfo
      );
      return;
    }

    // check for explicit access type
    AccessType forcedAccessType = determineAnnotationSpecifiedAccessType( searchedElement );
    if ( forcedAccessType != null ) {
      context.logMessage(
          Diagnostic.Kind.OTHER, "Explicit access type on " + searchedElement + ":" + forcedAccessType
      );
      accessTypeInfo = new AccessTypeInformation( fqcn, forcedAccessType, null );
      context.addAccessTypeInformation( fqcn, accessTypeInfo );
      updateEmbeddableAccessType( searchedElement, context, forcedAccessType );
      return;
    }

    // need to find the default access type for this class
    // let's check first if this entity is the root of the class hierarchy and defines an id. If so the
    // placement of the id annotation determines the access type
    AccessType defaultAccessType = getAccessTypeInCaseElementIsRoot( searchedElement, context );
    if ( defaultAccessType != null ) {
      accessTypeInfo = new AccessTypeInformation( fqcn, null, defaultAccessType );
      context.addAccessTypeInformation( fqcn, accessTypeInfo );
      updateEmbeddableAccessType( searchedElement, context, defaultAccessType );
      return;
    }

    // if we end up here we need to recursively look for superclasses
    defaultAccessType = getDefaultAccessForHierarchy( searchedElement, context );
    if ( defaultAccessType == null ) {
      defaultAccessType = AccessType.PROPERTY;
    }
    accessTypeInfo = new AccessTypeInformation( fqcn, null, defaultAccessType );
    context.addAccessTypeInformation( fqcn, accessTypeInfo );
  }
View Full Code Here

  private static void updateEmbeddableAccessTypeForMember(Context context, AccessType defaultAccessType, Element member) {
    EmbeddedAttributeVisitor visitor = new EmbeddedAttributeVisitor( context );
    String embeddedClassName = member.asType().accept( visitor, member );
    if ( embeddedClassName != null ) {
      AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( embeddedClassName );
      if ( accessTypeInfo == null ) {
        accessTypeInfo = new AccessTypeInformation( embeddedClassName, null, defaultAccessType );
        context.addAccessTypeInformation( embeddedClassName, accessTypeInfo );
      }
      else {
        accessTypeInfo.setDefaultAccessType( defaultAccessType );
      }
    }
  }
View Full Code Here

    TypeElement superClass = element;
    do {
      superClass = TypeUtils.getSuperclassTypeElement( superClass );
      if ( superClass != null ) {
        String fqcn = superClass.getQualifiedName().toString();
        AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( fqcn );
        if ( accessTypeInfo != null && accessTypeInfo.getDefaultAccessType() != null ) {
          return accessTypeInfo.getDefaultAccessType();
        }
        if ( TypeUtils.containsAnnotation( superClass, Entity.class, MappedSuperclass.class ) ) {
          defaultAccessType = getAccessTypeInCaseElementIsRoot( superClass, context );
          if ( defaultAccessType != null ) {
            accessTypeInfo = new AccessTypeInformation( fqcn, null, defaultAccessType );
            context.addAccessTypeInformation( fqcn, accessTypeInfo );
            defaultAccessType = accessTypeInfo.getAccessType();
          }
          else {
            defaultAccessType = getDefaultAccessForHierarchy( superClass, context );
          }
        }
View Full Code Here

      TypeMirror collectionElementType = TypeUtils.getCollectionElementType(
          declaredType, fqNameOfReturnType, explicitTargetEntity, context
      );
      final TypeElement collectionElement = (TypeElement) context.getTypeUtils()
          .asElement( collectionElementType );
      AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( collectionElement.getQualifiedName().toString() );
      if ( accessTypeInfo == null ) {
        AccessType explicitAccessType = TypeUtils.determineAnnotationSpecifiedAccessType(
            collectionElement
        );
        accessTypeInfo = new AccessTypeInformation(
            collectionElement.getQualifiedName().toString(),
            explicitAccessType,
            entity.getEntityAccessTypeInfo().getAccessType()
        );
        context.addAccessTypeInformation(
            collectionElement.getQualifiedName().toString(), accessTypeInfo
        );
      }
      else {
        accessTypeInfo.setDefaultAccessType( entity.getEntityAccessTypeInfo().getAccessType() );
      }
    }
    if ( collection.equals( "javax.persistence.metamodel.MapAttribute" ) ) {
      return createAnnotationMetaAttributeForMap( declaredType, element, collection, targetEntity );
    }
View Full Code Here

          TypeMirror collectionElementType = TypeUtils.getCollectionElementType(
              declaredType, fqNameOfReturnType, explicitTargetEntity, context
          );
          final TypeElement collectionElement = ( TypeElement ) context.getTypeUtils()
              .asElement( collectionElementType );
          AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( collectionElement.getQualifiedName().toString() );
          if ( accessTypeInfo == null ) {
            AccessType explicitAccessType = TypeUtils.determineAnnotationSpecifiedAccessType(
                collectionElement
            );
            accessTypeInfo = new AccessTypeInformation(
                collectionElement.getQualifiedName().toString(),
                explicitAccessType,
                entityAccessTypeInfo.getAccessType()
            );
            context.addAccessTypeInformation(
                collectionElement.getQualifiedName().toString(), accessTypeInfo
            );
          }
          else {
            accessTypeInfo.setDefaultAccessType( entityAccessTypeInfo.getAccessType() );
          }
        }
        if ( collection.equals( "javax.persistence.metamodel.MapAttribute" ) ) {
          return createAnnotationMetaAttributeForMap( declaredType, element, collection, targetEntity );
        }
View Full Code Here

  }

  public static void determineAccessTypeForHierarchy(TypeElement searchedElement, Context context) {
    String fqcn = searchedElement.getQualifiedName().toString();
    context.logMessage( Diagnostic.Kind.OTHER, "Determining access type for " + fqcn );
    AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( fqcn );

    if ( accessTypeInfo != null && accessTypeInfo.isAccessTypeResolved() ) {
      context.logMessage(
          Diagnostic.Kind.OTHER,
          "AccessType for " + searchedElement.toString() + "found in cache: " + accessTypeInfo
      );
      return;
    }

    // check for explicit access type
    AccessType forcedAccessType = determineAnnotationSpecifiedAccessType( searchedElement );
    if ( forcedAccessType != null ) {
      context.logMessage(
          Diagnostic.Kind.OTHER, "Explicit access type on " + searchedElement + ":" + forcedAccessType
      );
      accessTypeInfo = new AccessTypeInformation( fqcn, forcedAccessType, null );
      context.addAccessTypeInformation( fqcn, accessTypeInfo );
      updateEmbeddableAccessType( searchedElement, context, forcedAccessType );
      return;
    }

    // need to find the default access type for this class
    // let's check first if this entity is the root of the class hierarchy and defines an id. If so the
    // placement of the id annotation determines the access type
    AccessType defaultAccessType = getAccessTypeInCaseElementIsRoot( searchedElement, context );
    if ( defaultAccessType != null ) {
      accessTypeInfo = new AccessTypeInformation( fqcn, null, defaultAccessType );
      context.addAccessTypeInformation( fqcn, accessTypeInfo );
      updateEmbeddableAccessType( searchedElement, context, defaultAccessType );
      return;
    }

    // if we end up here we need to recursively look for superclasses
    defaultAccessType = getDefaultAccessForHierarchy( searchedElement, context );
    if ( defaultAccessType == null ) {
      defaultAccessType = AccessType.PROPERTY;
    }
    accessTypeInfo = new AccessTypeInformation( fqcn, null, defaultAccessType );
    context.addAccessTypeInformation( fqcn, accessTypeInfo );
  }
View Full Code Here

  private static void updateEmbeddableAccessTypeForMember(Context context, AccessType defaultAccessType, Element member) {
    EmbeddedAttributeVisitor visitor = new EmbeddedAttributeVisitor( context );
    String embeddedClassName = member.asType().accept( visitor, member );
    if ( embeddedClassName != null ) {
      AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( embeddedClassName );
      if ( accessTypeInfo == null ) {
        accessTypeInfo = new AccessTypeInformation( embeddedClassName, null, defaultAccessType );
        context.addAccessTypeInformation( embeddedClassName, accessTypeInfo );
      }
      else {
        accessTypeInfo.setDefaultAccessType( defaultAccessType );
      }
    }
  }
View Full Code Here

    TypeElement superClass = element;
    do {
      superClass = TypeUtils.getSuperclassTypeElement( superClass );
      if ( superClass != null ) {
        String fqcn = superClass.getQualifiedName().toString();
        AccessTypeInformation accessTypeInfo = context.getAccessTypeInfo( fqcn );
        if ( accessTypeInfo != null && accessTypeInfo.getDefaultAccessType() != null ) {
          return accessTypeInfo.getDefaultAccessType();
        }
        if ( TypeUtils.containsAnnotation( superClass, Entity.class, MappedSuperclass.class ) ) {
          defaultAccessType = getAccessTypeInCaseElementIsRoot( superClass, context );
          if ( defaultAccessType != null ) {
            accessTypeInfo = new AccessTypeInformation( fqcn, null, defaultAccessType );
            context.addAccessTypeInformation( fqcn, accessTypeInfo );
            defaultAccessType = accessTypeInfo.getAccessType();
          }
          else {
            defaultAccessType = getDefaultAccessForHierarchy( superClass, context );
          }
        }
View Full Code Here

        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 );
      }
    }
View Full Code Here

TOP

Related Classes of org.hibernate.jpamodelgen.AccessTypeInformation

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.