1 package org.apache.turbine.services; 2 3 4 /* 5 * Licensed to the Apache Software Foundation (ASF) under one 6 * or more contributor license agreements. See the NOTICE file 7 * distributed with this work for additional information 8 * regarding copyright ownership. The ASF licenses this file 9 * to you under the Apache License, Version 2.0 (the 10 * "License"); you may not use this file except in compliance 11 * with the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, 16 * software distributed under the License is distributed on an 17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18 * KIND, either express or implied. See the License for the 19 * specific language governing permissions and limitations 20 * under the License. 21 */ 22 23 24 import java.util.Properties; 25 26 import org.apache.commons.configuration2.Configuration; 27 import org.apache.commons.configuration2.ConfigurationConverter; 28 29 /** 30 * This class is a generic implementation of <code>Service</code>. 31 * 32 * @author <a href="mailto:burton@apache.org">Kevin Burton</a> 33 * @author <a href="mailto:krzewski@e-point.pl">Rafal Krzewski</a> 34 * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a> 35 * @version $Id: BaseService.java 1837261 2018-08-01 20:30:15Z tv $ 36 */ 37 public class BaseService 38 extends BaseInitable 39 implements Service 40 { 41 /** A reference to the ServiceBroker that instantiated this object. */ 42 protected ServiceBroker serviceBroker; 43 44 /** The configuration for this service */ 45 protected Configuration configuration; 46 47 /** The name of this Service. */ 48 protected String name; 49 50 /** 51 * Saves a reference to the ServiceBroker that instantiated this 52 * object, so that it can ask for its properties and access other 53 * Services. 54 * 55 * @param broker The ServiceBroker that instantiated this object. 56 */ 57 public void setServiceBroker(ServiceBroker broker) 58 { 59 this.serviceBroker = broker; 60 } 61 62 /** 63 * ServiceBroker uses this method to pass a Service its name. 64 * 65 * @param name The name of this Service. 66 */ 67 public void setName(String name) 68 { 69 this.name = name; 70 } 71 72 /** 73 * Returns the name of this service. 74 * 75 * @return The name of this Service. 76 */ 77 public String getName() 78 { 79 return name; 80 } 81 82 /** 83 * Returns a ServiceBroker reference. 84 * 85 * @return The ServiceBroker that instantiated this object. 86 */ 87 public ServiceBroker getServiceBroker() 88 { 89 return serviceBroker; 90 } 91 92 /** 93 * Returns the properties of this Service. 94 * 95 * @return The Properties of this Service. 96 */ 97 public Properties getProperties() 98 { 99 return ConfigurationConverter.getProperties(getConfiguration()); 100 } 101 102 /** 103 * Returns the configuration of this Service. 104 * 105 * @return The Configuration of this Service. 106 */ 107 public Configuration getConfiguration() 108 { 109 if (name == null) 110 { 111 return null; 112 } 113 114 if (configuration == null) 115 { 116 configuration = getServiceBroker().getConfiguration(name); 117 } 118 return configuration; 119 } 120 }