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.logistics.ui.inventory.data;
028:
029: import java.io.Writer;
030: import java.io.IOException;
031:
032: import java.util.ArrayList;
033: import org.cougaar.logistics.plugin.inventory.LogisticsInventoryFormatter;
034:
035: /**
036: * <pre>
037: *
038: * The InventoryScheduleHeader holds the schedule of all the
039: * elements in a given schedule
040: *
041: **/
042:
043: public class InventoryScheduleHeader {
044:
045: public final static int TASKS_TYPE = 1;
046: public final static int PROJ_TASKS_TYPE = 2;
047: public final static int ARS_TYPE = 3;
048: public final static int PROJ_ARS_TYPE = 4;
049: public final static int LEVELS_TYPE = 5;
050:
051: protected String name;
052: protected ArrayList schedule;
053: protected int type;
054:
055: public InventoryScheduleHeader(String aName, int aType,
056: ArrayList aSchedule) {
057: name = aName;
058: schedule = aSchedule;
059: type = aType;
060: }
061:
062: public InventoryScheduleHeader(String aName, String aType,
063: ArrayList aSchedule) {
064: this (aName, getTypeInt(aType), aSchedule);
065: }
066:
067: public String getName() {
068: return name;
069: }
070:
071: public ArrayList getSchedule() {
072: return schedule;
073: }
074:
075: public int getType() {
076: return type;
077: }
078:
079: public static int getTypeInt(String aType) {
080: if (aType.equals(LogisticsInventoryFormatter.TASKS_TYPE))
081: return InventoryScheduleHeader.TASKS_TYPE;
082: if (aType.equals(LogisticsInventoryFormatter.PROJ_TASKS_TYPE))
083: return InventoryScheduleHeader.PROJ_TASKS_TYPE;
084: if (aType.equals(LogisticsInventoryFormatter.ARS_TYPE))
085: return InventoryScheduleHeader.ARS_TYPE;
086: if (aType.equals(LogisticsInventoryFormatter.PROJ_ARS_TYPE))
087: return InventoryScheduleHeader.PROJ_ARS_TYPE;
088: if (aType.equals(LogisticsInventoryFormatter.LEVELS_TYPE))
089: return InventoryScheduleHeader.LEVELS_TYPE;
090: return -1;
091: }
092:
093: public static String getTypeString(int aType) {
094: switch (aType) {
095: case InventoryScheduleHeader.TASKS_TYPE:
096: return LogisticsInventoryFormatter.TASKS_TYPE;
097: case InventoryScheduleHeader.PROJ_TASKS_TYPE:
098: return LogisticsInventoryFormatter.PROJ_TASKS_TYPE;
099: case InventoryScheduleHeader.ARS_TYPE:
100: return LogisticsInventoryFormatter.ARS_TYPE;
101: case InventoryScheduleHeader.PROJ_ARS_TYPE:
102: return LogisticsInventoryFormatter.PROJ_ARS_TYPE;
103: case InventoryScheduleHeader.LEVELS_TYPE:
104: return LogisticsInventoryFormatter.LEVELS_TYPE;
105: default:
106: return "Unknown Type";
107: }
108: }
109:
110: public void writeHRString(Writer writer) throws IOException {
111: writer.write("<" + getName() + " type="
112: + getTypeString(getType()) + ">\n");
113: for (int i = 0; i < schedule.size(); i++) {
114: InventoryScheduleElement e = (InventoryScheduleElement) schedule
115: .get(i);
116: if (i == 0) {
117: writer.write(e.getHRHeader() + "\n");
118: }
119: writer.write(e.toHRString() + "\n");
120: }
121: writer.write("</" + getName() + ">\n");
122: }
123: }
|