001: /*
002: * Copyright (c) 1999-2001 Lutris Technologies, Inc. All Rights
003: * Reserved.
004: *
005: * This source code file is distributed by Lutris Technologies, Inc. for
006: * use only by licensed users of product(s) that include this source
007: * file. Use of this source file or the software that uses it is covered
008: * by the terms and conditions of the Lutris Enhydra Development License
009: * Agreement included with this product.
010: *
011: * This Software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
012: * ANY KIND, either express or implied. See the License for the specific terms
013: * governing rights and limitations under the License.
014: *
015: * Contributor(s):
016: *
017: * $Id: DeliveryManager.java,v 1.1 2004/05/19 18:15:19
018: */
019: package com.lutris.airsent.spec.delivery;
020:
021: import com.lutris.airsent.spec.AirSentException;
022:
023: import com.lutris.airsent.spec.customer.Customer;
024: import com.lutris.airsent.spec.messenger.Messenger;
025:
026: /**
027: * DeliveryFactory Interface declaration
028: */
029: public interface DeliveryManager {
030:
031: /**
032: * Create a new delivery.
033: *
034: * @param customer customer associated with the order
035: * @return delivey object
036: * @exception if an error occurs
037: */
038: public Delivery create(Customer customer) throws AirSentException;
039:
040: /**
041: * Create a delivery based on an order.
042: *
043: * @return delivey object
044: * @exception if an error occurs
045: * @exception if business rules are violated
046: */
047: public Delivery create(Customer customer, OrderForm orderForm)
048: throws AirSentException;
049:
050: /**
051: * Gets the last update time.
052: *
053: * @param browserState
054: * @param wait
055: * @return update time
056: * @exception if an error occurs
057: */
058: public long getUpdate(long browserState, long wait)
059: throws AirSentException;
060:
061: /**
062: * Find deliver by database id
063: *
064: * @param handle database id
065: * @return delivery
066: * @exception if an error occurs
067: */
068: public Delivery findByHandle(String handle) throws AirSentException;
069:
070: /**
071: * Find deliveries associated with a given customer
072: *
073: * @param customer the customer
074: * @return delivery
075: * @exception if an error occurs
076: */
077: public Delivery[] findByCustomer(Customer customer)
078: throws AirSentException;
079:
080: /**
081: * Find deliveries by invoice
082: *
083: * @param invoice invoice id
084: * @return delivery
085: * @exception if an error occurs
086: */
087: public Delivery findByInvoice(int invoice) throws AirSentException;
088:
089: /**
090: * find all delivery objects not delivered
091: *
092: * @return delivery objects
093: * @exception if an error occurs
094: */
095: public Delivery[] findUndelivered() throws AirSentException;
096:
097: /**
098: * Find all the deliveries.
099: *
100: * @return delivery objects
101: * @exception if an error occurs
102: */
103: public Delivery[] findAll() throws AirSentException;
104:
105: /**
106: * Find all the deliveries after a given time.
107: *
108: * @param data time
109: * @return delivery objects
110: * @exception if an error occurs
111: */
112: public Delivery[] findAllAfter(long date) throws AirSentException;
113:
114: /**
115: * Find the specified number the deliveries.
116: *
117: * @param subset desired number of deliveries
118: * @return delivery objects
119: * @exception if an error occurs
120: */
121: public Delivery[] findSubset(int subset) throws AirSentException;
122:
123: /**
124: * find all deliveries associated with a given messenger
125: *
126: * @param messenger messenger
127: * @return delivery objects
128: * @exception if an error occurs
129: */
130: public Delivery[] findByMessenger(Messenger messenger)
131: throws AirSentException;
132:
133: }
|