Interface IntegrationItem

All Known Implementing Classes:
DefaultIntegrationItem

public interface IntegrationItem
Representation of a data item sent into the integration services or sent out of the integration services. Integration item must correspond to one of the IntegrationObjectItemModel definitions. If IntegrationObjectItemModel represents a type of the data structures, then the IntegrationItem is a particular instance of that type carrying particular data values.
  • Method Details

    • getIntegrationObjectCode

      String getIntegrationObjectCode()
      Retrieves code of the IntegrationObjectModel this item belongs to.
      Returns:
      value of the integration object code
    • getItemType

      @Nonnull TypeDescriptor getItemType()
      Retrieves type of this integration item.
      Returns:
      descriptor of how integration object item is defined for this item.
    • getIntegrationKey

      String getIntegrationKey()
      Retrieves integration key value for this item.
      Returns:
      calculated integration key value for the item content.
    • getAttributes

      Retrieves attributes present in this integration object.
      Returns:
      a subset of all possible item attributes defined in 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

      boolean setAttribute(String attribute, Object value)
      Sets value of an attribute in this item.
      Parameters:
      attribute - 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

      Object getAttribute(String name)
      Retrieves value of an attribute.
      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

      Object getAttribute(TypeAttributeDescriptor attr)
      Retrieves value of an attribute.
      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

      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.
      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.
    • getLocalizedAttribute

      Object getLocalizedAttribute(String attribute, String lang)
      Reads value of a localized attribute.
      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.
    • getReferencedItem

      IntegrationItem getReferencedItem(TypeAttributeDescriptor attribute)
      Retrieves an integration item referenced by specified attribute. It does the same as calling getAttribute(String) but there is no need to cast result of that call to 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

      Collection<IntegrationItem> getReferencedItems(TypeAttributeDescriptor attribute)
      Retrieves multiple integration items referenced by specified attribute. It does the same as calling getAttribute(String) but there is no need to cast result of that call to Collection<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.
    • getContextItem

      Optional<IntegrationItem> getContextItem(TypeDescriptor contextItemDescriptor)
      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.
      Parameters:
      contextItemDescriptor - the type of the context item to find
      Returns:
      the requested context item if one exists.