Interface AttributeDefinitionDraft

All Superinterfaces:
Draft<AttributeDefinitionDraft>

public interface AttributeDefinitionDraft extends Draft<AttributeDefinitionDraft>

Specify the Attribute to be created with the ProductTypeDraft.


Example to create an instance using the builder pattern

     AttributeDefinitionDraft attributeDefinitionDraft = AttributeDefinitionDraft.builder()
             .type(typeBuilder -> typeBuilder)
             .name("{name}")
             .label(labelBuilder -> labelBuilder)
             .isRequired(true)
             .build()
 
  • Method Details

    • getType

      @NotNull @Valid @NotNull @Valid AttributeType getType()

      Describes the Type of the Attribute.

      When the type is different for an AttributeDefinition using the same name in multiple ProductTypes, an AttributeDefinitionTypeConflict error is returned.

      Returns:
      type
    • getName

      @NotNull @NotNull String getName()

      User-defined name of the Attribute that is unique with the Project.

      When using the same name for an Attribute in multiple ProductTypes, all fields of the AttributeDefinition of this Attribute must be the same across the ProductTypes, else an AttributeDefinitionAlreadyExists error is returned. An exception to this are the values of an enum or lenum Type and sets thereof.

      Returns:
      name
    • getLabel

      @NotNull @Valid @NotNull @Valid LocalizedString getLabel()

      Human-readable label for the Attribute.

      Returns:
      label
    • getIsRequired

      @NotNull @NotNull Boolean getIsRequired()

      Set to true if the Attribute is required to have a value on a ProductVariant.

      Returns:
      isRequired
    • getAttributeConstraint

      AttributeConstraintEnum getAttributeConstraint()

      Specifies how an Attribute or a combination of Attributes should be validated across all variants of a Product.

      Returns:
      attributeConstraint
    • getInputTip

      @Valid @Valid LocalizedString getInputTip()

      Provides additional information about the Attribute that aids content managers when setting Product details.

      Returns:
      inputTip
    • getInputHint

      TextInputHint getInputHint()

      Provides a visual representation directive for values of this Attribute (only relevant for AttributeTextType and AttributeLocalizableTextType).

      Returns:
      inputHint
    • getIsSearchable

      Boolean getIsSearchable()

      Set to true if the Attribute's values should be available in the Product Projections Search API and can be used in full-text search queries, filters, and facets. Which exact features are available with this flag depends on the specific AttributeType. The maximum size of a searchable field is restricted by the Field content size limit. This constraint is enforced at both Product creation and Product update. If the length of the input exceeds the maximum size, an InvalidField error is returned.

      Returns:
      isSearchable
    • setType

      void setType(AttributeType type)

      Describes the Type of the Attribute.

      When the type is different for an AttributeDefinition using the same name in multiple ProductTypes, an AttributeDefinitionTypeConflict error is returned.

      Parameters:
      type - value to be set
    • setName

      void setName(String name)

      User-defined name of the Attribute that is unique with the Project.

      When using the same name for an Attribute in multiple ProductTypes, all fields of the AttributeDefinition of this Attribute must be the same across the ProductTypes, else an AttributeDefinitionAlreadyExists error is returned. An exception to this are the values of an enum or lenum Type and sets thereof.

      Parameters:
      name - value to be set
    • setLabel

      void setLabel(LocalizedString label)

      Human-readable label for the Attribute.

      Parameters:
      label - value to be set
    • setIsRequired

      void setIsRequired(Boolean isRequired)

      Set to true if the Attribute is required to have a value on a ProductVariant.

      Parameters:
      isRequired - value to be set
    • setAttributeConstraint

      void setAttributeConstraint(AttributeConstraintEnum attributeConstraint)

      Specifies how an Attribute or a combination of Attributes should be validated across all variants of a Product.

      Parameters:
      attributeConstraint - value to be set
    • setInputTip

      void setInputTip(LocalizedString inputTip)

      Provides additional information about the Attribute that aids content managers when setting Product details.

      Parameters:
      inputTip - value to be set
    • setInputHint

      void setInputHint(TextInputHint inputHint)

      Provides a visual representation directive for values of this Attribute (only relevant for AttributeTextType and AttributeLocalizableTextType).

      Parameters:
      inputHint - value to be set
    • setIsSearchable

      void setIsSearchable(Boolean isSearchable)

      Set to true if the Attribute's values should be available in the Product Projections Search API and can be used in full-text search queries, filters, and facets. Which exact features are available with this flag depends on the specific AttributeType. The maximum size of a searchable field is restricted by the Field content size limit. This constraint is enforced at both Product creation and Product update. If the length of the input exceeds the maximum size, an InvalidField error is returned.

      Parameters:
      isSearchable - value to be set
    • of

      factory method
      Returns:
      instance of AttributeDefinitionDraft
    • of

      factory method to create a shallow copy AttributeDefinitionDraft
      Parameters:
      template - instance to be copied
      Returns:
      copy instance
    • deepCopy

      factory method to create a deep copy of AttributeDefinitionDraft
      Parameters:
      template - instance to be copied
      Returns:
      copy instance
    • builder

      builder factory method for AttributeDefinitionDraft
      Returns:
      builder
    • builder

      create builder for AttributeDefinitionDraft instance
      Parameters:
      template - instance with prefilled values for the builder
      Returns:
      builder
    • withAttributeDefinitionDraft

      default <T> T withAttributeDefinitionDraft(Function<AttributeDefinitionDraft,T> helper)
      accessor map function
      Type Parameters:
      T - mapped type
      Parameters:
      helper - function to map the object
      Returns:
      mapped value
    • typeReference

      static com.fasterxml.jackson.core.type.TypeReference<AttributeDefinitionDraft> typeReference()
      gives a TypeReference for usage with Jackson DataBind
      Returns:
      TypeReference