001: /*
002: * Copyright (c) 2001 Silvere Martin-Michiellot All Rights Reserved.
003: *
004: * Silvere Martin-Michiellot grants you ("Licensee") a non-exclusive,
005: * royalty free, license to use, modify and redistribute this
006: * software in source and binary code form,
007: * provided that i) this copyright notice and license appear on all copies of
008: * the software; and ii) Licensee does not utilize the software in a manner
009: * which is disparaging to Silvere Martin-Michiellot.
010: *
011: * This software is provided "AS IS," without a warranty of any kind. ALL
012: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
013: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
014: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. Silvere Martin-Michiellot
015: * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
016: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
017: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
018: * Silvere Martin-Michiellot OR ITS LICENSORS BE LIABLE
019: * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
020: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
021: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
022: * OR INABILITY TO USE SOFTWARE, EVEN IF Silvere Martin-Michiellot HAS BEEN
023: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
024: *
025: * This software is not designed or intended for use in on-line control of
026: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
027: * the design, construction, operation or maintenance of any nuclear
028: * facility. Licensee represents and warrants that it will not use or
029: * redistribute the Software for such purposes.
030: *
031: * @Author: Silvere Martin-Michiellot
032: *
033: */
034:
035: package com.db.server;
036:
037: import java.lang.IllegalArgumentException;
038: import java.util.Vector;
039: import java.util.Date;
040:
041: /**
042: * Used by the pooling system
043: */
044:
045: public class TaggedVirtualElement extends Object {
046:
047: private VirtualElement virtualElement;
048: private Avatar avatar;
049: private double price;
050: private String currency;
051: private Date date;
052:
053: private final static long END_OF_TIME = Long.MAX_VALUE;
054:
055: public TaggedVirtualElement(VirtualElement virtualElement,
056: Avatar avatar) {
057:
058: if ((virtualElement != null) && (avatar != null)
059: && (date != null)) {
060: this .virtualElement = virtualElement;
061: this .avatar = avatar;
062: this .price = virtualElement.getPrice();
063: this .currency = virtualElement.getCurrency();
064: this .date = new Date(TaggedVirtualElement.END_OF_TIME);
065: } else {
066: throw new java.lang.IllegalArgumentException(
067: "A TaggedVirtualElement must have a valid virtualElement and a valid avatar.");
068: }
069:
070: }
071:
072: public TaggedVirtualElement(VirtualElement virtualElement,
073: Avatar avatar, Date date) {
074:
075: if ((virtualElement != null) && (avatar != null)
076: && (date != null)) {
077: this .virtualElement = virtualElement;
078: this .avatar = avatar;
079: this .price = virtualElement.getPrice();
080: this .currency = virtualElement.getCurrency();
081: this .date = date;
082: } else {
083: throw new java.lang.IllegalArgumentException(
084: "A TaggedVirtualElement must have a valid virtualElement and a valid avatar.");
085: }
086:
087: }
088:
089: public TaggedVirtualElement(VirtualElement virtualElement,
090: Avatar avatar, double price, String currency, Date date) {
091:
092: if ((virtualElement != null) && (avatar != null)
093: && (price >= 0) && (currency != null) && (date != null)) {
094: this .virtualElement = virtualElement;
095: this .avatar = avatar;
096: this .price = price;
097: this .currency = currency;
098: this .date = date;
099: } else {
100: throw new java.lang.IllegalArgumentException(
101: "A TaggedVirtualElement must have a valid virtualElement and a valid avatar.");
102: }
103:
104: }
105:
106: public VirtualElement getVirtualElement() {
107:
108: return this .virtualElement;
109:
110: }
111:
112: public Avatar getAvatar() {
113:
114: return this .avatar;
115:
116: }
117:
118: public double getPrice() {
119:
120: return this .price;
121:
122: }
123:
124: public String getCurrency() {
125:
126: return this .currency;
127:
128: }
129:
130: public Date getDate() {
131:
132: return this.date;
133:
134: }
135:
136: }
|