Class ComponentClassResolverImpl
java.lang.Object
org.apache.tapestry5.internal.services.ComponentClassResolverImpl
- All Implemented Interfaces:
InvalidationListener,ComponentClassResolver
public class ComponentClassResolverImpl
extends Object
implements ComponentClassResolver, InvalidationListener
-
Constructor Summary
ConstructorsConstructorDescriptionComponentClassResolverImpl(org.slf4j.Logger logger, ClassNameLocator classNameLocator, String startPageName, Collection<LibraryMapping> mappings) -
Method Summary
Modifier and TypeMethodDescriptioncanonicalizePageName(String pageName) Returns the canonical form of a page name.getClassName(String logicalName) Returns the class name for a page, component or class given its logical name.Returns a list of all component names, in sorted order.Used to identify which packages are controlled packages (from which components are loaded).A mapping from virtual folder name to a package name (used for converting classpathAssets to client URLs).Returns the library mappings.getLibraryNameForClass(String className) Given a class name of a component class, returns the library name (as defined by a contributed library name).Returns the names of all libraries (as configured).getLogicalName(String className) Returns the logical name for a page, component or mixin fully classified class name.Returns a list of all mixin names, in sorted order.Returns a list of all page names, in sorted order.booleanReturns true if the class name is specifically a page class, and not a component, mixin or base class.booleanisPageName(String pageName) For a particular path, determines if the path is a logical page name.voidWhen the class loader is invalidated, clear any cached page names or component types.resolveComponentTypeToClassName(String componentType) Converts a component type (a logical component name such as might be used inside a template or annotation) into a fully qualified class name.resolveMixinTypeToClassName(String mixinType) Converts a logical mixin type (as with component types) into a fully qualified class name.resolvePageClassNameToPageName(String pageClassName) Converts a fully qualified page class name into a page name (often, for inclusion as part of the URI).resolvePageNameToClassName(String pageName) Converts a logical page name (such as might be encoded into a URL) into a fully qualified class name.
-
Constructor Details
-
ComponentClassResolverImpl
public ComponentClassResolverImpl(org.slf4j.Logger logger, ClassNameLocator classNameLocator, @Symbol("tapestry.start-page-name") String startPageName, Collection<LibraryMapping> mappings)
-
-
Method Details
-
getControlledPackageMapping
Description copied from interface:ComponentClassResolverUsed to identify which packages are controlled packages (from which components are loaded). Future expansion may allow for additional packages which are live reloaded but not components (or perhaps are transformed, but not as components).- Specified by:
getControlledPackageMappingin interfaceComponentClassResolver- Returns:
- a mapping from package name to
ControlledPackageType.
-
objectWasInvalidated
When the class loader is invalidated, clear any cached page names or component types.- Specified by:
objectWasInvalidatedin interfaceInvalidationListener
-
resolvePageNameToClassName
Description copied from interface:ComponentClassResolverConverts a logical page name (such as might be encoded into a URL) into a fully qualified class name. The case of the page name is irrelevant.- Specified by:
resolvePageNameToClassNamein interfaceComponentClassResolver- Parameters:
pageName- page name- Returns:
- fully qualified class name for the page
-
isPageName
Description copied from interface:ComponentClassResolverFor a particular path, determines if the path is a logical page name. The check is case insensitive.- Specified by:
isPageNamein interfaceComponentClassResolver- Parameters:
pageName- potential logical page name- Returns:
- true if the page name is valid
-
isPage
Description copied from interface:ComponentClassResolverReturns true if the class name is specifically a page class, and not a component, mixin or base class.- Specified by:
isPagein interfaceComponentClassResolver- Returns:
- true if a page class
-
getPageNames
Description copied from interface:ComponentClassResolverReturns a list of all page names, in sorted order. These are the "canonical" page names.- Specified by:
getPageNamesin interfaceComponentClassResolver
-
getComponentNames
Description copied from interface:ComponentClassResolverReturns a list of all component names, in sorted order. These are the "canonical" component names.- Specified by:
getComponentNamesin interfaceComponentClassResolver
-
getMixinNames
Description copied from interface:ComponentClassResolverReturns a list of all mixin names, in sorted order. These are the "canonical" mixin names.- Specified by:
getMixinNamesin interfaceComponentClassResolver
-
resolveComponentTypeToClassName
Description copied from interface:ComponentClassResolverConverts a component type (a logical component name such as might be used inside a template or annotation) into a fully qualified class name. Case is ignored in resolving the name.- Specified by:
resolveComponentTypeToClassNamein interfaceComponentClassResolver- Parameters:
componentType- a logical component type- Returns:
- fully qualified class name
-
resolveMixinTypeToClassName
Description copied from interface:ComponentClassResolverConverts a logical mixin type (as with component types) into a fully qualified class name. Case is ignored when resolving the name.- Specified by:
resolveMixinTypeToClassNamein interfaceComponentClassResolver- Parameters:
mixinType- a logical mixin type- Returns:
- fully qualified class name
-
resolvePageClassNameToPageName
Description copied from interface:ComponentClassResolverConverts a fully qualified page class name into a page name (often, for inclusion as part of the URI). This value may later be passed toComponentClassResolver.resolvePageNameToClassName(String).- Specified by:
resolvePageClassNameToPageNamein interfaceComponentClassResolver- Parameters:
pageClassName- fully qualified name of a page class- Returns:
- equivalent logical page name
-
canonicalizePageName
Description copied from interface:ComponentClassResolverReturns the canonical form of a page name. The canonical form uses character case matching the underlying class name.- Specified by:
canonicalizePageNamein interfaceComponentClassResolver
-
getFolderToPackageMapping
Description copied from interface:ComponentClassResolverA mapping from virtual folder name to a package name (used for converting classpathAssets to client URLs). This is derived from the contributedLibraryMappings. It is allowed to contribute multiple root packages as a single folder name. In this case, the best common package name is used. For example, if bothcom.example.mainandcom.example.extrasis mapped to folder "example", then the package mapping for "example" will becom.example.- Specified by:
getFolderToPackageMappingin interfaceComponentClassResolver- See Also:
-
getLibraryNames
Description copied from interface:ComponentClassResolverReturns the names of all libraries (as configured). This does not include the application itself (which is a library with the virtual path of empty string).- Specified by:
getLibraryNamesin interfaceComponentClassResolver- Returns:
- sorted names of libraries
-
getLibraryNameForClass
Description copied from interface:ComponentClassResolverGiven a class name of a component class, returns the library name (as defined by a contributed library name).- Specified by:
getLibraryNameForClassin interfaceComponentClassResolver- Returns:
- library name
-
getLibraryMappings
Description copied from interface:ComponentClassResolverReturns the library mappings.- Specified by:
getLibraryMappingsin interfaceComponentClassResolver
-
getLogicalName
Description copied from interface:ComponentClassResolverReturns the logical name for a page, component or mixin fully classified class name.- Specified by:
getLogicalNamein interfaceComponentClassResolver
-
getClassName
Description copied from interface:ComponentClassResolverReturns the class name for a page, component or class given its logical name.- Specified by:
getClassNamein interfaceComponentClassResolver
-