package oracle.fodemo.storefront.entities;

import oracle.jbo.Key;
import oracle.jbo.RowIterator;
import oracle.jbo.RowSet;
import oracle.jbo.domain.DBSequence;
import oracle.jbo.domain.Date;
import oracle.jbo.domain.Number;
import oracle.jbo.server.AttributeDefImpl;
import oracle.jbo.server.EntityDefImpl;
import oracle.jbo.server.EntityImpl;
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
// ---------------------------------------------------------------------
public class ProductBaseEOImpl extends EntityImpl {
    private static EntityDefImpl mDefinitionObject;

    /**
     * AttributesEnum: generated enum for identifying attributes and accessors. Do not modify.
     */
    public enum AttributesEnum {
        ProductId {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getProductId();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setProductId((DBSequence)value);
            }
        }
        ,
        SupplierId {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getSupplierId();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setSupplierId((Number)value);
            }
        }
        ,
        CategoryId {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getCategoryId();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setCategoryId((Number)value);
            }
        }
        ,
        ProductName {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getProductName();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setProductName((String)value);
            }
        }
        ,
        ProductStatus {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getProductStatus();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setProductStatus((String)value);
            }
        }
        ,
        CostPrice {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getCostPrice();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setCostPrice((Number)value);
            }
        }
        ,
        ListPrice {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getListPrice();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setListPrice((Number)value);
            }
        }
        ,
        MinPrice {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getMinPrice();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setMinPrice((Number)value);
            }
        }
        ,
        WarrantyPeriodMonths {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getWarrantyPeriodMonths();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setWarrantyPeriodMonths((Number)value);
            }
        }
        ,
        ShippingClassCode {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getShippingClassCode();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setShippingClassCode((String)value);
            }
        }
        ,
        ExternalUrl {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getExternalUrl();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setExternalUrl((String)value);
            }
        }
        ,
        AttributeCategory {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttributeCategory();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeCategory((String)value);
            }
        }
        ,
        Attribute1 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute1();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute1((String)value);
            }
        }
        ,
        Attribute2 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute2();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute2((String)value);
            }
        }
        ,
        Attribute3 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute3();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute3((String)value);
            }
        }
        ,
        Attribute4 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute4();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute4((String)value);
            }
        }
        ,
        Attribute5 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute5();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute5((String)value);
            }
        }
        ,
        Attribute6 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute6();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute6((String)value);
            }
        }
        ,
        Attribute7 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute7();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute7((String)value);
            }
        }
        ,
        Attribute8 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute8();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute8((String)value);
            }
        }
        ,
        Attribute9 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute9();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute9((String)value);
            }
        }
        ,
        Attribute10 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute10();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute10((String)value);
            }
        }
        ,
        Attribute11 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute11();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute11((String)value);
            }
        }
        ,
        Attribute12 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute12();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute12((String)value);
            }
        }
        ,
        Attribute13 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute13();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute13((String)value);
            }
        }
        ,
        Attribute14 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute14();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute14((String)value);
            }
        }
        ,
        Attribute15 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getAttribute15();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttribute15((String)value);
            }
        }
        ,
        CreatedBy {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getCreatedBy();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setCreatedBy((String)value);
            }
        }
        ,
        CreationDate {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getCreationDate();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ,
        LastUpdatedBy {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getLastUpdatedBy();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setLastUpdatedBy((String)value);
            }
        }
        ,
        LastUpdateDate {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getLastUpdateDate();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ,
        ObjectVersionId {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getObjectVersionId();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ,
        QuantityOnHand {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getQuantityOnHand();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setQuantityOnHand((Integer)value);
            }
        }
        ,
        OrderItem {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getOrderItem();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ,
        ProductCategoryBase {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getProductCategoryBase();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setProductCategoryBase((EntityImpl)value);
            }
        }
        ,
        ProductCategoryBase1 {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getProductCategoryBase1();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ,
//        ProductImage {
//            public Object get(ProductBaseEOImpl obj) {
//                return obj.getProductImage();
//            }
//
//            public void put(ProductBaseEOImpl obj, Object value) {
//                obj.setAttributeInternal(index(), value);
//            }
//        }
//        ,
        ProductTranslation {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getProductTranslation();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ,
        Supplier {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getSupplier();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setSupplier((EntityImpl)value);
            }
        }
        ,
        WarehouseStockLevel {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getWarehouseStockLevel();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ,
        LookupsBaseVO {
            public Object get(ProductBaseEOImpl obj) {
                return obj.getLookupsBaseVO();
            }

            public void put(ProductBaseEOImpl obj, Object value) {
                obj.setAttributeInternal(index(), value);
            }
        }
        ;
        private static AttributesEnum[] vals = null;
        private static int firstIndex = 0;

        /**
         * @param object
         * @return
         */
        public abstract Object get(ProductBaseEOImpl object);

        /**
         * @param object
         * @param value
         */
        public abstract void put(ProductBaseEOImpl object, Object value);

        /**
         * @return
         */
        public int index() {
            return AttributesEnum.firstIndex() + ordinal();
        }

        /**
         * @return
         */
        public static int firstIndex() {
            return firstIndex;
        }

        /**
         * @return
         */
        public static int count() {
            return AttributesEnum.firstIndex() + AttributesEnum.staticValues().length;
        }

        /**
         * @return
         */
        public static AttributesEnum[] staticValues() {
            if (vals == null) {
                vals = AttributesEnum.values();
            }
            return vals;
        }
    }
    public static final int PRODUCTID = AttributesEnum.ProductId.index();
    public static final int SUPPLIERID = AttributesEnum.SupplierId.index();
    public static final int CATEGORYID = AttributesEnum.CategoryId.index();
    public static final int PRODUCTNAME = AttributesEnum.ProductName.index();
    public static final int PRODUCTSTATUS = AttributesEnum.ProductStatus.index();
    public static final int COSTPRICE = AttributesEnum.CostPrice.index();
    public static final int LISTPRICE = AttributesEnum.ListPrice.index();
    public static final int MINPRICE = AttributesEnum.MinPrice.index();
    public static final int WARRANTYPERIODMONTHS = AttributesEnum.WarrantyPeriodMonths.index();
    public static final int SHIPPINGCLASSCODE = AttributesEnum.ShippingClassCode.index();
    public static final int EXTERNALURL = AttributesEnum.ExternalUrl.index();
    public static final int ATTRIBUTECATEGORY = AttributesEnum.AttributeCategory.index();
    public static final int ATTRIBUTE1 = AttributesEnum.Attribute1.index();
    public static final int ATTRIBUTE2 = AttributesEnum.Attribute2.index();
    public static final int ATTRIBUTE3 = AttributesEnum.Attribute3.index();
    public static final int ATTRIBUTE4 = AttributesEnum.Attribute4.index();
    public static final int ATTRIBUTE5 = AttributesEnum.Attribute5.index();
    public static final int ATTRIBUTE6 = AttributesEnum.Attribute6.index();
    public static final int ATTRIBUTE7 = AttributesEnum.Attribute7.index();
    public static final int ATTRIBUTE8 = AttributesEnum.Attribute8.index();
    public static final int ATTRIBUTE9 = AttributesEnum.Attribute9.index();
    public static final int ATTRIBUTE10 = AttributesEnum.Attribute10.index();
    public static final int ATTRIBUTE11 = AttributesEnum.Attribute11.index();
    public static final int ATTRIBUTE12 = AttributesEnum.Attribute12.index();
    public static final int ATTRIBUTE13 = AttributesEnum.Attribute13.index();
    public static final int ATTRIBUTE14 = AttributesEnum.Attribute14.index();
    public static final int ATTRIBUTE15 = AttributesEnum.Attribute15.index();
    public static final int CREATEDBY = AttributesEnum.CreatedBy.index();
    public static final int CREATIONDATE = AttributesEnum.CreationDate.index();
    public static final int LASTUPDATEDBY = AttributesEnum.LastUpdatedBy.index();
    public static final int LASTUPDATEDATE = AttributesEnum.LastUpdateDate.index();
    public static final int OBJECTVERSIONID = AttributesEnum.ObjectVersionId.index();
    public static final int QUANTITYONHAND = AttributesEnum.QuantityOnHand.index();
    public static final int ORDERITEM = AttributesEnum.OrderItem.index();
    public static final int PRODUCTCATEGORYBASE = AttributesEnum.ProductCategoryBase.index();
    public static final int PRODUCTCATEGORYBASE1 = AttributesEnum.ProductCategoryBase1.index();
//    public static final int PRODUCTIMAGE = AttributesEnum.ProductImage.index();
    public static final int PRODUCTTRANSLATION = AttributesEnum.ProductTranslation.index();
    public static final int SUPPLIER = AttributesEnum.Supplier.index();
    public static final int WAREHOUSESTOCKLEVEL = AttributesEnum.WarehouseStockLevel.index();
    public static final int LOOKUPSBASEVO = AttributesEnum.LookupsBaseVO.index();

    /**This is the default constructor (do not remove).
     */
    public ProductBaseEOImpl() {
    }


    /**
     * @return the definition object for this instance class.
     */
    public static synchronized EntityDefImpl getDefinitionObject() {
        if (mDefinitionObject == null) {
            mDefinitionObject = EntityDefImpl.findDefObject("oracle.fodemo.storefront.entities.ProductBaseEO");
        }
        return mDefinitionObject;
    }

    /**Gets the attribute value for ProductId, using the alias name ProductId.
     * @return
     */
    public DBSequence getProductId() {
        return (DBSequence)getAttributeInternal(PRODUCTID);
    }

    /**Sets <code>value</code> as the attribute value for ProductId.
     * @param value
     */
    public void setProductId(DBSequence value) {
        setAttributeInternal(PRODUCTID, value);
    }

    /**Gets the attribute value for SupplierId, using the alias name SupplierId.
     * @return
     */
    public Number getSupplierId() {
        return (Number)getAttributeInternal(SUPPLIERID);
    }

    /**Sets <code>value</code> as the attribute value for SupplierId.
     * @param value
     */
    public void setSupplierId(Number value) {
        setAttributeInternal(SUPPLIERID, value);
    }

    /**Gets the attribute value for CategoryId, using the alias name CategoryId.
     * @return
     */
    public Number getCategoryId() {
        return (Number)getAttributeInternal(CATEGORYID);
    }

    /**Sets <code>value</code> as the attribute value for CategoryId.
     * @param value
     */
    public void setCategoryId(Number value) {
        setAttributeInternal(CATEGORYID, value);
    }

    /**Gets the attribute value for ProductName, using the alias name ProductName.
     * @return
     */
    public String getProductName() {
        return (String)getAttributeInternal(PRODUCTNAME);
    }

    /**Sets <code>value</code> as the attribute value for ProductName.
     * @param value
     */
    public void setProductName(String value) {
        setAttributeInternal(PRODUCTNAME, value);
    }

    /**Gets the attribute value for ProductStatus, using the alias name ProductStatus.
     * @return
     */
    public String getProductStatus() {
        return (String)getAttributeInternal(PRODUCTSTATUS);
    }

    /**Sets <code>value</code> as the attribute value for ProductStatus.
     * @param value
     */
    public void setProductStatus(String value) {
        setAttributeInternal(PRODUCTSTATUS, value);
    }

    /**Gets the attribute value for CostPrice, using the alias name CostPrice.
     * @return
     */
    public Number getCostPrice() {
        return (Number)getAttributeInternal(COSTPRICE);
    }

    /**Sets <code>value</code> as the attribute value for CostPrice.
     * @param value
     */
    public void setCostPrice(Number value) {
        setAttributeInternal(COSTPRICE, value);
    }

    /**Gets the attribute value for ListPrice, using the alias name ListPrice.
     * @return
     */
    public Number getListPrice() {
        return (Number)getAttributeInternal(LISTPRICE);
    }

    /**Sets <code>value</code> as the attribute value for ListPrice.
     * @param value
     */
    public void setListPrice(Number value) {
        setAttributeInternal(LISTPRICE, value);
    }

    /**Gets the attribute value for MinPrice, using the alias name MinPrice.
     * @return
     */
    public Number getMinPrice() {
        return (Number)getAttributeInternal(MINPRICE);
    }

    /**Sets <code>value</code> as the attribute value for MinPrice.
     * @param value
     */
    public void setMinPrice(Number value) {
        setAttributeInternal(MINPRICE, value);
    }

    /**Gets the attribute value for WarrantyPeriodMonths, using the alias name WarrantyPeriodMonths.
     * @return
     */
    public Number getWarrantyPeriodMonths() {
        return (Number)getAttributeInternal(WARRANTYPERIODMONTHS);
    }

    /**Sets <code>value</code> as the attribute value for WarrantyPeriodMonths.
     * @param value
     */
    public void setWarrantyPeriodMonths(Number value) {
        setAttributeInternal(WARRANTYPERIODMONTHS, value);
    }

    /**Gets the attribute value for ShippingClassCode, using the alias name ShippingClassCode.
     * @return
     */
    public String getShippingClassCode() {
        return (String)getAttributeInternal(SHIPPINGCLASSCODE);
    }

    /**Sets <code>value</code> as the attribute value for ShippingClassCode.
     * @param value
     */
    public void setShippingClassCode(String value) {
        setAttributeInternal(SHIPPINGCLASSCODE, value);
    }

    /**Gets the attribute value for ExternalUrl, using the alias name ExternalUrl.
     * @return
     */
    public String getExternalUrl() {
        return (String)getAttributeInternal(EXTERNALURL);
    }

    /**Sets <code>value</code> as the attribute value for ExternalUrl.
     * @param value
     */
    public void setExternalUrl(String value) {
        setAttributeInternal(EXTERNALURL, value);
    }

    /**Gets the attribute value for AttributeCategory, using the alias name AttributeCategory.
     * @return
     */
    public String getAttributeCategory() {
        return (String)getAttributeInternal(ATTRIBUTECATEGORY);
    }

    /**Sets <code>value</code> as the attribute value for AttributeCategory.
     * @param value
     */
    public void setAttributeCategory(String value) {
        setAttributeInternal(ATTRIBUTECATEGORY, value);
    }

    /**Gets the attribute value for Attribute1, using the alias name Attribute1.
     * @return
     */
    public String getAttribute1() {
        return (String)getAttributeInternal(ATTRIBUTE1);
    }

    /**Sets <code>value</code> as the attribute value for Attribute1.
     * @param value
     */
    public void setAttribute1(String value) {
        setAttributeInternal(ATTRIBUTE1, value);
    }

    /**Gets the attribute value for Attribute2, using the alias name Attribute2.
     * @return
     */
    public String getAttribute2() {
        return (String)getAttributeInternal(ATTRIBUTE2);
    }

    /**Sets <code>value</code> as the attribute value for Attribute2.
     * @param value
     */
    public void setAttribute2(String value) {
        setAttributeInternal(ATTRIBUTE2, value);
    }

    /**Gets the attribute value for Attribute3, using the alias name Attribute3.
     * @return
     */
    public String getAttribute3() {
        return (String)getAttributeInternal(ATTRIBUTE3);
    }

    /**Sets <code>value</code> as the attribute value for Attribute3.
     * @param value
     */
    public void setAttribute3(String value) {
        setAttributeInternal(ATTRIBUTE3, value);
    }

    /**Gets the attribute value for Attribute4, using the alias name Attribute4.
     * @return
     */
    public String getAttribute4() {
        return (String)getAttributeInternal(ATTRIBUTE4);
    }

    /**Sets <code>value</code> as the attribute value for Attribute4.
     * @param value
     */
    public void setAttribute4(String value) {
        setAttributeInternal(ATTRIBUTE4, value);
    }

    /**Gets the attribute value for Attribute5, using the alias name Attribute5.
     * @return
     */
    public String getAttribute5() {
        return (String)getAttributeInternal(ATTRIBUTE5);
    }

    /**Sets <code>value</code> as the attribute value for Attribute5.
     * @param value
     */
    public void setAttribute5(String value) {
        setAttributeInternal(ATTRIBUTE5, value);
    }

    /**Gets the attribute value for Attribute6, using the alias name Attribute6.
     * @return
     */
    public String getAttribute6() {
        return (String)getAttributeInternal(ATTRIBUTE6);
    }

    /**Sets <code>value</code> as the attribute value for Attribute6.
     * @param value
     */
    public void setAttribute6(String value) {
        setAttributeInternal(ATTRIBUTE6, value);
    }

    /**Gets the attribute value for Attribute7, using the alias name Attribute7.
     * @return
     */
    public String getAttribute7() {
        return (String)getAttributeInternal(ATTRIBUTE7);
    }

    /**Sets <code>value</code> as the attribute value for Attribute7.
     * @param value
     */
    public void setAttribute7(String value) {
        setAttributeInternal(ATTRIBUTE7, value);
    }

    /**Gets the attribute value for Attribute8, using the alias name Attribute8.
     * @return
     */
    public String getAttribute8() {
        return (String)getAttributeInternal(ATTRIBUTE8);
    }

    /**Sets <code>value</code> as the attribute value for Attribute8.
     * @param value
     */
    public void setAttribute8(String value) {
        setAttributeInternal(ATTRIBUTE8, value);
    }

    /**Gets the attribute value for Attribute9, using the alias name Attribute9.
     * @return
     */
    public String getAttribute9() {
        return (String)getAttributeInternal(ATTRIBUTE9);
    }

    /**Sets <code>value</code> as the attribute value for Attribute9.
     * @param value
     */
    public void setAttribute9(String value) {
        setAttributeInternal(ATTRIBUTE9, value);
    }

    /**Gets the attribute value for Attribute10, using the alias name Attribute10.
     * @return
     */
    public String getAttribute10() {
        return (String)getAttributeInternal(ATTRIBUTE10);
    }

    /**Sets <code>value</code> as the attribute value for Attribute10.
     * @param value
     */
    public void setAttribute10(String value) {
        setAttributeInternal(ATTRIBUTE10, value);
    }

    /**Gets the attribute value for Attribute11, using the alias name Attribute11.
     * @return
     */
    public String getAttribute11() {
        return (String)getAttributeInternal(ATTRIBUTE11);
    }

    /**Sets <code>value</code> as the attribute value for Attribute11.
     * @param value
     */
    public void setAttribute11(String value) {
        setAttributeInternal(ATTRIBUTE11, value);
    }

    /**Gets the attribute value for Attribute12, using the alias name Attribute12.
     * @return
     */
    public String getAttribute12() {
        return (String)getAttributeInternal(ATTRIBUTE12);
    }

    /**Sets <code>value</code> as the attribute value for Attribute12.
     * @param value
     */
    public void setAttribute12(String value) {
        setAttributeInternal(ATTRIBUTE12, value);
    }

    /**Gets the attribute value for Attribute13, using the alias name Attribute13.
     * @return
     */
    public String getAttribute13() {
        return (String)getAttributeInternal(ATTRIBUTE13);
    }

    /**Sets <code>value</code> as the attribute value for Attribute13.
     * @param value
     */
    public void setAttribute13(String value) {
        setAttributeInternal(ATTRIBUTE13, value);
    }

    /**Gets the attribute value for Attribute14, using the alias name Attribute14.
     * @return
     */
    public String getAttribute14() {
        return (String)getAttributeInternal(ATTRIBUTE14);
    }

    /**Sets <code>value</code> as the attribute value for Attribute14.
     * @param value
     */
    public void setAttribute14(String value) {
        setAttributeInternal(ATTRIBUTE14, value);
    }

    /**Gets the attribute value for Attribute15, using the alias name Attribute15.
     * @return
     */
    public String getAttribute15() {
        return (String)getAttributeInternal(ATTRIBUTE15);
    }

    /**Sets <code>value</code> as the attribute value for Attribute15.
     * @param value
     */
    public void setAttribute15(String value) {
        setAttributeInternal(ATTRIBUTE15, value);
    }

    /**Gets the attribute value for CreatedBy, using the alias name CreatedBy.
     * @return
     */
    public String getCreatedBy() {
        return (String)getAttributeInternal(CREATEDBY);
    }

    /**Sets <code>value</code> as the attribute value for CreatedBy.
     * @param value
     */
    public void setCreatedBy(String value) {
        setAttributeInternal(CREATEDBY, value);
    }

    /**Gets the attribute value for CreationDate, using the alias name CreationDate.
     * @return
     */
    public Date getCreationDate() {
        return (Date)getAttributeInternal(CREATIONDATE);
    }

    /**Gets the attribute value for LastUpdatedBy, using the alias name LastUpdatedBy.
     * @return
     */
    public String getLastUpdatedBy() {
        return (String)getAttributeInternal(LASTUPDATEDBY);
    }

    /**Sets <code>value</code> as the attribute value for LastUpdatedBy.
     * @param value
     */
    public void setLastUpdatedBy(String value) {
        setAttributeInternal(LASTUPDATEDBY, value);
    }

    /**Gets the attribute value for LastUpdateDate, using the alias name LastUpdateDate.
     * @return
     */
    public Date getLastUpdateDate() {
        return (Date)getAttributeInternal(LASTUPDATEDATE);
    }

    /**Gets the attribute value for ObjectVersionId, using the alias name ObjectVersionId.
     * @return
     */
    public Number getObjectVersionId() {
        return (Number)getAttributeInternal(OBJECTVERSIONID);
    }

    /**Gets the attribute value for QuantityOnHand, using the alias name QuantityOnHand.
     * @return
     */
    public Integer getQuantityOnHand() {
        return (Integer)getAttributeInternal(QUANTITYONHAND);
    }

    /**Sets <code>value</code> as the attribute value for QuantityOnHand.
     * @param value
     */
    public void setQuantityOnHand(Integer value) {
        setAttributeInternal(QUANTITYONHAND, value);
    }

    /**getAttrInvokeAccessor: generated method. Do not modify.
     * @param index
     * @param attrDef
     * @return
     * @throws Exception
     */
    protected Object getAttrInvokeAccessor(int index, 
                                           AttributeDefImpl attrDef) throws Exception {
        if ((index >= AttributesEnum.firstIndex()) && (index < AttributesEnum.count())) {
            return AttributesEnum.staticValues()[index - AttributesEnum.firstIndex()].get(this);
        }
        return super.getAttrInvokeAccessor(index, attrDef);
    }

    /**setAttrInvokeAccessor: generated method. Do not modify.
     * @param index
     * @param value
     * @param attrDef
     * @throws Exception
     */
    protected void setAttrInvokeAccessor(int index, Object value, 
                                         AttributeDefImpl attrDef) throws Exception {
        if ((index >= AttributesEnum.firstIndex()) && (index < AttributesEnum.count())) {
            AttributesEnum.staticValues()[index - AttributesEnum.firstIndex()].put(this, value);
            return;
        }
        super.setAttrInvokeAccessor(index, value, attrDef);
    }

    /**Gets the associated entity oracle.jbo.RowIterator.
     * @return
     */
    public RowIterator getOrderItem() {
        return (RowIterator)getAttributeInternal(ORDERITEM);
    }

    /**Gets the associated entity oracle.jbo.server.EntityImpl.
     * @return
     */
    public EntityImpl getProductCategoryBase() {
        return (EntityImpl)getAttributeInternal(PRODUCTCATEGORYBASE);
    }

    /**Sets <code>value</code> as the associated entity oracle.jbo.server.EntityImpl.
     * @param value
     */
    public void setProductCategoryBase(EntityImpl value) {
        setAttributeInternal(PRODUCTCATEGORYBASE, value);
    }

    /**Gets the associated entity oracle.jbo.RowIterator.
     * @return
     */
    public RowIterator getProductCategoryBase1() {
        return (RowIterator)getAttributeInternal(PRODUCTCATEGORYBASE1);
    }

//    /**Gets the associated entity oracle.jbo.RowIterator.
//     */
//    public RowIterator getProductImage() {
//        return (RowIterator)getAttributeInternal(PRODUCTIMAGE);
//    }

    /**Gets the associated entity oracle.jbo.RowIterator.
     * @return
     */
    public RowIterator getProductTranslation() {
        return (RowIterator)getAttributeInternal(PRODUCTTRANSLATION);
    }

    /**Gets the associated entity oracle.jbo.server.EntityImpl.
     * @return
     */
    public EntityImpl getSupplier() {
        return (EntityImpl)getAttributeInternal(SUPPLIER);
    }

    /**Sets <code>value</code> as the associated entity oracle.jbo.server.EntityImpl.
     * @param value
     */
    public void setSupplier(EntityImpl value) {
        setAttributeInternal(SUPPLIER, value);
    }

    /**Gets the associated entity oracle.jbo.RowIterator.
     * @return
     */
    public RowIterator getWarehouseStockLevel() {
        return (RowIterator)getAttributeInternal(WAREHOUSESTOCKLEVEL);
    }

    /**Gets the view accessor <code>RowSet</code> LookupsBaseVO.
     * @return
     */
    public RowSet getLookupsBaseVO() {
        return (RowSet)getAttributeInternal(LOOKUPSBASEVO);
    }

    /**
     * @param productId key constituent

     * @return a Key object based on given key constituents.
     */
    public static Key createPrimaryKey(DBSequence productId) {
        return new Key(new Object[]{productId});
    }

}
