01: // Copyright 2006 The Apache Software Foundation
02: //
03: // Licensed under the Apache License, Version 2.0 (the "License");
04: // you may not use this file except in compliance with the License.
05: // You may obtain a copy of the License at
06: //
07: // http://www.apache.org/licenses/LICENSE-2.0
08: //
09: // Unless required by applicable law or agreed to in writing, software
10: // distributed under the License is distributed on an "AS IS" BASIS,
11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12: // See the License for the specific language governing permissions and
13: // limitations under the License.
14:
15: package org.apache.tapestry.ioc;
16:
17: /**
18: * The source for the module builder instance needed by most (but not all) service builders, service
19: * contributors and service decorators. Allows the creation of the moduleBuilder instance to be
20: * deferred until actually needed; in practical terms, when the builder/decorator/contributor is a
21: * <em>static</em> method on the module builder class, then a module builder instance is not
22: * needed. This allows Tapestry IOC to work around a tricky chicken-and-the-egg problem, whereby the
23: * constructor of a module builder instance requires contributions that originate in the same
24: * module.
25: *
26: *
27: */
28: public interface ModuleBuilderSource {
29: Object getModuleBuilder();
30: }
|