Your browser does not support JavaScript and this site utilizes JavaScript to build content and provide links to additional information. You should either enable JavaScript in your browser settings or use a browser that supports JavaScript in order to take full advantage of this site.

1 /* ====================================================================2 * The Apache Software License, Version 1.13 *4 * Copyright (c) 1997-2003 The Apache Software Foundation. All rights5 * reserved.6 *7 * Redistribution and use in source and binary forms, with or without8 * modification, are permitted provided that the following conditions9 * are met:10 *11 * 1. Redistributions of source code must retain the above copyright12 * notice, this list of conditions and the following disclaimer.13 *14 * 2. Redistributions in binary form must reproduce the above copyright15 * notice, this list of conditions and the following disclaimer in16 * the documentation and/or other materials provided with the17 * distribution.18 *19 * 3. The end-user documentation included with the redistribution,20 * if any, must include the following acknowledgment:21 * "This product includes software developed by the22 * Apache Software Foundation (http://www.apache.org/)."23 * Alternately, this acknowledgment may appear in the software24 * itself, if and wherever such third-party acknowledgments25 * normally appear.26 *27 * 4. The names "Jakarta", "Avalon", and "Apache Software Foundation"28 * must not be used to endorse or promote products derived from this29 * software without prior written permission. For written30 * permission, please contact apache@apache.org.31 *32 * 5. Products derived from this software may not be called "Apache",33 * nor may "Apache" appear in their name, without prior written34 * permission of the Apache Software Foundation.35 *36 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED37 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES38 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE39 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT42 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF43 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND44 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,45 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT46 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF47 * SUCH DAMAGE.48 * ====================================================================49 *50 * This software consists of voluntary contributions made by many51 * individuals on behalf of the Apache Software Foundation. For more52 * information on the Apache Software Foundation, please see53 * <http://www.apache.org/>.54 */55 package org.apache.avalon.framework.service;56 57 /**58 * A Serviceable is a class that need to connect to software components using59 * a "role" abstraction, thus not depending on particular implementations60 * but on behavioral interfaces.61 * <br />62 *63 * The contract surrounding a <code>Serviceable</code> is that it is a user.64 * The <code>Serviceable</code> is able to use <code>Object</code>s managed65 * by the <code>ServiceManager</code> it was initialized with. As part66 * of the contract with the system, the instantiating entity must call67 * the <code>service</code> method before the <code>Serviceable</code>68 * can be considered valid.69 *70 * @author <a HREF="mailto:dev@avalon.apache.org">Avalon Development Team</a>71 * @version CVS $Revision: 1.17 $ $Date: 2003/02/11 15:58:42 $72 * @see org.apache.avalon.framework.service.ServiceManager73 *74 */75 publicinterface Serviceable76 {77 /**78 * Pass the <code>ServiceManager</code> to the <code>Serviceable</code>.79 * The <code>Serviceable</code> implementation should use the specified80 * <code>ServiceManager</code> to acquire the components it needs for81 * execution.82 *83 * @param manager The <code>ServiceManager</code> which this84 * <code>Serviceable</code> uses. Must not be <code>null</code>.85 * @throws ServiceException if an error occurs86 */87 void service( ServiceManager manager )88 throwsServiceException;89 }90