01: // Copyright 2006, 2007 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.services;
16:
17: import org.apache.tapestry.ComponentResourcesCommon;
18: import org.apache.tapestry.runtime.Component;
19:
20: /**
21: * Used by classes that need to retrieve a component by its complete id, or a page by its logical
22: * page name or root component class. The complete id is the FQCN of the containing page, a colon,
23: * and the nested component id. It may also just be the page name (for the root component of a
24: * page).
25: */
26: public interface ComponentSource {
27: /**
28: * Gets a component by its id.
29: *
30: * @param componentId
31: * complete component id
32: * @return the component
33: * @throws IllegalArgumentException
34: * if the component can not be found
35: * @see ComponentResourcesCommon#getCompleteId()
36: */
37: Component getComponent(String componentId);
38:
39: /**
40: * Returns the page identified by its logical page name. A logical page name is the short form
41: * of a page name often emebedded into URLs.
42: *
43: * @param pageName
44: * the logical page name
45: * @return the corresponding page's root component
46: * @throws IllegalArgumentException
47: * if the page can not be found
48: */
49: Component getPage(String pageName);
50: }
|