Interface ReactiveAbstractEntityPersister

  • All Superinterfaces:
    org.hibernate.persister.walking.spi.AttributeSource, org.hibernate.metamodel.mapping.Bindable, org.hibernate.metamodel.mapping.Discriminatable, org.hibernate.metamodel.mapping.EntityMappingType, org.hibernate.persister.entity.EntityPersister, org.hibernate.metamodel.mapping.EntityValuedModelPart, org.hibernate.sql.results.graph.FetchableContainer, org.hibernate.metamodel.mapping.FilterRestrictable, org.hibernate.metamodel.mapping.JdbcMappingContainer, org.hibernate.persister.entity.Joinable, org.hibernate.loader.ast.spi.Loadable, org.hibernate.persister.entity.Loadable, org.hibernate.persister.entity.Lockable, org.hibernate.metamodel.mapping.ManagedMappingType, org.hibernate.metamodel.mapping.MappingModelExpressible, org.hibernate.metamodel.mapping.MappingType, org.hibernate.metamodel.mapping.ModelPart, org.hibernate.metamodel.mapping.ModelPartContainer, org.hibernate.persister.entity.OuterJoinLoadable, ReactiveEntityPersister, org.hibernate.metamodel.mapping.Restrictable, org.hibernate.sql.ast.tree.from.RootTableGroupProducer, org.hibernate.sql.ast.tree.from.TableGroupProducer, org.hibernate.metamodel.mapping.WhereRestrictable
    All Known Implementing Classes:
    ReactiveJoinedSubclassEntityPersister, ReactiveSingleTableEntityPersister, ReactiveUnionSubclassEntityPersister

    public interface ReactiveAbstractEntityPersister
    extends ReactiveEntityPersister, org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.persister.entity.Lockable
    An abstract implementation of ReactiveEntityPersister whose concrete implementations each extend a concrete subclass of AbstractEntityPersister. Note that there are three main flavors of AbstractEntityPersister, one for each of the three inheritance mapping strategies, and thus we have three flavors of ReactiveEntityPersister. Therefore, this interface is defined as a mixin. This design avoid duplicating the code in this class in the three different subclasses. Concrete implementations of this interface _must_ also extend AbstractEntityPersister or one of its concrete subclasses.
    See Also:
    AbstractEntityPersister, ReactiveJoinedSubclassEntityPersister, ReactiveUnionSubclassEntityPersister, ReactiveSingleTableEntityPersister
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.Bindable

        org.hibernate.metamodel.mapping.Bindable.JdbcValuesBiConsumer<X extends java.lang.Object,​Y extends java.lang.Object>, org.hibernate.metamodel.mapping.Bindable.JdbcValuesConsumer
      • Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.EntityMappingType

        org.hibernate.metamodel.mapping.EntityMappingType.ConstraintOrderedTableConsumer
      • Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.ModelPart

        org.hibernate.metamodel.mapping.ModelPart.JdbcValueBiConsumer<X extends java.lang.Object,​Y extends java.lang.Object>, org.hibernate.metamodel.mapping.ModelPart.JdbcValueConsumer
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Log LOG  
      • Fields inherited from interface org.hibernate.persister.entity.EntityPersister

        ENTITY_ID
      • Fields inherited from interface org.hibernate.persister.entity.Loadable

        ROWID_ALIAS
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      boolean check​(int rows, java.lang.Object id, int tableNumber, org.hibernate.jdbc.Expectation expectation, java.sql.PreparedStatement statement, java.lang.String sql)  
      default ReactiveSingleIdArrayLoadPlan createLazyLoadPlan​(java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, java.lang.String[] subclassPropertyNameClosure)  
      default java.util.Map<java.lang.String,​ReactiveSingleIdArrayLoadPlan> createLazyLoadPlanByFetchGroup​(org.hibernate.bytecode.spi.BytecodeEnhancementMetadata metadata, java.lang.String[] subclassPropertyNameClosure)  
      default org.hibernate.persister.entity.AbstractEntityPersister delegate()
      A self-reference of type AbstractEntityPersister.
      default org.hibernate.metamodel.mapping.NaturalIdMapping generateNaturalIdMapping​(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess creationProcess, org.hibernate.mapping.PersistentClass bootEntityDescriptor)  
      default java.lang.String generateSelectLockString​(org.hibernate.LockOptions lockOptions)  
      default java.lang.String generateUpdateLockString​(org.hibernate.LockOptions lockOptions)  
      default java.util.Map<java.lang.String,​ReactiveSingleIdArrayLoadPlan> getLazyLoadPlanByFetchGroup​(java.lang.String[] subclassPropertyNameClosure)  
      java.lang.String[][] getLazyPropertyColumnAliases()  
      default org.hibernate.loader.ast.spi.NaturalIdLoader<?> getNaturalIdLoader()  
      default ReactiveConnection getReactiveConnection​(org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      ReactiveSingleIdEntityLoader<?> getReactiveSingleIdEntityLoader()  
      default int getSubclassPropertyIndex​(java.lang.String propertyName, java.lang.String[] subclassPropertyNameClosure)  
      org.hibernate.type.BasicType<?> getVersionType()  
      boolean initializeLazyProperty​(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.EntityEntry entry, int lazyIndex, java.lang.Object selectedValue)  
      java.lang.Object initializeLazyProperty​(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      default java.util.concurrent.CompletionStage<java.lang.Object> initLazyProperty​(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session, org.hibernate.engine.spi.EntityEntry entry, org.hibernate.engine.spi.PersistentAttributeInterceptor interceptor, java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, java.util.Set<java.lang.String> initializedLazyAttributeNames, java.lang.Object[] values)  
      boolean isBatchable()  
      default java.lang.Object nextVersionForLock​(org.hibernate.LockMode lockMode, java.lang.Object id, java.lang.Object currentVersion, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      default Parameters parameters()  
      default java.util.concurrent.CompletionStage<java.lang.Object> reactiveGetCurrentVersion​(java.lang.Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      default java.util.concurrent.CompletionStage<java.lang.Object[]> reactiveGetDatabaseSnapshot​(java.lang.Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Get the current database state of the object, in a "hydrated" form, without resolving identifiers
      ReactiveSingleIdArrayLoadPlan reactiveGetSQLLazySelectLoadPlan​(java.lang.String fetchGroup)  
      default java.util.concurrent.CompletionStage<java.lang.Object> reactiveInitializeEnhancedEntityUsedAsProxy​(java.lang.Object entity, java.lang.String nameOfAttributeBeingAccessed, org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      default java.util.concurrent.CompletionStage<java.lang.Object> reactiveInitializeLazyPropertiesFromDatastore​(java.lang.Object entity, java.lang.Object id, org.hibernate.engine.spi.EntityEntry entry, java.lang.String fieldName, org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      default <E,​T>
      java.util.concurrent.CompletionStage<T>
      reactiveInitializeLazyProperty​(jakarta.persistence.metamodel.Attribute<E,​T> field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      default <E,​T>
      java.util.concurrent.CompletionStage<T>
      reactiveInitializeLazyProperty​(java.lang.String field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)  
      default java.util.concurrent.CompletionStage<java.lang.Void> reactiveLock​(java.lang.Object id, java.lang.Object version, java.lang.Object object, org.hibernate.LockOptions lockOptions, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Obtain a pessimistic lock without blocking
      • Methods inherited from interface org.hibernate.persister.walking.spi.AttributeSource

        getPropertyIndex
      • Methods inherited from interface org.hibernate.metamodel.mapping.Bindable

        forEachDisassembledJdbcValue, forEachDisassembledJdbcValue, forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachJdbcValue, forEachJdbcValue, getJdbcMappings
      • Methods inherited from interface org.hibernate.metamodel.mapping.EntityMappingType

        applyBaseRestrictions, applyDiscriminator, applyFilterRestrictions, applyWhereRestrictions, asEntityMappingType, createPrimaryTableReference, createRootTableGroup, createTableReferenceJoin, extractConcreteTypeStateValues, findContainingEntityMapping, findDeclaredAttributeMapping, findSubPart, findSubTypesSubPart, forEachAttributeMapping, getAttributeMappings, getContributor, getDeclaredAttributeMappings, getDiscriminatorMapping, getDiscriminatorSQLValue, getEntityPersister, getFetchable, getIdentifierMapping, getIdentifierTableDetails, getJavaType, getJdbcTypeCount, getMappedJavaType, getMappedSuperclass, getMappedTableDetails, getNaturalIdMapping, getNumberOfAttributeMappings, getNumberOfDeclaredAttributeMappings, getNumberOfFetchables, getPartMappingType, getPartName, getRootEntityDescriptor, getRootPathName, getRowIdMapping, getSubclassEntityNames, getSubclassId, getSubMappingTypes, getSuperMappingType, getVersionMapping, isAffectedByEnabledFetchProfiles, isAffectedByEnabledFilters, isAffectedByEntityGraph, isExplicitPolymorphism, isTypeOrSuperType, isTypeOrSuperType, optimisticLockStyle, pruneForSubclasses, pruneForSubclasses, visitAttributeMappings, visitConstraintOrderedTables, visitDeclaredAttributeMappings, visitSubTypeAttributeMappings, visitSuperTypeAttributeMappings
      • Methods inherited from interface org.hibernate.persister.entity.EntityPersister

        addToCacheKey, afterInitialize, afterReassociate, breakDownJdbcValues, buildCacheEntry, canExtractIdOutOfEntity, canReadFromCache, canUseReferenceCacheEntries, canWriteToCache, createProxy, delete, findDirty, findModified, forceVersionIncrement, forceVersionIncrement, getAttributeMapping, getBytecodeEnhancementMetadata, getCacheAccessStrategy, getCacheEntryStructure, getClassMetadata, getConcreteProxyClass, getCurrentVersion, getDatabaseSnapshot, getEntityEntryFactory, getEntityMappingType, getEntityMetamodel, getEntityName, getFactory, getFilterAliasGenerator, getFilterAliasGenerator, getGenerator, getIdByUniqueKey, getIdentifier, getIdentifierGenerator, getIdentifierPropertyName, getIdentifierType, getInstrumentationMetadata, getMappedClass, getMultiNaturalIdLoader, getNaturalIdCacheAccessStrategy, getNaturalIdentifierProperties, getNaturalIdentifierSnapshot, getPropertyCascadeStyles, getPropertyCheckability, getPropertyInsertability, getPropertyLaziness, getPropertyNames, getPropertyNullability, getPropertySpaces, getPropertyType, getPropertyTypes, getPropertyUpdateability, getPropertyValue, getPropertyValue, getPropertyValues, getPropertyValuesToInsert, getPropertyVersionability, getQuerySpaces, getRepresentationStrategy, getRootEntityName, getSqlAliasStem, getSqmMultiTableInsertStrategy, getSqmMultiTableMutationStrategy, getSubclassEntityPersister, getSynchronizationSpaces, getSynchronizedQuerySpaces, getValue, getValues, getVersion, getVersionGenerator, getVersionJavaType, getVersionProperty, hasCache, hasCascadeDelete, hasCascades, hasCollectionNotReferencingPK, hasCollections, hasIdentifierProperty, hasInsertGeneratedProperties, hasLazyProperties, hasMutableProperties, hasNaturalIdCache, hasNaturalIdentifier, hasOwnedCollections, hasProxy, hasSubselectLoadableCollections, hasUninitializedLazyProperties, hasUpdateGeneratedProperties, implementsLifecycle, initializeEnhancedEntityUsedAsProxy, insert, insert, instantiate, isBatchLoadable, isCacheInvalidationRequired, isIdentifierAssignedByInsert, isInherited, isInstance, isInstrumented, isLazyPropertiesCacheable, isMutable, isPropertySelectable, isSelectBeforeUpdateRequired, isSubclassEntityName, isTransient, isVersioned, isVersionPropertyGenerated, load, load, load, load, loadByUniqueKey, loadEntityIdByNaturalId, lock, lock, multiLoad, postInstantiate, processInsertGeneratedProperties, processUpdateGeneratedProperties, resetIdentifier, resolveAttributeIndexes, resolveDirtyAttributeIndexes, setIdentifier, setPropertyValue, setPropertyValues, setValue, setValues, update, visitQuerySpaces
      • Methods inherited from interface org.hibernate.metamodel.mapping.EntityValuedModelPart

        applySqlSelections, applySqlSelections, createDomainResult, disassemble, findSubPart, forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachSubPart, visitSubParts
      • Methods inherited from interface org.hibernate.sql.results.graph.FetchableContainer

        getKeyFetchable, getNumberOfFetchableKeys, getNumberOfKeyFetchables, getSelectableIndex, visitFetchables, visitFetchables, visitFetchables, visitKeyFetchables, visitKeyFetchables, visitKeyFetchables
      • Methods inherited from interface org.hibernate.metamodel.mapping.JdbcMappingContainer

        getJdbcMapping, getSingleJdbcMapping
      • Methods inherited from interface org.hibernate.persister.entity.Joinable

        consumesCollectionAlias, consumesEntityAlias, getKeyColumnNames, getName, getTableName, isCollection
      • Methods inherited from interface org.hibernate.loader.ast.spi.Loadable

        isAffectedByInfluencers, isNotAffectedByInfluencers
      • Methods inherited from interface org.hibernate.persister.entity.Loadable

        getDiscriminatorAlias, getDiscriminatorColumnName, getDiscriminatorType, getDiscriminatorValue, getIdentifierAliases, getIdentifierColumnNames, getPropertyAliases, getPropertyColumnNames, getSubclassForDiscriminatorValue, getTableAliasForColumn, hasRowId, hasSubclasses, isAbstract, registerAffectingFetchProfile
      • Methods inherited from interface org.hibernate.persister.entity.Lockable

        getRootTableAlias, getRootTableIdentifierColumnNames, getRootTableName, getVersionColumnName
      • Methods inherited from interface org.hibernate.metamodel.mapping.ManagedMappingType

        anyRequiresAggregateColumnWriter, findAttributeMapping, forEachAttributeMapping, hasPartitionedSelectionMapping
      • Methods inherited from interface org.hibernate.metamodel.mapping.ModelPart

        areEqual, asAttributeMapping, breakDownJdbcValues, decompose, decompose, forEachSelectable, forEachSelectable, getNavigableRole, isEntityIdentifierMapping, isVirtual
      • Methods inherited from interface org.hibernate.metamodel.mapping.ModelPartContainer

        findByPath, findByPath, forEachSubPart
      • Methods inherited from interface org.hibernate.persister.entity.OuterJoinLoadable

        countSubclassProperties, fromTableFragment, getAttributeMutationTableName, getCascadeStyle, getEntityType, getFetchMode, getPropertyColumnNames, getPropertyTableName, getSubclassPropertyColumnNames, getSubclassPropertyName, getSubclassPropertyTableName, getSubclassPropertyType, isDefinedOnSubclass, isSubclassPropertyNullable, selectFragment, toColumns
      • Methods inherited from interface org.hibernate.sql.ast.tree.from.TableGroupProducer

        containsTableReference
    • Field Detail

      • LOG

        static final Log LOG
    • Method Detail

      • delegate

        default org.hibernate.persister.entity.AbstractEntityPersister delegate()
        A self-reference of type AbstractEntityPersister.
        Returns:
        this object
      • getReactiveConnection

        default ReactiveConnection getReactiveConnection​(org.hibernate.engine.spi.SharedSessionContractImplementor session)
      • check

        boolean check​(int rows,
                      java.lang.Object id,
                      int tableNumber,
                      org.hibernate.jdbc.Expectation expectation,
                      java.sql.PreparedStatement statement,
                      java.lang.String sql)
               throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • generateSelectLockString

        default java.lang.String generateSelectLockString​(org.hibernate.LockOptions lockOptions)
      • generateUpdateLockString

        default java.lang.String generateUpdateLockString​(org.hibernate.LockOptions lockOptions)
      • reactiveLock

        default java.util.concurrent.CompletionStage<java.lang.Void> reactiveLock​(java.lang.Object id,
                                                                                  java.lang.Object version,
                                                                                  java.lang.Object object,
                                                                                  org.hibernate.LockOptions lockOptions,
                                                                                  org.hibernate.engine.spi.SharedSessionContractImplementor session)
                                                                           throws org.hibernate.HibernateException
        Description copied from interface: ReactiveEntityPersister
        Obtain a pessimistic lock without blocking
        Specified by:
        reactiveLock in interface ReactiveEntityPersister
        Throws:
        org.hibernate.HibernateException
      • getVersionType

        org.hibernate.type.BasicType<?> getVersionType()
        Specified by:
        getVersionType in interface org.hibernate.persister.entity.EntityPersister
        See Also:
        AbstractEntityPersister.getVersionType()
      • nextVersionForLock

        default java.lang.Object nextVersionForLock​(org.hibernate.LockMode lockMode,
                                                    java.lang.Object id,
                                                    java.lang.Object currentVersion,
                                                    java.lang.Object entity,
                                                    org.hibernate.engine.spi.SharedSessionContractImplementor session)
        See Also:
        AbstractEntityPersister.forceVersionIncrement(Object, Object, SharedSessionContractImplementor)
      • reactiveGetDatabaseSnapshot

        default java.util.concurrent.CompletionStage<java.lang.Object[]> reactiveGetDatabaseSnapshot​(java.lang.Object id,
                                                                                                     org.hibernate.engine.spi.SharedSessionContractImplementor session)
        Description copied from interface: ReactiveEntityPersister
        Get the current database state of the object, in a "hydrated" form, without resolving identifiers
        Specified by:
        reactiveGetDatabaseSnapshot in interface ReactiveEntityPersister
        Returns:
        null if there is no row in the database
      • reactiveGetCurrentVersion

        default java.util.concurrent.CompletionStage<java.lang.Object> reactiveGetCurrentVersion​(java.lang.Object id,
                                                                                                 org.hibernate.engine.spi.SharedSessionContractImplementor session)
        Specified by:
        reactiveGetCurrentVersion in interface ReactiveEntityPersister
        See Also:
        AbstractEntityPersister.getCurrentVersion(Object, SharedSessionContractImplementor)
      • reactiveInitializeLazyProperty

        default <E,​T> java.util.concurrent.CompletionStage<T> reactiveInitializeLazyProperty​(jakarta.persistence.metamodel.Attribute<E,​T> field,
                                                                                                   E entity,
                                                                                                   org.hibernate.engine.spi.SharedSessionContractImplementor session)
        Specified by:
        reactiveInitializeLazyProperty in interface ReactiveEntityPersister
      • reactiveInitializeLazyProperty

        default <E,​T> java.util.concurrent.CompletionStage<T> reactiveInitializeLazyProperty​(java.lang.String field,
                                                                                                   E entity,
                                                                                                   org.hibernate.engine.spi.SharedSessionContractImplementor session)
        Specified by:
        reactiveInitializeLazyProperty in interface ReactiveEntityPersister
      • reactiveInitializeLazyPropertiesFromDatastore

        default java.util.concurrent.CompletionStage<java.lang.Object> reactiveInitializeLazyPropertiesFromDatastore​(java.lang.Object entity,
                                                                                                                     java.lang.Object id,
                                                                                                                     org.hibernate.engine.spi.EntityEntry entry,
                                                                                                                     java.lang.String fieldName,
                                                                                                                     org.hibernate.engine.spi.SharedSessionContractImplementor session)
      • initLazyProperty

        default java.util.concurrent.CompletionStage<java.lang.Object> initLazyProperty​(java.lang.String fieldName,
                                                                                        java.lang.Object entity,
                                                                                        org.hibernate.engine.spi.SharedSessionContractImplementor session,
                                                                                        org.hibernate.engine.spi.EntityEntry entry,
                                                                                        org.hibernate.engine.spi.PersistentAttributeInterceptor interceptor,
                                                                                        java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors,
                                                                                        java.util.Set<java.lang.String> initializedLazyAttributeNames,
                                                                                        java.lang.Object[] values)
      • reactiveInitializeEnhancedEntityUsedAsProxy

        default java.util.concurrent.CompletionStage<java.lang.Object> reactiveInitializeEnhancedEntityUsedAsProxy​(java.lang.Object entity,
                                                                                                                   java.lang.String nameOfAttributeBeingAccessed,
                                                                                                                   org.hibernate.engine.spi.SharedSessionContractImplementor session)
        Specified by:
        reactiveInitializeEnhancedEntityUsedAsProxy in interface ReactiveEntityPersister
      • initializeLazyProperty

        boolean initializeLazyProperty​(java.lang.String fieldName,
                                       java.lang.Object entity,
                                       org.hibernate.engine.spi.EntityEntry entry,
                                       int lazyIndex,
                                       java.lang.Object selectedValue)
      • initializeLazyProperty

        java.lang.Object initializeLazyProperty​(java.lang.String fieldName,
                                                java.lang.Object entity,
                                                org.hibernate.engine.spi.SharedSessionContractImplementor session)
      • getLazyPropertyColumnAliases

        java.lang.String[][] getLazyPropertyColumnAliases()
      • isBatchable

        boolean isBatchable()
      • generateNaturalIdMapping

        default org.hibernate.metamodel.mapping.NaturalIdMapping generateNaturalIdMapping​(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess creationProcess,
                                                                                          org.hibernate.mapping.PersistentClass bootEntityDescriptor)
        See Also:
        AbstractEntityPersister.generateNaturalIdMapping(MappingModelCreationProcess, PersistentClass)
      • getNaturalIdLoader

        default org.hibernate.loader.ast.spi.NaturalIdLoader<?> getNaturalIdLoader()
        Specified by:
        getNaturalIdLoader in interface org.hibernate.metamodel.mapping.EntityMappingType
        Specified by:
        getNaturalIdLoader in interface org.hibernate.persister.entity.EntityPersister
      • getLazyLoadPlanByFetchGroup

        default java.util.Map<java.lang.String,​ReactiveSingleIdArrayLoadPlan> getLazyLoadPlanByFetchGroup​(java.lang.String[] subclassPropertyNameClosure)
        See Also:
        AbstractEntityPersister.getLazyLoadPlanByFetchGroup()
      • createLazyLoadPlanByFetchGroup

        default java.util.Map<java.lang.String,​ReactiveSingleIdArrayLoadPlan> createLazyLoadPlanByFetchGroup​(org.hibernate.bytecode.spi.BytecodeEnhancementMetadata metadata,
                                                                                                                   java.lang.String[] subclassPropertyNameClosure)
      • createLazyLoadPlan

        default ReactiveSingleIdArrayLoadPlan createLazyLoadPlan​(java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors,
                                                                 java.lang.String[] subclassPropertyNameClosure)
      • getSubclassPropertyIndex

        default int getSubclassPropertyIndex​(java.lang.String propertyName,
                                             java.lang.String[] subclassPropertyNameClosure)