Class ProductFeature

All Implemented Interfaces:
Serializable, Comparable

public class ProductFeature extends GeneratedProductFeature
A product features is used to describe a property of a product. It is identified by its qualifier and it contains one or more values. Additionally a unit, description and value details may be specified. Product feature are used mainly to allow generic representation of features of imported catalog products. When modeling own product features you may rather consider to use the platforms property concept.
See Also:
  • Field Details

  • Constructor Details

    • ProductFeature

      public ProductFeature()
  • Method Details

    • createItem

      protected Item createItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes) throws JaloBusinessException
      Description copied from class: Item
      Has to be implemented for each concrete subtype of item. This method is responsible for creating a new item instance ( by calling managers, ejb homes, etc. ) during ComposedType.newInstance(Map).

      In case this method uses any of the attribute values during creation it is required to override Item.getNonInitialAttributes(SessionContext, ItemAttributeMap) too.
      Sn example:

      
       public static final String MY_ATTRIBUTE = "someAttribute"; ... protected Item createItem(SessionContext
       ctx, ComposedType type, Map allAttributes ) throws JaloBusinessException { MyManager man = ... return
       man.createMyItem( (String)allAttributes.get(MY_ATTRIBUTE) );
       // here MY_ATTRIBUTE is used for creation, so it must not be set again } protected Map getNonInitialAttributes(
       SessionContext ctx, Map allAttributes ) { // let superclass remove its own initial attributes Map ret =
       super.getNonInitialAttributes( ctx, allAttributes );
       // remove MY_ATTRIBUTE from all attributes since if has already been set ret.remove(MY_ATTRIBUTE); return ret; }
      
       
      Overrides:
      createItem in class GeneratedProductFeature
      Parameters:
      ctx - the current session context which this item is created within
      type - the actual item type ( since subtypes may not provide a own jalo class this may be different from the type which this method was implemented for )
      Returns:
      the new item instance
      Throws:
      JaloBusinessException - indicates an error during creation - any changes will be rollbacked
    • getInitialProperties

      protected JaloPropertyContainer getInitialProperties(JaloSession jaloSession, Item.ItemAttributeMap allAttributes)
      Description copied from class: GenericItem
      Override to specify all properties which should be written during ejbCreate. This way is is possible to implement non-null property fields ( means property fields which are written in SQL INSERT ). Properties which are set via Item.setNonInitialAttributes(SessionContext, Item, Item.ItemAttributeMap) are usually written by additional SQL UPDATE statements.
       protected JaloPropertyContainer getInitialProperties(ItemAttributeMap allAttributes)
       {
              JaloPropertyContainer cont = jaloSession.createPropertyContainer();
              cont.setProperty("key", (Serializable) allAttributes.get("myKey"));
              return cont;
       }
       

      The default implementation collects all initial properties (localized and unlocalized ones), which were registered by calling allAttributes.setAttributeMode( MYPROPERTY, Item.AttributeMode.INITIAL ); inside MyType#createItem( SessionContext , ComposedType , Item.ItemAttributeMap ).

      Overrides:
      getInitialProperties in class GenericItem
      Parameters:
      jaloSession - the jalo session which the new item is create within
      allAttributes - the attribute values of the new item
    • getNonInitialAttributes

      protected Item.ItemAttributeMap getNonInitialAttributes(SessionContext ctx, Item.ItemAttributeMap allAttributes)
      Description copied from class: GenericItem
      The default implementation of GenericItem.getNonInitialAttributes(SessionContext, Item.ItemAttributeMap) assures that the 'registered initial' properties GenericItem.getInitialProperties(JaloSession, Item.ItemAttributeMap) will be removed from the 'non initial map'.
      Overrides:
      getNonInitialAttributes in class GenericItem
      Parameters:
      ctx - session context with language = NULL
      allAttributes - a ItemAttributeMap contaning attribute values.
      Returns:
      a ItemAttributeMap containing all attribute values, which belong to non-initial attributes.
    • removeLinks

      protected void removeLinks()
      Overrides:
      removeLinks in class Item
    • remove

      public void remove(SessionContext ctx) throws ConsistencyCheckException
      Description copied from class: Item
      Removes this item.

      This method is using the following attributes of the given SessionContext:

      CacheUsage   Language   StagingMethod
      n/a (this is a setter method)   no, language doesn't matter for removal   yes if called on a StageableItem, no otherwise


      Overrides:
      remove in class Item
      Parameters:
      ctx - A SessionContext object
      Throws:
      ConsistencyCheckException - if this item could not be removed for some reason
    • untype

      public void untype()
      Disconnects this value from its ClassAttributeAssignment. From this time on the value will only turn up inside untyped FeatureContainer.
    • reType

      public void reType(ClassAttributeAssignment assignment)
      (Re-)connects this value to a existing ClassAttributeAssignment.
      Parameters:
      assignment - the class-attribute relation which the value will belong to
    • calculateSingleValueType

      protected int calculateSingleValueType(Object value)
    • setValue

      @Deprecated(since="ages", forRemoval=false) public void setValue(SessionContext ctx, Object value) throws NullPointerException
      Deprecated.
      since ages
      Changes the value of this feature.
      Throws:
      NullPointerException - if the value was null
    • getValue

      @Deprecated(since="ages", forRemoval=false) public Object getValue(SessionContext ctx)
      Deprecated.
      since ages
      Returns the value of this feature.
    • getValue

      @Deprecated(since="ages", forRemoval=false) public Object getValue()
      Deprecated.
      since ages
      Returns the value of this feature.
    • doSetSingleValue

      protected void doSetSingleValue(SessionContext ctx, JaloPropertyContainer cont, Object value)
    • setSearchFields

      protected void setSearchFields(SessionContext ctx, JaloPropertyContainer cont, Object value)
    • convertToBigDecimal

      protected BigDecimal convertToBigDecimal(Number number)
    • isStringToNumberConversionEnabled

      protected boolean isStringToNumberConversionEnabled()