Class DefaultResourceDataBroker

  • All Implemented Interfaces:
    ResourceDataBroker

    public class DefaultResourceDataBroker
    extends java.lang.Object
    implements ResourceDataBroker
    Responsible for getting any items from the grammar checker's resource directories. This default data broker assumes that they are accessible directly via class-path and the directory names are like specified in:

    If you'd like to determine another resource directory location this default data broker provides proper methods. Assuming your /rules and /resource directories are accessible via class-path with following path information:

    • /res/grammarchecker/rulesdirname
    • /res/grammarchecker/resourcedirname
    In this case you have to use the constructor with the following arguments:
    • /res/grammarchecker/rulesdirname
    • /res/grammarchecker/resourcedirname

    Make sure that you never obtain any grammar checker resources by calling Object.class.getResource(String) or Object.class.getResourceAsStream(String) directly. If you would like to obtain something from these directories do always use JLanguageTool.getDataBroker() which provides proper methods for reading the directories above.

    For example, if you want to get the URL of /rules/de/grammar.xml just invoke ResourceDataBroker.getFromRulesDirAsUrl(String) and pass /de/grammar.xml as a string. Note: The /rules directory's name isn't passed because its name might have changed. The same usage does apply for the /resource directory.

    Since:
    1.0.1
    See Also:
    ResourceDataBroker
    • Field Detail

      • resourceDir

        private final java.lang.String resourceDir
        The directory's name of the grammar checker's resource directory. The default value equals ResourceDataBroker.RESOURCE_DIR.
      • rulesDir

        private final java.lang.String rulesDir
        The directory's name of the grammar checker's rules directory. The default value equals ResourceDataBroker.RULES_DIR.
    • Constructor Detail

      • DefaultResourceDataBroker

        public DefaultResourceDataBroker​(java.lang.String resourceDir,
                                         java.lang.String rulesDir)
        Instantiates this data broker with the passed resource directory names.
        Parameters:
        resourceDir - The directory's name of the grammar checker's resource directory. The default value equals ResourceDataBroker.RESOURCE_DIR.
        rulesDir - The directory's name of the grammar checker's rules directory. The default value equals ResourceDataBroker.RULES_DIR.
    • Method Detail

      • getFromResourceDirAsStream

        public java.io.InputStream getFromResourceDirAsStream​(java.lang.String path)
        Specified by:
        getFromResourceDirAsStream in interface ResourceDataBroker
        Parameters:
        path - The relative path to the item inside of the /resource directory. Please start your path information with / because it will be concatenated with the directory's name: /resource/yourpath.
        Returns:
        An InputStream object to the requested item
        Throws:
        java.lang.RuntimeException - if path cannot be found
      • getFromResourceDirAsUrl

        public java.net.URL getFromResourceDirAsUrl​(java.lang.String path)
        Specified by:
        getFromResourceDirAsUrl in interface ResourceDataBroker
        Parameters:
        path - The relative path to the item inside of the /resource directory. Please start your path information with / because it will be concatenated with the directory's name: /resource/yourpath.
        Returns:
        An URL object to the requested item
        Throws:
        java.lang.RuntimeException - if path cannot be found
      • getCompleteResourceUrl

        private java.lang.String getCompleteResourceUrl​(java.lang.String path)
        Concatenates the passed resource path with the currently set resource directory path.
        Parameters:
        path - The relative path to a resource item inside of the resource directory.
        Returns:
        The full relative path to the resource including the path to the resource directory.
      • getFromRulesDirAsStream

        public java.io.InputStream getFromRulesDirAsStream​(java.lang.String path)
        Specified by:
        getFromRulesDirAsStream in interface ResourceDataBroker
        Parameters:
        path - The relative path to the item inside of the /rules directory. Please start your path information with / because it will be concatenated with the directory's name: /rules/yourpath.
        Returns:
        An InputStream object to the requested item
        Throws:
        java.lang.RuntimeException - if path cannot be found
      • getFromRulesDirAsUrl

        public java.net.URL getFromRulesDirAsUrl​(java.lang.String path)
        Specified by:
        getFromRulesDirAsUrl in interface ResourceDataBroker
        Parameters:
        path - The relative path to the item inside of the /rules directory. Please start your path information with / because it will be concatenated with the directory's name: /rules/yourpath.
        Returns:
        An URL object to the requested item
        Throws:
        java.lang.RuntimeException - if path cannot be found
      • assertNotNull

        private void assertNotNull​(java.lang.Object object,
                                   java.lang.String path,
                                   java.lang.String completePath)
      • getCompleteRulesUrl

        private java.lang.String getCompleteRulesUrl​(java.lang.String path)
        Concatenates the passed resource path with the currently set rules directory path.
        Parameters:
        path - The relative path to a resource item inside of the rules directory.
        Returns:
        The full relative path to the resource including the path to the rules directory.
      • appendPath

        private java.lang.String appendPath​(java.lang.String baseDir,
                                            java.lang.String path)