Interface TypeDescriptor

  • All Known Implementing Classes:
    ItemTypeDescriptor, PrimitiveTypeDescriptor

    public interface TypeDescriptor
    Describes platform type in the context of an integration object item type. It may represent type of an integration object item or a primitive, or other types, which integration object item attributes may have. This metadata can be used for converting a custom payload to and from the platform's ItemModel
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      @NotNull java.util.Optional<TypeAttributeDescriptor> getAttribute​(java.lang.String attrName)
      Retrieves descriptor of the specified attribute.
      @NotNull java.util.Collection<TypeAttributeDescriptor> getAttributes()
      Retrieves all attributes defined in an integration object item.
      @NotNull java.lang.String getIntegrationObjectCode()
      Reads value of the integration object code.
      @NotNull java.lang.String getItemCode()
      Reads value of the integration object item code.
      KeyDescriptor getKeyDescriptor()
      Retrieves key descriptor of this item type.
      java.util.List<ReferencePath> getPathsToRoot()
      Retrieves attribute path from this item type to the root item type in the same integration object.
      @NotNull java.lang.String getTypeCode()
      Reads code (name) of the integration object item type in the type system.
      boolean hasPathToRoot()
      Determines whether it's possible to navigate from an integration item described by this type descriptor to the root item of the integration object.
      boolean isEnumeration()
      Determines whether this descriptor is for a type representing type system enumeration.
      boolean isInstance​(java.lang.Object obj)
      Determines whether the specified object is an instance of the type presented by this type descriptor.
      boolean isPrimitive()
      Determines whether this descriptor is for type representing integration object item or for a primitive type.
      boolean isRoot()
      Determines whether this descriptor is for the root item in the Integration Object
    • Method Detail

      • getIntegrationObjectCode

        @NotNull
        @NotNull java.lang.String getIntegrationObjectCode()
        Reads value of the integration object code.
        Returns:
        integration object code this item belongs to.
      • getItemCode

        @NotNull
        @NotNull java.lang.String getItemCode()
        Reads value of the integration object item code.
        Returns:
        integration object item type code. Keep in mind this value may be different from the type code of the item the integration object item represents. For example, type code of the item in the platform may be "Product" but integration object item type could be called "IntegrationProduct".
        See Also:
        getTypeCode()
      • getTypeCode

        @NotNull
        @NotNull java.lang.String getTypeCode()
        Reads code (name) of the integration object item type in the type system.
        Returns:
        type code of the item in the type system. Keep in mind this value may be different from the integration objec item code. For example, type code of the item in the type system may be "Product" but integration object item code may be different, e.g "IntegrationProduct".
        See Also:
        getItemCode()
      • getAttribute

        @NotNull
        @NotNull java.util.Optional<TypeAttributeDescriptor> getAttribute​(java.lang.String attrName)
        Retrieves descriptor of the specified attribute.
        Parameters:
        attrName - name of the integration object item attribute to be retrieved. Keep in mind that name of the attribute in an integration object item may be different from the name of the corresponding attribute in the type system.
        Returns:
        attribute descriptor for the given name or Optional.empty(), if the item type does not have an attribute with such name.
      • getAttributes

        @NotNull
        @NotNull java.util.Collection<TypeAttributeDescriptor> getAttributes()
        Retrieves all attributes defined in an integration object item.
        Returns:
        a collection of all attributes in the integration object item or an empty collection, if this description is for a primitive type or the item does not have attributes.
      • isPrimitive

        boolean isPrimitive()
        Determines whether this descriptor is for type representing integration object item or for a primitive type.
        Returns:
        true, if this descriptor is for a primitive type, e.g. Integer, String, etc; false, otherwise.
      • isEnumeration

        boolean isEnumeration()
        Determines whether this descriptor is for a type representing type system enumeration.
        Returns:
        true, if this descriptor is for an enumeration type; false otherwise.
      • isInstance

        boolean isInstance​(java.lang.Object obj)
        Determines whether the specified object is an instance of the type presented by this type descriptor.
        Parameters:
        obj - an object to evaluate.
        Returns:
        true, if the specified object is an instance of the type presented by this type descriptor; false, if the object is null or cannot be described by this type descriptor.
      • isRoot

        boolean isRoot()
        Determines whether this descriptor is for the root item in the Integration Object
        Returns:
        true, if this descriptor is the root; false otherwise.
      • getKeyDescriptor

        KeyDescriptor getKeyDescriptor()
        Retrieves key descriptor of this item type.
        Returns:
        descriptor of the key identifying instances of this item type.
      • getPathsToRoot

        java.util.List<ReferencePath> getPathsToRoot()
        Retrieves attribute path from this item type to the root item type in the same integration object.
        Returns:
        a list of all possible paths in order from the shorter ones to the longer paths. If this type descriptor does not contain attribute(s) that eventually lead to the root item type, then an empty list is returned.
        See Also:
        isRoot(), IntegrationObjectDescriptor.getRootItemType()
      • hasPathToRoot

        boolean hasPathToRoot()
        Determines whether it's possible to navigate from an integration item described by this type descriptor to the root item of the integration object.
        Returns:
        true, if this type descriptor describes a root item type in the integration object or it has a ReferencePath to the root item type.
        See Also:
        isRoot(), IntegrationObjectDescriptor.getRootItemType(), getPathsToRoot()