Package io.ebean

Interface BeanState


  • public interface BeanState
    Provides access to the internal state of an entity bean.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      Set<String> getChangedProps()
      Return the set of changed properties.
      Map<String,​ValuePair> getDirtyValues()
      Return a map of the updated properties and their new and old values.
      Set<String> getLoadedProps()
      For partially populated beans returns the properties that are loaded on the bean.
      Map<String,​Exception> getLoadErrors()
      Returns a map with load erros.
      boolean isDirty()
      Return true if the bean has been changed but not yet saved.
      boolean isDisableLazyLoad()
      Return true if the bean has lazy loading disabled.
      boolean isNew()
      Return true if the bean is new (and not yet saved).
      boolean isNewOrDirty()
      Return true if the bean is new or dirty (and probably needs to be saved).
      boolean isReadOnly()
      Return true if the bean is readOnly.
      boolean isReference()
      Return true if this is a lazy loading reference bean.
      void resetForInsert()
      Reset the bean putting it into NEW state such that a save() results in an insert.
      void setDisableLazyLoad​(boolean disableLazyLoading)
      This can be called with true to disable lazy loading on the bean.
      void setLoaded()
      Advanced - Used to programmatically build a partially or fully loaded entity bean.
      void setPropertyLoaded​(String propertyName, boolean loaded)
      Set the loaded state of the property given it's name.
      void setReadOnly​(boolean readOnly)
      Set the readOnly status for the bean.
    • Method Detail

      • isReference

        boolean isReference()
        Return true if this is a lazy loading reference bean.

        If so the this bean only holds the Id property and will invoke lazy loading if any other property is get or set.

      • isNew

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

        boolean isNewOrDirty()
        Return true if the bean is new or dirty (and probably needs to be saved).
      • isDirty

        boolean isDirty()
        Return true if the bean has been changed but not yet saved.
      • setDisableLazyLoad

        void setDisableLazyLoad​(boolean disableLazyLoading)
        This can be called with true to disable lazy loading on the bean.
      • isDisableLazyLoad

        boolean isDisableLazyLoad()
        Return true if the bean has lazy loading disabled.
      • setPropertyLoaded

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

        Typically this would be used to set the loaded state of a property to false to ensure that the specific property is excluded from a stateless update.

        
        
           // populate a bean via say JSON
           User user = ...;
        
           // set loaded state on the email property to false so that
           // the email property is not included in a stateless update
           DB.getBeanState(user).setPropertyLoaded("email", false);
        
           user.update();
        
         

        This will throw an IllegalArgumentException if the property is unknown.

      • getLoadedProps

        Set<StringgetLoadedProps()
        For partially populated beans returns the properties that are loaded on the bean.

        Accessing another property will cause lazy loading to occur.

      • isReadOnly

        boolean isReadOnly()
        Return true if the bean is readOnly.

        If a setter is called on a readOnly bean it will throw an exception.

      • setReadOnly

        void setReadOnly​(boolean readOnly)
        Set the readOnly status for the bean.
      • setLoaded

        void setLoaded()
        Advanced - Used to programmatically build a partially or fully loaded entity bean. First create an entity bean via Database.createEntityBean(Class), then populate its properties and then call this method specifying which properties where loaded or null for a fully loaded entity bean.
      • resetForInsert

        void resetForInsert()
        Reset the bean putting it into NEW state such that a save() results in an insert.