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: package org.cougaar.glm.execution.common;
27:
28: import java.io.IOException;
29:
30: /**
31: * This is the interface that all objects passed between the event
32: * generator and a cluster must implement. The methods insure that the
33: * can be written to a LineWriter and recreated from a LineReader. In
34: * addition, all classes implementing this interface must have a no
35: * arg constructor.
36: **/
37: public interface EGObject {
38: Class[] egObjectClasses = { ExecutionTimeStatus.class,
39: EGObjectArray.class, InventoryReport.class,
40: InventoryReportSchedule.class, ReportSchedule.class,
41: ExecutionWatcherParameters.class,
42: InventoryReportParameters.class,
43: FailureConsumptionRate.class,
44: FailureConsumptionReport.class, TaskEventReport.class,
45: ExecutionRate.class, SetExecutionTime.class,
46: InventoryReportSchedule.Rescind.class,
47: FailureConsumptionRate.Rescind.class,
48: TaskEventReport.Rescind.class, ConstraintElement.class,
49: TaskConstraintsRequest.class, };
50:
51: int getClassIndex();
52:
53: void write(LineWriter writer) throws IOException;
54:
55: void read(LineReader reader) throws IOException;
56: }
|