Package org.hibernate.annotations.common.reflection

Examples of org.hibernate.annotations.common.reflection.XMember


   * @param workPlan the current work plan
   * @param currentDepth the current {@link org.hibernate.search.engine.spi.DepthValidator} object used to check the graph traversal
   */
  public void appendContainedInWorkForInstance(Object instance, WorkPlan workPlan, DepthValidator currentDepth) {
    for ( ContainedInMetadata containedInMetadata : typeMetadata.getContainedInMetadata() ) {
      XMember member = containedInMetadata.getContainedInMember();
      Object unproxiedInstance = instanceInitializer.unproxy( instance );

      DepthValidator depth = updateDepth( unproxiedInstance, containedInMetadata, currentDepth );
      depth.increaseDepth();

      if ( depth.isMaxDepthReached() ) {
        return;
      }

      Object value = ReflectionHelper.getMemberValue( unproxiedInstance, member );

      if ( value == null ) {
        continue;
      }

      if ( member.isArray() ) {
        @SuppressWarnings("unchecked")
        T[] array = (T[]) value;
        for ( T arrayValue : array ) {
          processSingleContainedInInstance( workPlan, arrayValue, depth );
        }
      }
      else if ( member.isCollection() ) {
        Collection<T> collection = null;
        try {
          collection = getActualCollection( member, value );
          collection.size(); //load it
        }
View Full Code Here


   * @param metadata metadata
   * @param searchFactoryImplementor the current session
   */
  private <T> void processContainedInInstances(Object instance, List<LuceneWork> queue, PropertiesMetadata metadata, SearchFactoryImplementor searchFactoryImplementor) {
    for ( int i = 0; i < metadata.containedInGetters.size(); i++ ) {
      XMember member = metadata.containedInGetters.get( i );
      Object value = ReflectionHelper.getMemberValue( instance, member );

      if ( value == null ) {
        continue;
      }

      if ( member.isArray() ) {
        @SuppressWarnings("unchecked")
        T[] array = ( T[] ) value;
        for ( T arrayValue : array ) {
          processSingleContainedInInstance( queue, searchFactoryImplementor, arrayValue );
        }
      }
      else if ( member.isCollection() ) {
        Collection<T> collection = getActualCollection( member, value );
        for ( T collectionValue : collection ) {
          processSingleContainedInInstance( queue, searchFactoryImplementor, collectionValue );
        }
      }
View Full Code Here

      );
    }

    // process the indexed fields
    for ( int i = 0; i < propertiesMetadata.fieldNames.size(); i++ ) {
      XMember member = propertiesMetadata.fieldGetters.get( i );
      Object value = ReflectionHelper.getMemberValue( unproxiedInstance, member );
      propertiesMetadata.fieldBridges.get( i ).set(
          propertiesMetadata.fieldNames.get( i ), value, doc,
          propertiesMetadata.getFieldLuceneOptions( i, value )
      );
    }

    // allow analyzer override for the fields added by the class and field bridges
    allowAnalyzerDiscriminatorOverride(
        doc, propertiesMetadata, fieldToAnalyzerMap, processedFieldNames, unproxiedInstance
    );

    // recursively process embedded objects
    for ( int i = 0; i < propertiesMetadata.embeddedGetters.size(); i++ ) {
      XMember member = propertiesMetadata.embeddedGetters.get( i );
      Object value = ReflectionHelper.getMemberValue( unproxiedInstance, member );
      //TODO handle boost at embedded level: already stored in propertiesMedatada.boost

      if ( value == null ) {
        continue;
View Full Code Here

   * @param metadata metadata
   * @param searchFactoryImplementor the current session
   */
  private <T> void processContainedInInstances(Object instance, List<LuceneWork> queue, PropertiesMetadata metadata, SearchFactoryImplementor searchFactoryImplementor) {
    for ( int i = 0; i < metadata.containedInGetters.size(); i++ ) {
      XMember member = metadata.containedInGetters.get( i );
      Object value = ReflectionHelper.getMemberValue( instance, member );

      if ( value == null ) {
        continue;
      }

      if ( member.isArray() ) {
        @SuppressWarnings("unchecked")
        T[] array = ( T[] ) value;
        for ( T arrayValue : array ) {
          processSingleContainedInInstance( queue, searchFactoryImplementor, arrayValue );
        }
      }
      else if ( member.isCollection() ) {
        Collection<T> collection = null;
        try {
          collection = getActualCollection( member, value );
          collection.size(); //load it
        }
View Full Code Here

    final int fieldNbr = fields.length;
    Object[] result = new Object[fieldNbr];
    ContextualException2WayBridge contextualBridge = new ContextualException2WayBridge();
    contextualBridge.setClass( clazz );
    if ( builderIndexedEntity.getIdKeywordName() != null ) {
      final XMember member = builderIndexedEntity.getIdGetter();
      final String fieldName = builderIndexedEntity.getIdKeywordName();
      int matchingPosition = getFieldPosition( fields, fieldName );
      if ( matchingPosition != -1 ) {
        if ( member != null ) {
          contextualBridge.pushMethod( member );
View Full Code Here

          );
    }

    // process the indexed fields
    for ( int i = 0; i < propertiesMetadata.fieldNames.size(); i++ ) {
      XMember member = propertiesMetadata.fieldGetters.get( i );
      Object value = ReflectionHelper.getMemberValue( unproxiedInstance, member );

      final FieldBridge fieldBridge = propertiesMetadata.fieldBridges.get( i );
      final String fieldName = propertiesMetadata.fieldNames.get( i );
      contextualBridge
          .setFieldBridge( fieldBridge )
          .pushMethod( member )
          .setFieldName( fieldName )
          .set(
              fieldName, value, doc,
              propertiesMetadata.getFieldLuceneOptions( i, value )
          );
      contextualBridge.popMethod();
    }

    // allow analyzer override for the fields added by the class and field bridges
    allowAnalyzerDiscriminatorOverride(
        doc, propertiesMetadata, fieldToAnalyzerMap, processedFieldNames, unproxiedInstance
    );

    // recursively process embedded objects
    for ( int i = 0; i < propertiesMetadata.embeddedGetters.size(); i++ ) {
      XMember member = propertiesMetadata.embeddedGetters.get( i );
      contextualBridge.pushMethod( member );
      Object value = ReflectionHelper.getMemberValue( unproxiedInstance, member );
      //TODO handle boost at embedded level: already stored in propertiesMedatada.boost

      if ( value == null ) {
View Full Code Here

        // the query result can contain entities which are not indexed. This can for example happen if
        // the targeted entity type is a superclass with indexed and un-indexed sub classes
        // entities which don't have an document builder can be ignores (HF)
        continue;
      }
      XMember idProperty = documentBuilder.getIdGetter();
      Object id = ReflectionHelper.getMemberValue( unproxiedObject, idProperty );
      EntityInfoLoadKey key = new EntityInfoLoadKey( loadedType, id );
      Object previousValue = idToObjectMap.put( key, unproxiedObject );
      if ( previousValue == null ) {
        throw new AssertionFailure( "An entity got loaded even though it was not part of the EntityInfo list" );
View Full Code Here

    final int fieldNbr = fields.length;
    Object[] result = new Object[fieldNbr];
    ContextualException2WayBridge contextualBridge = new ContextualException2WayBridge();
    contextualBridge.setClass( clazz );
    if ( builderIndexedEntity.getIdKeywordName() != null ) {
      final XMember member = builderIndexedEntity.getIdGetter();
      if ( member != null ) {
        contextualBridge.pushMethod( member );
      }
      populateResult(
          builderIndexedEntity.getIdKeywordName(),
View Full Code Here

  /**
   * If we have a work instance we have to check whether the instance to be indexed is contained in any other indexed entities.
   */
  public void appendContainedInWorkForInstance(Object instance, WorkPlan workplan) {
    for ( int i = 0; i < metadata.containedInGetters.size(); i++ ) {
      XMember member = metadata.containedInGetters.get( i );
      Object value = ReflectionHelper.getMemberValue( instance, member );

      if ( value == null ) {
        continue;
      }

      if ( member.isArray() ) {
        @SuppressWarnings("unchecked")
        T[] array = (T[]) value;
        for ( T arrayValue : array ) {
          processSingleContainedInInstance( workplan, arrayValue );
        }
      }
      else if ( member.isCollection() ) {
        Collection<T> collection = null;
        try {
          collection = getActualCollection( member, value );
          collection.size(); //load it
        }
View Full Code Here

  private String buildAnnotationDefinitionPoint(XAnnotatedElement annotatedElement) {
    if ( annotatedElement instanceof XClass ) {
      return ( (XClass) annotatedElement ).getName();
    }
    else if ( annotatedElement instanceof XMember ) {
      XMember member = (XMember) annotatedElement;
      return member.getType().getName() + '.' + member.getName();
    }
    else if ( annotatedElement instanceof XPackage ) {
      return ( (XPackage) annotatedElement ).getName();
    }
    else {
View Full Code Here

TOP

Related Classes of org.hibernate.annotations.common.reflection.XMember

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.