package com.cordys.cpc.wsappsserver.sources.application.dbmap; import com.cordys.cpc.bsf.busobject.BusObjectConfig; import com.cordys.cpc.bsf.busobject.BusObjectIterator; import com.cordys.cpc.bsf.busobject.QueryObject; import com.cordys.cpc.bsf.classinfo.ClassInfo; import com.cordys.cpc.bsf.classinfo.RelationInfo_FK; import com.cordys.cpc.bsf.query.Cursor; import com.cordys.cpc.wsappsserver.sources.application.Products; public abstract class MapOrderDetailsBase extends com.cordys.cpc.bsf.busobject.StateBusObject { // tags used in the XML document public final static String ATTR_MapOrderID = "MapOrderID"; public final static String ATTR_MapProductID = "MapProductID"; public final static String ATTR_MapUnitPrice = "MapUnitPrice"; public final static String ATTR_MapQuantity = "MapQuantity"; public final static String ATTR_MapDiscount = "MapDiscount"; private final static String REL_OrderIDObject = "FK:OrderDetails[OrderID]:Orders[OrderID]"; private final static String REL_ProductIDObject = "FK:OrderDetails[ProductID]:Products[ProductID]"; private static ClassInfo s_classInfo = null; public static ClassInfo _getClassInfo() { if ( s_classInfo == null ) { s_classInfo = newClassInfo(MapOrderDetails.class); s_classInfo.setUIDElements(new String[]{ATTR_MapOrderID, ATTR_MapProductID}); { // relation OrderIDObject (FK:OrderDetails[OrderID]:Orders[OrderID]) RelationInfo_FK ri = new RelationInfo_FK(REL_OrderIDObject); ri.setName("OrderIDObject"); ri.setLocalAttributes(new String[]{"MapOrderID"}); ri.setLocalIsPK(false); ri.setRelatedClassName("application.Orders"); ri.setRelatedAttributes(new String[]{"MapOrderID"}); ri.setRelatedIdentifier("FK:Orders[OrderID]:OrderDetails[OrderID]"); ri.setLoadMethod("loadMapOrderIDObject"); s_classInfo.addRelationInfo(ri); } { // relation ProductIDObject (FK:OrderDetails[ProductID]:Products[ProductID]) RelationInfo_FK ri = new RelationInfo_FK(REL_ProductIDObject); ri.setName("ProductIDObject"); ri.setLocalAttributes(new String[]{"ProductID"}); ri.setLocalIsPK(false); ri.setRelatedClassName("application.Products"); ri.setRelatedAttributes(new String[]{"ProductID"}); ri.setRelatedIdentifier("FK:Products[ProductID]:OrderDetails[ProductID]"); ri.setLoadMethod("loadMapProductIDObject"); s_classInfo.addRelationInfo(ri); } } return s_classInfo; } protected static final String[][] DB_MAPPING = new String[][]{ {"OrderID", "MapOrderID"}, {"ProductID", "MapProductID"}, {"UnitPrice", "MapUnitPrice"}, {"Quantity", "MapQuantity"}, {"Discount", "MapDiscount"}, }; public MapOrderDetailsBase(BusObjectConfig config) { super(config); } public int getMapOrderID() { return getIntProperty(ATTR_MapOrderID); } public void setMapOrderID(int value) { String[] relations = new String[]{REL_OrderIDObject}; this.updateSingleRelations(relations, false); setProperty(ATTR_MapOrderID, value, 0); this.updateSingleRelations(relations, true); } public int getMapProductID() { return getIntProperty(ATTR_MapProductID); } public void setMapProductID(int value) { String[] relations = new String[]{REL_ProductIDObject}; this.updateSingleRelations(relations, false); setProperty(ATTR_MapProductID, value, 0); this.updateSingleRelations(relations, true); } public long getMapUnitPrice() { return getLongProperty(ATTR_MapUnitPrice); } public void setMapUnitPrice(long value) { setProperty(ATTR_MapUnitPrice, value, 0); } public short getMapQuantity() { return getShortProperty(ATTR_MapQuantity); } public void setMapQuantity(short value) { setProperty(ATTR_MapQuantity, value, 0); } public float getMapDiscount() { return getFloatProperty(ATTR_MapDiscount); } public void setMapDiscount(float value) { setProperty(ATTR_MapDiscount, value, 0); } public MapOrders loadMapOrderIDObject() { String queryText = "select * from Orders where OrderID = :OrderID"; QueryObject query = new QueryObject(queryText); query.addParameter("OrderID", "Orders.OrderID", QueryObject.PARAM_INT, new Integer(getMapOrderID())); query.setResultClass(MapOrders.class); return (MapOrders)query.getObject(); } public MapOrders getMapOrderIDObject() { return (MapOrders)getSingleRelationObject(REL_OrderIDObject); } public void setMapOrderIDObject(MapOrders a_Orders) { if (a_Orders == null) { this.setNull("OrderID"); } else { this.setMapOrderID(a_Orders.getMapOrderID()); } applyChanges(this); } public Products loadProductIDObject() { String queryText = "select * from Products where ProductID = :ProductID"; QueryObject query = new QueryObject(queryText); query.addParameter("ProductID", "Products.ProductID", QueryObject.PARAM_INT, new Integer(getMapProductID())); query.setResultClass(Products.class); return (Products)query.getObject(); } public Products getMapProductIDObject() { return (Products)getSingleRelationObject(REL_ProductIDObject); } public void setProductIDObject(Products a_Products) { if (a_Products == null) { this.setNull("ProductID"); } else { this.setMapProductID(a_Products.getProductID()); } applyChanges(this); } public void setNull(String element) { super.setNull(element); if (ATTR_MapOrderID.equals(element)) { this.updateSingleRelation(REL_OrderIDObject, false); } else if (ATTR_MapProductID.equals(element)) { this.updateSingleRelation(REL_ProductIDObject, false); } } public static MapOrderDetails getOrderDetailsObject(int OrderID, int ProductID) { String queryText = "select OrderID as MapOrderID, ProductID as MapProductID, UnitPrice as MapUnitPrice, Quantity as MapQuantity, Discount as MapDiscount from OrderDetails where OrderID = :OrderID and ProductID = :ProductID"; QueryObject query = new QueryObject(queryText); query.addParameter("OrderID", "OrderDetails.OrderID", QueryObject.PARAM_INT, new Integer(OrderID)); query.addParameter("ProductID", "OrderDetails.ProductID", QueryObject.PARAM_INT, new Integer(ProductID)); query.setResultClass(MapOrderDetails.class); return (MapOrderDetails)query.getObject(); } public static BusObjectIterator getOrderDetailsObjects(int fromOrderID, int toOrderID, int fromProductID, int toProductID) { String queryText = "select OrderID as MapOrderID, ProductID as MapProductID, UnitPrice as MapUnitPrice, Quantity as MapQuantity, Discount as MapDiscount from OrderDetails where OrderID between :fromOrderID and :toOrderID and ProductID between :fromProductID and :toProductID"; QueryObject query = new QueryObject(queryText); query.addParameter("fromOrderID", "OrderDetails.OrderID", QueryObject.PARAM_INT, new Integer(fromOrderID)); query.addParameter("toOrderID", "OrderDetails.OrderID", QueryObject.PARAM_INT, new Integer(toOrderID)); query.addParameter("fromProductID", "OrderDetails.ProductID", QueryObject.PARAM_INT, new Integer(fromProductID)); query.addParameter("toProductID", "OrderDetails.ProductID", QueryObject.PARAM_INT, new Integer(toProductID)); query.setResultClass(MapOrderDetails.class); return query.getObjects(); } public static BusObjectIterator getNextOrderDetailsObjects(int OrderID, int ProductID, Cursor cursor) { String queryText = "select OrderID as MapOrderID, ProductID as MapProductID, UnitPrice as MapUnitPrice, Quantity as MapQuantity, Discount as MapDiscount from OrderDetails where (OrderID > :OrderID) or (OrderID = :OrderID and ProductID > :ProductID) order by OrderID asc, ProductID asc"; QueryObject query = new QueryObject(queryText); query.addParameter("OrderID", "OrderDetails.OrderID", QueryObject.PARAM_INT, new Integer(OrderID)); query.addParameter("ProductID", "OrderDetails.ProductID", QueryObject.PARAM_INT, new Integer(ProductID)); query.setResultClass(MapOrderDetails.class); query.setCursor(cursor); return query.getObjects(); } public static BusObjectIterator getPreviousOrderDetailsObjects(int OrderID, int ProductID, Cursor cursor) { String queryText = "select OrderID as MapOrderID, ProductID as MapProductID, UnitPrice as MapUnitPrice, Quantity as MapQuantity, Discount as MapDiscount from OrderDetails where (OrderID < :OrderID) or (OrderID = :OrderID and ProductID < :ProductID) order by OrderID desc, ProductID desc"; QueryObject query = new QueryObject(queryText); query.addParameter("OrderID", "OrderDetails.OrderID", QueryObject.PARAM_INT, new Integer(OrderID)); query.addParameter("ProductID", "OrderDetails.ProductID", QueryObject.PARAM_INT, new Integer(ProductID)); query.setResultClass(MapOrderDetails.class); query.setCursor(cursor); return query.getObjects(); } }