Interface ModelConverter

All Known Subinterfaces:
TypeSystemAwareModelConverter, UpdateableModelConverter
All Known Implementing Classes:
EnumValueModelConverter, ItemModelConverter, PrefetchAllModelConverter, VariantProductModelConverter

public interface ModelConverter
A ModelConverter is responsible for creating and filling a model from an underlying persistence system like the hybris layer, a database, web service.
Since:
4.0
  • Method Details

    • init

      void init(ConverterRegistry registry)
      Called once before using the converter the first time.
      Parameters:
      registry - the registry holding this converter.
    • create

      Object create(String type)
      Creates a new empty model instance.
      Returns:
      new empty model
    • getType

      String getType(Object model)
      Returns the exact type of the given model.
    • load

      Object load(Object source)
      Creates a new model instance and fills its attributes with data from given source object
      Parameters:
      source - object which will be used for filling new model
      Returns:
      new model instance with data of given source
    • reload

      void reload(Object model)
      Fills the attributes of passed model new using mapped source object.
      Parameters:
      model - model which will be filled from scratch using mapped source
    • remove

      void remove(Object model)
      Tries to remove the source of the given model.
      Parameters:
      model - the model for which to remove the source
    • save

      void save(Object model, Collection<String> exclude)
      Saves all attribute values from the model to the wrapped source object or creates a new one if no source is mapped yet.
      Parameters:
      model - the model to save
    • getSource

      @Deprecated(since="5.7.0", forRemoval=true) Object getSource(Object model)
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 5.7.0
      Returns underlying source for given model.
      Parameters:
      model - the model for which to return the source
      Returns:
      the underlying source of the given model, or null if the source doesn't (yet) exist
    • isModified

      boolean isModified(Object model)
      Returns true if the given model is new or the ModelValueHistory of the model contains changed attributes.
      Parameters:
      model - the model
      Returns:
      false otherwise
    • isModified

      boolean isModified(Object model, String attribute)
      Returns true if the given model is new or the ModelValueHistory for the given attribute (qualifier) was changed. If the attribute is localized the current session data Locale (see LocaleProvider#getCurrentDataLocale()) is used.
      Parameters:
      model - the model
      attribute - the attribute qualifier
      Returns:
      false if the attribute was not modified.
    • isModified

      boolean isModified(Object model, String attribute, Locale loc)
      Returns true if the given model is new or the ModelValueHistory for the given attribute (qualifier) was changed. For localized attributes the given Locale is used to check for modifications. If the Locale is null then all Locales will be checked for modifications. For non-localized attributes the given Locale will be ignored.
      Parameters:
      model - the model
      attribute - the attribute qualifier
      loc - the Locale. Can be null.
      Returns:
      false otherwise.
    • exists

      boolean exists(Object model)
      Returns true if for the given model a source Item exists and if this item Item#isAlive()
      Parameters:
      model - the model
      Returns:
      false if the model was not persisted yet (no underlying item) or the item was removed.
    • isRemoved

      boolean isRemoved(Object model)
      Returns true if for the given model no source Item exists or this item is not Item#isAlive()
      Parameters:
      model - the model
      Returns:
      false if the model isNew(Object) or the item is alive.
    • isNew

      boolean isNew(Object model)
      Returns true if the given model was not persisted yet.
      Parameters:
      model - the model
      Returns:
      false if an AttributeProvider for the given model exists.
    • isUpToDate

      boolean isUpToDate(Object model)
      The given model is not up-to-date (returns false) when:
      • the model is new (see isNew(Object)) or
      • the model was removed (see isRemoved(Object)) or
      • the model was locally modified or
      • the Item in the database is newer as the source item of the model
      Parameters:
      model - the model
      Returns:
      true if the model is up-to-date
    • getDirtyAttributes

      Map<String,Set<Locale>> getDirtyAttributes(Object model)
      Returns a map with all modified attribute qualifiers for the given model. The keys are all localized and non-localized attribute qualifier which were modified. If the map value is null the key is a non-localized attribute qualifier else the map value contains the locale in which language the localized attribute was modified.
      Parameters:
      model - the new (not saved) model
      Returns:
      a map with all modified attribute qualifier.
    • getAttributeValue

      Object getAttributeValue(Object model, String attributeQualifier)
      Generic attribute value getter to read attribute data from arbitrary model instances.
      Parameters:
      model - the model instance
      attributeQualifier - the attribute qualifier
      Returns:
      the attribute value
    • getLocalizedAttributeValue

      Object getLocalizedAttributeValue(Object model, String attributeQualifier, Locale locale)
      Generic attribute value getter to read attribute data from arbitrary model instances.
      Parameters:
      model - the model instance
      attributeQualifier - the attribute qualifier
      locale - Locale for which value will be returned
      Returns:
      the attribute value
    • setAttributeValue

      void setAttributeValue(Object model, String attributeQualifier, Object value)
      Generic attribute value setter to modify attribute data on arbitrary model instances.
      Parameters:
      model - the model
      attributeQualifier - the attribute qualifier
      value - the attribute value
    • beforeAttach

      void beforeAttach(Object model, ModelContext ctx)
      This method is executed before the given model is attached to the given ModelContext
    • afterDetach

      void afterDetach(Object model, ModelContext ctx)
      This method is executed after the given model is attached from the given ModelContext
    • getWritablePartOfAttributes

      Set<String> getWritablePartOfAttributes(TypeService typeService)
      Returns a collection of writable partof atrributes
    • getPartOfAttributes

      Set<String> getPartOfAttributes(TypeService typeService)
      Returns a collection of all partof atrributes
    • getPersistenceSource

      PersistenceObject getPersistenceSource(Object model)