Class ProductAttribute


public class ProductAttribute extends Attribute
Represents an attribute in a IpsProductCmptType.
  • Constructor Details

    • ProductAttribute

      public ProductAttribute(Type type, boolean changingOverTime, Method getter, Method setter)
  • Method Details

    • getType

      public ProductCmptType getType()
      Returns the ProductCmptType this attribute belongs to.
      Overrides:
      getType in class TypePart
    • getModelType

      @Deprecated public ProductCmptType getModelType()
      Deprecated.
      Returns the parent Type
      Overrides:
      getModelType in class TypePart
    • isProductRelevant

      public boolean isProductRelevant()
      Description copied from class: Attribute
      Returns true if this attribute is configured by the product. Product attributes are always product relevant.
      Specified by:
      isProductRelevant in class Attribute
      Returns:
      true if this attribute is configured by the product, false if not
    • createOverwritingAttributeFor

      public Attribute createOverwritingAttributeFor(Type subType)
      Description copied from class: Attribute
      Creates an attribute model for a sub type in which this attribute is overwritten. This is necessary to retrieve information contained in the class annotation such as labels if no getter is generated for the overwritten attribute in the sub class.
      Specified by:
      createOverwritingAttributeFor in class Attribute
      Parameters:
      subType - a model type representing a sub type of this attribute's model type
      Returns:
      a Attribute for the given sub model type
    • getValue

      public Object getValue(IProductComponent productComponent, Calendar effectiveDate)
      Returns the value of this attribute in the given product component (or its generation identified by the effectiveDate, if the attribute is changeable over time).

      It is safe to cast the returned object to the class returned by Attribute.getDatatype(), except when the attribute is a multi-value attribute - then a List is returned (and it's contents can be cast to the class returned by Attribute.getDatatype()).

      Parameters:
      productComponent - a product component based on the product component type this attribute belongs to.
      effectiveDate - (optional) the date to use for selecting the product component's generation, if this attribute Attribute.isChangingOverTime()
    • isMultiValue

      public Boolean isMultiValue()
      Whether this attribute has just one value or multiple values. If the attribute has multiple values, Attribute.getDatatype() will still return the class of a single value, but getValue(IProductComponent, Calendar) will return a List.