001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package org.apache.commons.modeler.demo;
019:
020: import java.util.HashMap;
021:
022: /**
023: * <p>Sample managed object for the Modeler Demonstration Application,
024: * based on the Catalina architecture of Tomcat 4.</p>
025: *
026: * @author Craig R. McClanahan
027: * @version $Revision: 480402 $ $Date: 2006-11-29 04:43:23 +0000 (Wed, 29 Nov 2006) $
028: */
029:
030: public class Server {
031:
032: // ----------------------------------------------------------- Constructors
033:
034: /**
035: * Construct a default instance of this class.
036: */
037: public Server() {
038:
039: super ();
040:
041: }
042:
043: /**
044: * Construct a configured instance of this class.
045: *
046: * @param port Port number of this server
047: * @param shutdown Shutdown command of this server
048: */
049: public Server(int port, String shutdown) {
050:
051: super ();
052: setPort(port);
053: setShutdown(shutdown);
054:
055: }
056:
057: // ----------------------------------------------------- Instance Variables
058:
059: /**
060: * The set of services associated with this Server, keyed by name.
061: */
062: private HashMap services = new HashMap();
063:
064: // ------------------------------------------------------------- Properties
065:
066: /**
067: * The port number for our shutdown commands.
068: */
069: private int port = 8005;
070:
071: public int getPort() {
072: return (this .port);
073: }
074:
075: public void setPort(int port) {
076: this .port = port;
077: }
078:
079: /**
080: * The shutdown command password.
081: */
082: private String shutdown = "SHUTDOWN";
083:
084: public String getShutdown() {
085: return (this .shutdown);
086: }
087:
088: public void setShutdown(String shutdown) {
089: this .shutdown = shutdown;
090: }
091:
092: // --------------------------------------------------------- Public Methods
093:
094: /**
095: * Add a new Service to this Server.
096: *
097: * @param service The service to be added
098: */
099: public void addService(Service service) {
100:
101: services.put(service.getName(), service);
102:
103: }
104:
105: /**
106: * Find and return the specified Service associated with this Server.
107: *
108: * @param name Name of the requested service
109: */
110: public Service findService(String name) {
111:
112: return ((Service) services.get(name));
113:
114: }
115:
116: /**
117: * Find and return all Services associated with this Server.
118: */
119: public Service[] findServices() {
120:
121: Service results[] = new Service[services.size()];
122: return ((Service[]) services.values().toArray(results));
123:
124: }
125:
126: /**
127: * Remove the specified Service from association with this Server.
128: *
129: * @param service The Service to be removed
130: */
131: public void removeService(Service service) {
132:
133: services.remove(service.getName());
134:
135: }
136:
137: /**
138: * Return a String representation of this object.
139: */
140: public String toString() {
141:
142: StringBuffer sb = new StringBuffer("Server[");
143: sb.append("port=");
144: sb.append(port);
145: sb.append(", shutdown=");
146: sb.append(shutdown);
147: sb.append("]");
148: return (sb.toString());
149:
150: }
151:
152: }
|