01: /*
02: * <copyright>
03: *
04: * Copyright 1997-2004 BBNT Solutions, LLC
05: * under sponsorship of the Defense Advanced Research Projects
06: * Agency (DARPA).
07: *
08: * You can redistribute this software and/or modify it under the
09: * terms of the Cougaar Open Source License as published on the
10: * Cougaar Open Source Website (www.cougaar.org).
11: *
12: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
13: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
14: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
15: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
16: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23: *
24: * </copyright>
25: */
26:
27: package org.cougaar.planning.ldm.plan;
28:
29: import java.io.IOException;
30: import java.io.ObjectInputStream;
31: import java.io.ObjectOutputStream;
32:
33: import org.cougaar.core.util.UID;
34:
35: /** An implementation of org.cougaar.Notification
36: */
37: public class NotificationImpl extends TaskResponseImpl implements
38: Notification, NewNotification {
39:
40: private AllocationResult allocresult;
41:
42: //no-arg constructor
43: public NotificationImpl() {
44: super ();
45: }
46:
47: //constructor that takes the Task, AllocationResult, and Plan
48: public NotificationImpl(Task t, AllocationResult ar, Plan plan) {
49: super (t, plan);
50: allocresult = ar;
51: }
52:
53: public NotificationImpl(UID tuid, AllocationResult ar, Plan plan) {
54: super (tuid, plan);
55: allocresult = ar;
56: }
57:
58: /** implementation of the Notification interface */
59:
60: /**
61: * Returns the estimated allocation result from below
62: * @return AllocationResult
63: **/
64: public AllocationResult getAllocationResult() {
65: return allocresult;
66: }
67:
68: // implementation methods for the NewNotification interface
69:
70: /** Sets the combined estiamted allocationresult from below
71: * @param ar - The AllocationResult for the Task.
72: */
73: public void setAllocationResult(AllocationResult ar) {
74: allocresult = ar;
75: }
76:
77: /** Always serialize Notifications with TaskProxy
78: */
79: private void writeObject(ObjectOutputStream stream)
80: throws IOException {
81: stream.defaultWriteObject();
82: }
83:
84: private void readObject(ObjectInputStream stream)
85: throws ClassNotFoundException, IOException {
86: stream.defaultReadObject();
87: }
88:
89: public String toString() {
90: return "<Notification for child " + getChildTaskUID() + " of "
91: + getTaskUID() + ">";
92: }
93: }
|