Package org.hibernate.annotations.common.reflection

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


        results.add( new InvalidValue( interpolate(validator), beanClass, null, bean, bean ) );
      }
    }

    for ( int i = 0; i < memberValidators.size() ; i++ ) {
      XMember getter = memberGetters.get( i );
      if ( Hibernate.isPropertyInitialized( bean, getPropertyName( getter ) ) ) {
        Object value = getMemberValue( bean, getter );
        Validator validator = memberValidators.get( i );
        if ( !validator.isValid( value ) ) {
          String propertyName = getPropertyName( getter );
          results.add( new InvalidValue( interpolate(validator), beanClass, propertyName, value, bean ) );
        }
      }
    }

    for ( int i = 0; i < childGetters.size() ; i++ ) {
      XMember getter = childGetters.get( i );
      if ( Hibernate.isPropertyInitialized( bean, getPropertyName( getter ) ) ) {
        Object value = getMemberValue( bean, getter );
        if ( value != null && Hibernate.isInitialized( value ) ) {
          String propertyName = getPropertyName( getter );
          if ( getter.isCollection() ) {
            int index = 0;
            boolean isIterable = value instanceof Iterable;
            Map map = ! isIterable ? (Map) value : null;
            Iterable elements = isIterable ?
                (Iterable) value :
                map.keySet();
            for ( Object element : elements ) {
              Object actualElement = isIterable ? element : map.get( element );
              if ( actualElement == null ) {
                index++;
                continue;
              }
              InvalidValue[] invalidValues = getClassValidator( actualElement )
                  .getInvalidValues( actualElement, circularityState );

              String indexedPropName = MessageFormat.format(
                  "{0}[{1}]",
                  propertyName,
                  INDEXABLE_CLASS.contains( element.getClass() ) ?
                      ( "'" + element + "'" ) :
                      index
              );
              index++;

              for ( InvalidValue invalidValue : invalidValues ) {
                invalidValue.addParentBean( bean, indexedPropName );
                results.add( invalidValue );
              }
            }
          }
          if ( getter.isArray() ) {
            int index = 0;
            for ( Object element : (Object[]) value ) {
              if ( element == null ) {
                index++;
                continue;
View Full Code Here


  //TODO should it be recursive?
  public InvalidValue[] getInvalidValues(T bean, String propertyName) {
    List<InvalidValue> results = new ArrayList<InvalidValue>();

    for ( int i = 0; i < memberValidators.size() ; i++ ) {
      XMember getter = memberGetters.get( i );
      if ( getPropertyName( getter ).equals( propertyName ) ) {
        Object value = getMemberValue( bean, getter );
        Validator validator = memberValidators.get( i );
        if ( !validator.isValid( value ) ) {
          results.add( new InvalidValue( interpolate(validator), beanClass, propertyName, value, bean ) );
View Full Code Here

  //TODO should it be recursive?
  public InvalidValue[] getPotentialInvalidValues(String propertyName, Object value) {
    List<InvalidValue> results = new ArrayList<InvalidValue>();

    for ( int i = 0; i < memberValidators.size() ; i++ ) {
      XMember getter = memberGetters.get( i );
      if ( getPropertyName( getter ).equals( propertyName ) ) {
        Validator validator = memberValidators.get( i );
        if ( !validator.isValid( value ) ) {
          results.add( new InvalidValue( interpolate(validator), beanClass, propertyName, value, null ) );
        }
View Full Code Here

        results.add( new InvalidValue( interpolate(validator), beanClass, null, bean, bean ) );
      }
    }

    for ( int i = 0; i < memberValidators.size() ; i++ ) {
      XMember getter = memberGetters.get( i );
      if ( Hibernate.isPropertyInitialized( bean, getPropertyName( getter ) ) ) {
        Object value = getMemberValue( bean, getter );
        Validator validator = memberValidators.get( i );
        if ( !validator.isValid( value ) ) {
          String propertyName = getPropertyName( getter );
          results.add( new InvalidValue( interpolate(validator), beanClass, propertyName, value, bean ) );
        }
      }
    }

    for ( int i = 0; i < childGetters.size() ; i++ ) {
      XMember getter = childGetters.get( i );
      if ( Hibernate.isPropertyInitialized( bean, getPropertyName( getter ) ) ) {
        Object value = getMemberValue( bean, getter );
        if ( value != null && Hibernate.isInitialized( value ) ) {
          String propertyName = getPropertyName( getter );
          if ( getter.isCollection() ) {
            int index = 0;
            boolean isIterable = value instanceof Iterable;
            Map map = ! isIterable ? (Map) value : null;
            Iterable elements = isIterable ?
                (Iterable) value :
                map.keySet();
            for ( Object element : elements ) {
              Object actualElement = isIterable ? element : map.get( element );
              if ( actualElement == null ) {
                index++;
                continue;
              }
              InvalidValue[] invalidValues = getClassValidator( actualElement )
                  .getInvalidValues( actualElement, circularityState );

              String indexedPropName = MessageFormat.format(
                  "{0}[{1}]",
                  propertyName,
                  INDEXABLE_CLASS.contains( element.getClass() ) ?
                      ( "'" + element + "'" ) :
                      index
              );
              index++;

              for ( InvalidValue invalidValue : invalidValues ) {
                invalidValue.addParentBean( bean, indexedPropName );
                results.add( invalidValue );
              }
            }
          }
          if ( getter.isArray() ) {
            int index = 0;
            for ( Object element : (Object[]) value ) {
              if ( element == null ) {
                index++;
                continue;
View Full Code Here

  //TODO should it be recursive?
  public InvalidValue[] getInvalidValues(T bean, String propertyName) {
    List<InvalidValue> results = new ArrayList<InvalidValue>();

    for ( int i = 0; i < memberValidators.size() ; i++ ) {
      XMember getter = memberGetters.get( i );
      if ( getPropertyName( getter ).equals( propertyName ) ) {
        Object value = getMemberValue( bean, getter );
        Validator validator = memberValidators.get( i );
        if ( !validator.isValid( value ) ) {
          results.add( new InvalidValue( interpolate(validator), beanClass, propertyName, value, bean ) );
View Full Code Here

  //TODO should it be recursive?
  public InvalidValue[] getPotentialInvalidValues(String propertyName, Object value) {
    List<InvalidValue> results = new ArrayList<InvalidValue>();

    for ( int i = 0; i < memberValidators.size() ; i++ ) {
      XMember getter = memberGetters.get( i );
      if ( getPropertyName( getter ).equals( propertyName ) ) {
        Validator validator = memberValidators.get( i );
        if ( !validator.isValid( value ) ) {
          results.add( new InvalidValue( interpolate(validator), beanClass, propertyName, value, null ) );
        }
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

   * @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

  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

        conversionContext.popProperty();
      }
    }

    // process the indexed fields
    XMember previousMember = null;
    Object currentFieldValue = null;
    for ( int i = 0; i < propertiesMetadata.fieldNames.size(); i++ ) {
      XMember member = propertiesMetadata.fieldGetters.get( i );
      if ( previousMember != member ) {
        currentFieldValue = ReflectionHelper.getMemberValue( unproxiedInstance, member );
        previousMember = member;
        if ( member.isCollection() ) {
          if ( currentFieldValue instanceof Collection ) {
            objectInitializer.initializeCollection( (Collection) currentFieldValue );
          }
          else if ( currentFieldValue instanceof Map ) {
            objectInitializer.initializeMap( (Map) currentFieldValue );
          }
        }
      }

      final FieldBridge fieldBridge = propertiesMetadata.fieldBridges.get( i );
      final String fieldName = propertiesMetadata.fieldNames.get( i );
      final FieldBridge oneWayConversionContext = conversionContext.oneWayConversionContext( fieldBridge );
      conversionContext.pushProperty( propertiesMetadata.fieldGetterNames.get( i ) );
      try {
        oneWayConversionContext.set(
            fieldName, currentFieldValue, doc,
            propertiesMetadata.getFieldLuceneOptions( i, currentFieldValue )
        );
      }
      finally {
        conversionContext.popProperty();
      }
    }

    // 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 );
      conversionContext.pushProperty( propertiesMetadata.embeddedFieldNames.get( i ) );
      try {
        Object value = ReflectionHelper.getMemberValue( unproxiedInstance, member );
        //TODO handle boost at embedded level: already stored in propertiesMedatada.boost
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.