Package io.ebean.bean

Class EntityBeanIntercept

  • All Implemented Interfaces:
    Serializable

    public final class EntityBeanIntercept
    extends Object
    implements Serializable
    This is the object added to every entity bean using byte code enhancement.

    This provides the mechanisms to support deferred fetching of reference beans and oldValues generation for concurrency checking.

    See Also:
    Serialized Form
    • Constructor Detail

      • EntityBeanIntercept

        public EntityBeanIntercept()
        EXPERIMENTAL - Constructor only for use by serialization frameworks.
    • Method Detail

      • setOwnerId

        public void setOwnerId​(Object ownerId)
        Set the ownerId (IdClass).
      • getEmbeddedOwnerIndex

        public int getEmbeddedOwnerIndex()
        Return the property index (for the parent) of this embedded bean.
      • registerGetterCallback

        public void registerGetterCallback​(PreGetterCallback getterCallback)
        Register the callback to be triggered when getter is called. This is used primarily to automatically flush the JDBC batch.
      • setEmbeddedOwner

        public void setEmbeddedOwner​(EntityBean parentBean,
                                     int embeddedOwnerIndex)
        Set the embedded beans owning bean.
      • isPartial

        public boolean isPartial()
        Check each property to see if the bean is partially loaded.
      • isDirty

        public boolean isDirty()
        Return true if this bean has been directly modified (it has oldValues) or if any embedded beans are either new or dirty (and hence need saving).
      • setEmbeddedDirty

        public void setEmbeddedDirty​(int embeddedProperty)
        Called by an embedded bean onto its owner.
      • setDirty

        public void setDirty​(boolean dirty)
      • isNew

        public boolean isNew()
        Return true if this entity bean is new and not yet saved.
      • isNewOrDirty

        public boolean isNewOrDirty()
        Return true if the entity bean is new or dirty (and should be saved).
      • hasIdOnly

        public boolean hasIdOnly​(int idIndex)
        Return true if only the Id property has been loaded.
      • isReference

        public boolean isReference()
        Return true if the entity is a reference.
      • setReference

        public void setReference​(int idPos)
        Set this as a reference object.
      • setLoadedFromCache

        public void setLoadedFromCache​(boolean loadedFromCache)
        Set true when the bean has been loaded from L2 bean cache. The effect of this is that we should skip the cache if there is subsequent lazy loading (bean cache partially populated).
      • isLoadedFromCache

        public boolean isLoadedFromCache()
        Return true if this bean was loaded from L2 bean cache.
      • isReadOnly

        public boolean isReadOnly()
        Return true if the bean should be treated as readOnly. If a setter method is called when it is readOnly an Exception is thrown.
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
        Set the readOnly status. If readOnly then calls to setter methods through an exception.
      • setForceUpdate

        public void setForceUpdate​(boolean forceUpdate)
        Set the bean to be updated when persisted (for merge).
      • isUpdate

        public boolean isUpdate()
        Return true if the entity should be updated.
      • isLoaded

        public boolean isLoaded()
        Return true if the entity has been loaded.
      • setNew

        public void setNew()
        Set the bean into NEW state.
      • setLoaded

        public void setLoaded()
        Set the loaded state to true.

        Calls to setter methods after the bean is loaded can result in 'Old Values' being created.

        Worth noting that this is also set after a insert/update. By doing so it 'resets' the bean for making further changes and saving again.

      • setLoadedLazy

        public void setLoadedLazy()
        When finished loading for lazy or refresh on an already partially populated bean.
      • isLazyLoadFailure

        public boolean isLazyLoadFailure()
        Return true if the bean is marked as having failed lazy loading.
      • isDisableLazyLoad

        public boolean isDisableLazyLoad()
        Return true if lazy loading is disabled.
      • setDisableLazyLoad

        public void setDisableLazyLoad​(boolean disableLazyLoad)
        Set true to turn off lazy loading.
      • setEmbeddedLoaded

        public void setEmbeddedLoaded​(Object embeddedBean)
        Set the loaded status for the embedded bean.
      • isEmbeddedNewOrDirty

        public boolean isEmbeddedNewOrDirty​(Object embeddedBean)
        Return true if the embedded bean is new or dirty and hence needs saving.
      • getOrigValue

        public Object getOrigValue​(int propertyIndex)
        Return the original value that was changed via an update.
      • findProperty

        public int findProperty​(String propertyName)
        Finds the index position of a given property. Returns -1 if the property can not be found.
      • getProperty

        public String getProperty​(int propertyIndex)
        Return the property name for the given property.
      • getPropertyLength

        public int getPropertyLength()
        Return the number of properties.
      • setPropertyLoaded

        public void setPropertyLoaded​(String propertyName,
                                      boolean loaded)
        Set the loaded state of the property given it's name.
      • setPropertyUnloaded

        public void setPropertyUnloaded​(int propertyIndex)
        Set the property to be treated as unloaded. Used for properties initialised in default constructor.
      • setLoadedProperty

        public void setLoadedProperty​(int propertyIndex)
        Set the property to be loaded.
      • setLoadedPropertyAll

        public void setLoadedPropertyAll()
        Set all properties to be loaded (post insert).
      • isLoadedProperty

        public boolean isLoadedProperty​(int propertyIndex)
        Return true if the property is loaded.
      • isChangedProperty

        public boolean isChangedProperty​(int propertyIndex)
        Return true if the property is considered changed.
      • isDirtyProperty

        public boolean isDirtyProperty​(int propertyIndex)
        Return true if the property was changed or if it is embedded and one of its embedded properties is dirty.
      • markPropertyAsChanged

        public void markPropertyAsChanged​(int propertyIndex)
        Explicitly mark a property as having been changed.
      • setNewBeanForUpdate

        public void setNewBeanForUpdate()
        For forced update on a 'New' bean set all the loaded properties to changed.
      • getDirtyProperties

        public boolean[] getDirtyProperties()
        Return the array of flags indicating the dirty properties.
      • hasDirtyProperty

        public boolean hasDirtyProperty​(Set<String> propertyNames)
        Return true if any of the given property names are dirty.
      • getLazyLoadPropertyIndex

        public int getLazyLoadPropertyIndex()
        Return the index of the property that triggered the lazy load.
      • initialisedMany

        public void initialisedMany​(int propertyIndex)
        Called when a BeanCollection is initialised automatically.
      • preGetId

        public void preGetId()
        Called prior to Id property getter.
      • preGetter

        public void preGetter​(int propertyIndex)
        Method that is called prior to a getter method on the actual entity.
      • preSetterMany

        public void preSetterMany​(boolean interceptField,
                                  int propertyIndex,
                                  Object oldValue,
                                  Object newValue)
        OneToMany and ManyToMany only set loaded state.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              Object oldValue,
                              Object newValue)
        Check to see if the values are not equal. If they are not equal then create the old values for use with ConcurrencyMode.ALL.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              boolean oldValue,
                              boolean newValue)
        Check for primitive boolean.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              int oldValue,
                              int newValue)
        Check for primitive int.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              long oldValue,
                              long newValue)
        long.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              double oldValue,
                              double newValue)
        double.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              float oldValue,
                              float newValue)
        float.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              short oldValue,
                              short newValue)
        short.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              char oldValue,
                              char newValue)
        char.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              byte oldValue,
                              byte newValue)
        byte.
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              char[] oldValue,
                              char[] newValue)
        char[].
      • preSetter

        public void preSetter​(boolean intercept,
                              int propertyIndex,
                              byte[] oldValue,
                              byte[] newValue)
        byte[].
      • setOldValue

        public void setOldValue​(int propertyIndex,
                                Object oldValue)
        Explicitly set an old value with force (the old value is forced even it is already set).
      • getSortOrder

        public int getSortOrder()
        Return the sort order value for an order column.
      • setSortOrder

        public void setSortOrder​(int sortOrder)
        Set the sort order value for an order column.
      • setDeletedFromCollection

        public void setDeletedFromCollection​(boolean deletedFromCollection)
        Set if the entity was deleted from a BeanCollection.
      • setLoadError

        public void setLoadError​(int propertyIndex,
                                 Exception t)
        Set the load error that happened on this property.