Class PackageObjectFactory

  • All Implemented Interfaces:
    ModuleFactory

    public class PackageObjectFactory
    extends Object
    implements ModuleFactory
    A factory for creating objects from package names and names. Consider the below example for better understanding.
    • module name - name of java class that represents module;
    • module full name - fully qualifies name of java class that represents module;
    • check module short name - name of Check without 'Check' suffix;
    • check module name - name of java class that represents Check (with 'Check' suffix);
    • check module full name - fully qualifies name of java class that represents Check (with 'Check' suffix).
    • Field Detail

      • UNABLE_TO_INSTANTIATE_EXCEPTION_MESSAGE

        public static final String UNABLE_TO_INSTANTIATE_EXCEPTION_MESSAGE
        Exception message when it is unable to create a class instance.
        See Also:
        Constant Field Values
      • AMBIGUOUS_MODULE_NAME_EXCEPTION_MESSAGE

        public static final String AMBIGUOUS_MODULE_NAME_EXCEPTION_MESSAGE
        Exception message when there is ambiguous module name in config file.
        See Also:
        Constant Field Values
      • PACKAGE_SEPARATOR

        public static final String PACKAGE_SEPARATOR
        Character separate package names in qualified name of java class.
        See Also:
        Constant Field Values
      • NULL_LOADER_MESSAGE

        public static final String NULL_LOADER_MESSAGE
        Exception message when null class loader is given.
        See Also:
        Constant Field Values
      • NULL_PACKAGE_MESSAGE

        public static final String NULL_PACKAGE_MESSAGE
        Exception message when null package name is given.
        See Also:
        Constant Field Values
    • Constructor Detail

      • PackageObjectFactory

        public PackageObjectFactory​(Set<String> packageNames,
                                    ClassLoader moduleClassLoader)
        Creates a new PackageObjectFactory instance.
        Parameters:
        packageNames - the list of package names to use
        moduleClassLoader - class loader used to load Checkstyle core and custom modules
      • PackageObjectFactory

        public PackageObjectFactory​(Set<String> packageNames,
                                    ClassLoader moduleClassLoader,
                                    PackageObjectFactory.ModuleLoadOption moduleLoadOption)
        Creates a new PackageObjectFactory instance.
        Parameters:
        packageNames - the list of package names to use
        moduleClassLoader - class loader used to load Checkstyle core and custom modules
        moduleLoadOption - loading option
      • PackageObjectFactory

        public PackageObjectFactory​(String packageName,
                                    ClassLoader moduleClassLoader)
        Creates a new PackageObjectFactory instance.
        Parameters:
        packageName - The package name to use
        moduleClassLoader - class loader used to load Checkstyle core and custom modules
    • Method Detail

      • createModule

        public Object createModule​(String name)
                            throws CheckstyleException
        Creates a new instance of a class from a given name, or that name concatenated with "Check". If the name is a class name, creates an instance of the named class. Otherwise, creates an instance of a class name obtained by concatenating the given name to a package name from a given list of package names.
        Specified by:
        createModule in interface ModuleFactory
        Parameters:
        name - the name of a class.
        Returns:
        the Object created by loader.
        Throws:
        CheckstyleException - if an error occurs.
      • getShortFromFullModuleNames

        public static String getShortFromFullModuleNames​(String fullName)
        Returns simple check name from full modules names map.
        Parameters:
        fullName - name of the class for joining.
        Returns:
        simple check name.