001: /*
002: * <copyright>
003: *
004: * Copyright 1997-2004 BBNT Solutions, LLC
005: * under sponsorship of the Defense Advanced Research Projects
006: * Agency (DARPA).
007: *
008: * You can redistribute this software and/or modify it under the
009: * terms of the Cougaar Open Source License as published on the
010: * Cougaar Open Source Website (www.cougaar.org).
011: *
012: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
013: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
014: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
015: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
016: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
017: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
018: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
019: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
020: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
021: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
022: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
023: *
024: * </copyright>
025: */
026:
027: package org.cougaar.planning.ldm.plan;
028:
029: import java.io.IOException;
030: import java.io.ObjectInputStream;
031: import java.io.ObjectOutputStream;
032:
033: import org.cougaar.core.util.UID;
034:
035: /** An implementation of org.cougaar.TaskResponse
036: */
037: public class TaskResponseImpl extends PlanningDirectiveImpl implements
038: TaskResponse, NewTaskResponse {
039:
040: private UID taskUID;
041: private UID childUID;
042:
043: //no-arg constructor
044: public TaskResponseImpl() {
045: super ();
046: }
047:
048: //constructor that takes the Task and Plan
049: public TaskResponseImpl(Task t, Plan plan) {
050: taskUID = t.getUID();
051: setPlan(plan);
052: }
053:
054: public TaskResponseImpl(UID tuid, Plan plan) {
055: taskUID = tuid;
056: setPlan(plan);
057: }
058:
059: /** implementation of the TaskResponse interface */
060:
061: /**
062: * Returns the task UID the notification is in reference to.
063: * @return Task
064: **/
065:
066: public UID getTaskUID() {
067: return taskUID;
068: }
069:
070: /** Get the child task's UID that was disposed. It's parent task is getTask();
071: * Useful for keeping track of which subtask of an Expansion caused
072: * the re-aggregation of the Expansion's reported allocationresult.
073: * @return UID
074: */
075: public UID getChildTaskUID() {
076: return childUID;
077: }
078:
079: // implementation methods for the NewTaskResponse interface
080:
081: /**
082: * Sets the task the notification is in reference to.
083: * @param t
084: **/
085:
086: public void setTask(Task t) {
087: taskUID = t.getUID();
088: }
089:
090: public void setTaskUID(UID tuid) {
091: taskUID = tuid;
092: }
093:
094: /** Sets the child task's UID that was disposed. It's parent task is getTask();
095: * Useful for keeping track of which subtask of an Expansion caused
096: * the re-aggregation of the Expansion's reported allocationresult.
097: * @param thechildUID
098: */
099: public void setChildTaskUID(UID thechildUID) {
100: childUID = thechildUID;
101: }
102:
103: /** Always serialize Notifications with TaskProxy
104: */
105: private void writeObject(ObjectOutputStream stream)
106: throws IOException {
107: stream.defaultWriteObject();
108: }
109:
110: private void readObject(ObjectInputStream stream)
111: throws ClassNotFoundException, IOException {
112: stream.defaultReadObject();
113: }
114: }
|