View Javadoc

1   package org.apache.turbine.services.assemblerbroker;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.turbine.modules.Assembler;
23  import org.apache.turbine.services.Service;
24  import org.apache.turbine.services.assemblerbroker.util.AssemblerFactory;
25  import org.apache.turbine.util.TurbineException;
26  
27  /***
28   * An interface the Turbine Assembler service.
29   * See TurbineAssemblerBrokerService for more info.
30   *
31   * @author <a href="mailto:leon@opticode.co.za">Leon Messerschmidt</a>
32   * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
33   * @version $Id: AssemblerBrokerService.java 534527 2007-05-02 16:10:59Z tv $
34   */
35  public interface AssemblerBrokerService
36          extends Service
37  {
38      /*** Name of the Service */
39      String SERVICE_NAME = "AssemblerBrokerService";
40  
41      /*** Predefined types for Turbine built-in assemblers: Actions  */
42      String ACTION_TYPE = "action";
43  
44      /*** Predefined types for Turbine built-in assemblers: Screens  */
45      String SCREEN_TYPE = "screen";
46  
47      /*** Predefined types for Turbine built-in assemblers: Navigations  */
48      String NAVIGATION_TYPE = "navigation";
49  
50      /*** Predefined types for Turbine built-in assemblers: Layouts  */
51      String LAYOUT_TYPE = "layout";
52  
53      /*** Predefined types for Turbine built-in assemblers: Pages  */
54      String PAGE_TYPE = "page";
55  
56      /*** Predefined types for Turbine built-in assemblers: Scheduler Jobs  */
57      String SCHEDULEDJOB_TYPE = "scheduledjob";
58  
59      /***
60       * Register an AssemblerFactory class for a given type
61       *
62       * @param type Type of the Factory
63       * @param factory The factory object
64       */
65      void registerFactory(String type, AssemblerFactory factory);
66  
67      /***
68       * Attempts to load an Assembler of a type with a given name
69       *
70       * @param type The Type of the Assembler
71       * @param name The Name of the Assembler
72       * @return An Assembler object for the requested name and type
73       *
74       * @throws TurbineException Something went wrong while looking for the Assembler
75       */
76      Assembler getAssembler(String type, String name) throws TurbineException;
77  }