Class DefaultIntegrationItem

java.lang.Object
de.hybris.platform.integrationservices.item.DefaultIntegrationItem
All Implemented Interfaces:
IntegrationItem

public class DefaultIntegrationItem extends Object implements IntegrationItem
Default implementation of the IntegrationItem interface
  • Constructor Details

    • DefaultIntegrationItem

      public DefaultIntegrationItem(@NotNull @NotNull TypeDescriptor type, String key)
      Instantiates this integration item.
      Parameters:
      type - descriptor of the item type this new instance will have
      key - integration key of this item. Integration key can be null
    • DefaultIntegrationItem

      public DefaultIntegrationItem(TypeDescriptor type, IntegrationItem containerItem)
      Instantiates this integration item.
      Parameters:
      type - descriptor of the item type this new instance will have
      containerItem - the integration item which contains this item
  • Method Details

    • getIntegrationObjectCode

      public String getIntegrationObjectCode()
      Description copied from interface: IntegrationItem
      Retrieves code of the IntegrationObjectModel this item belongs to.
      Specified by:
      getIntegrationObjectCode in interface IntegrationItem
      Returns:
      value of the integration object code
    • getItemType

      @Nonnull public TypeDescriptor getItemType()
      Description copied from interface: IntegrationItem
      Retrieves type of this integration item.
      Specified by:
      getItemType in interface IntegrationItem
      Returns:
      descriptor of how integration object item is defined for this item.
    • getIntegrationKey

      public String getIntegrationKey()
      Description copied from interface: IntegrationItem
      Retrieves integration key value for this item.
      Specified by:
      getIntegrationKey in interface IntegrationItem
      Returns:
      calculated integration key value for the item content.
    • getAttributes

      public Collection<TypeAttributeDescriptor> getAttributes()
      Description copied from interface: IntegrationItem
      Retrieves attributes present in this integration object.
      Specified by:
      getAttributes in interface IntegrationItem
      Returns:
      a subset of all possible item attributes defined in IntegrationItem.getItemType() item type, which were set in this integration item. Even if an attribute was set to null, e.g. setAttribute("myAttribute", null), a type attribute descriptor will be returned for "myAttribute", if it's an attribute defined for the item type.
    • setAttribute

      public boolean setAttribute(String attrName, Object value)
      Sets value of an attribute in this item.

      This method does enforce any invariants, e.g. attribute existence, match of the value type to the declared in the metadata, etc.

      Specified by:
      setAttribute in interface IntegrationItem
      Parameters:
      attrName - name of the attribute whose value needs to be set.
      value - a value for the attribute. In order to set a value for a localized attribute, LocalizedValue should be passed as the value.
      Returns:
      true, if the value was successfully set, or false, if the specified attribute does not exist for this item.
    • getAttribute

      public Object getAttribute(String name)
      Description copied from interface: IntegrationItem
      Retrieves value of an attribute.
      Specified by:
      getAttribute in interface IntegrationItem
      Parameters:
      name - name of the attribute to read.
      Returns:
      value for the specified attribute in this item or null, if the attribute has not been set yet or does not exist. If attribute is localized, then LocalizedValue is returned.
    • getAttribute

      public Object getAttribute(TypeAttributeDescriptor attr)
      Description copied from interface: IntegrationItem
      Retrieves value of an attribute.
      Specified by:
      getAttribute in interface IntegrationItem
      Parameters:
      attr - TypeAttributeDescriptor that contains the information to get the value
      Returns:
      value for the specified attribute in this item or null, if the attribute has not been set yet or does not exist. If attribute is localized, then LocalizedValue is returned.
    • getLocalizedAttribute

      public Object getLocalizedAttribute(String attribute, String lang)
      Reads value of a localized attribute.
      Specified by:
      getLocalizedAttribute in interface IntegrationItem
      Parameters:
      attribute - name of the attribute to read
      lang - ISO code of the language, e.g. 'en' or 'es_CO', for which the attribute should be read. This is the value that can be read from Locale as Locale.toLanguageTag()
      Returns:
      value of the specified attribute in the specified language or null, if either the attribute or the language does not have a value set.
      Throws:
      IllegalArgumentException - when the attribute is not localized
    • getLocalizedAttribute

      public Object getLocalizedAttribute(String attribute, Locale lang)
      Reads value of a localized attribute. This method should ensure the specified attribute is indeed localized. Otherwise, the implementations should not return a value or indicate the problem by throwing an exception.
      Specified by:
      getLocalizedAttribute in interface IntegrationItem
      Parameters:
      attribute - name of the attribute to read
      lang - language, for which the attribute should be read
      Returns:
      value of the specified attribute in the specified language or null, if either the attribute or the language does not have a value set.
      Throws:
      IllegalArgumentException - when the attribute is not localized
    • getReferencedItem

      public IntegrationItem getReferencedItem(TypeAttributeDescriptor attribute)
      Description copied from interface: IntegrationItem
      Retrieves an integration item referenced by specified attribute. It does the same as calling IntegrationItem.getAttribute(String) but there is no need to cast result of that call to IntegrationItem.
      Specified by:
      getReferencedItem in interface IntegrationItem
      Parameters:
      attribute - attribute, whose value is a nested IntegrationItem
      Returns:
      the referenced item or null, if this item does not contain the referenced item for the specified attribute name.
    • getReferencedItems

      public Collection<IntegrationItem> getReferencedItems(TypeAttributeDescriptor attribute)
      Description copied from interface: IntegrationItem
      Retrieves multiple integration items referenced by specified attribute. It does the same as calling IntegrationItem.getAttribute(String) but there is no need to cast result of that call to Collection<IntegrationItem>.
      Specified by:
      getReferencedItems in interface IntegrationItem
      Parameters:
      attribute - attribute, whose value is a collection of nested IntegrationItems
      Returns:
      the referenced items. if this item does not contain referenced items for the specified attribute name, an empty collection is returned. If the attribute references a single instance of an IntegrationItem instead of a collection, then a collection with that single item will be returned.
    • setIntegrationKey

      public void setIntegrationKey(String key)
      Sets the integrationKey on this item.
      Parameters:
      key - integration key of this item. Integration key can be null
    • getContextItem

      public Optional<IntegrationItem> getContextItem(TypeDescriptor contextItemDescriptor)
      Description copied from interface: IntegrationItem
      Retrieves a context item for the given TypeDescriptor if one exists. This search is done recursively through the item's containers until a matching context item is found. If no context item exists, Optional.empty() is returned.
      Specified by:
      getContextItem in interface IntegrationItem
      Parameters:
      contextItemDescriptor - the type of the context item to find
      Returns:
      the requested context item if one exists.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object