01: /*
02: * <copyright>
03: *
04: * Copyright 2000-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.tools.csmart.society;
27:
28: import org.cougaar.tools.csmart.core.property.ModifiableComponent;
29: import org.cougaar.tools.csmart.core.property.Property;
30:
31: /**
32: * A simple interface implemented by configurable components
33: * that represent generic components. <br>
34: */
35: public interface MiscComponent extends ModifiableComponent {
36:
37: /**
38: * Get the label for folders in the UI and containers
39: *
40: * @return a <code>String</code> label
41: */
42: String getFolderLabel();
43:
44: /**
45: * Gets the classname for this component
46: *
47: * @return a <code>String</code> value
48: */
49: String getComponentClassName();
50:
51: /**
52: * Get the type of this Component, from the property. If it is not
53: * one of the values in ComponentData, it should be the full
54: * insertion point.
55: *
56: * @return a <code>String</code> type from the constants in ComponentData
57: */
58: String getComponentType();
59:
60: /**
61: * Allow outside users to set the Component type to one of the
62: * values in the constants in ComponentData. If not one
63: * of those values, it should be a full insertion point.
64: *
65: * @param type a <code>String</code> component type or insertion point
66: */
67: void setComponentType(String type);
68:
69: /**
70: * Adds a Parameter to this component.
71: *
72: * @param param Unique Integer for this parameter
73: * @return a <code>Property</code> value
74: */
75: Property addParameter(int param);
76:
77: /**
78: * Adds a Parameter to this component
79: *
80: * @param param Unique Object for this parameter's value
81: * @return a <code>Property</code> value
82: */
83: Property addParameter(Object param);
84:
85: /**
86: * Add a parameter that is based on some other property (typically a
87: * property of our parnt.
88: **/
89: Property addParameter(Property prop);
90: }
|