Interface PepperModule

    • Field Detail

      • ENDING_FOLDER

        static final String ENDING_FOLDER
        A string specifying a value for a folder as ending. This is useful for #setTypeOfResource(URI), to determine, that even a folder can be mapped to a resource.Can be used by importers to be put in collection #getDocumentEndings() or #getCorpusEndings()
        See Also:
        Constant Field Values
      • ENDING_LEAF_FOLDER

        static final String ENDING_LEAF_FOLDER
        A string specifying a value for a leaf folder as ending. This is useful for #setTypeOfResource(URI), to determine, that even a leaf folder can be mapped to a resource. Can be used by importers to be put in collection #getDocumentEndings() or #getCorpusEndings()
        See Also:
        Constant Field Values
      • ENDING_XML

        static final String ENDING_XML
        Ending for an xml file. Can be used by importers to be put in collection #getDocumentEndings() or #getCorpusEndings()
        See Also:
        Constant Field Values
      • ENDING_TXT

        static final String ENDING_TXT
        Ending for an txt file. Can be used by importers to be put in collection #getDocumentEndings() or #getCorpusEndings()
        See Also:
        Constant Field Values
      • ENDING_TAB

        static final String ENDING_TAB
        Ending for an tab file. Can be used by importers to be put in collection #getDocumentEndings() or #getCorpusEndings()
        See Also:
        Constant Field Values
    • Method Detail

      • getFingerprint

        PepperModuleDesc getFingerprint()
        Returns a PepperModuleDesc object, which is a kind of a fingerprint of this PepperModule. This fingerprint for instance contains information like the name, the version of this module or information about the supplier.
        Returns:
        fingerprint to this module
      • getModuleType

        MODULE_TYPE getModuleType()
        Returns the type of this module.
        Returns:
        type of module
      • getComponentContext

        org.osgi.service.component.ComponentContext getComponentContext()
        Returns the ComponentContext of the OSGi environment the bundle was started in.
        Returns:
      • getName

        String getName()
        Returns the name of this module. In most cases, the name somehow describes the task of the module.
        Returns:
        the value of the 'Name' attribute.
      • getVersion

        String getVersion()
        Returns the version of this module.
        Returns:
        the value of the 'Version' attribute.
      • setVersion

        void setVersion​(String value)
        Sets the version of this module. The version normally is set internally, this method only exists for dependency injection, by the modules project itself. But this method is never called by the pepper framework.
        Parameters:
        value - the new value of the 'Version' attribute.
      • getDesc

        String getDesc()
        Returns a short description of this module. Please support some information, for the user, of what task this module does.
        Returns:
        a short description of the task of this module
      • setDesc

        void setDesc​(String desc)
        Sets a short description of this module. Please support some information, for the user, of what task this module does.
        Parameters:
        desc - a short description of the task of this module
      • getSupplierContact

        org.eclipse.emf.common.util.URI getSupplierContact()
        Returns a uri where to find more information about this module and where to find some contact information to contact the supplier.
        Returns:
        contact address like eMail address or homepage address
      • setSupplierContact

        void setSupplierContact​(org.eclipse.emf.common.util.URI eMail)
        Sets a uri where to find more information about this module and where to find some contact information to contact the supplier.
        Parameters:
        uri - contact address like eMail address or homepage address
      • getSupplierHomepage

        org.eclipse.emf.common.util.URI getSupplierHomepage()
        Sets the URI to the homepage describing the functionality of the module.
        Returns:
        URI to the homepage
      • setSupplierHomepage

        void setSupplierHomepage​(org.eclipse.emf.common.util.URI hp)
        Returns the URI to the homepage describing the functionality of the module.
        Parameters:
        hp - URI to the homepage
      • setProperties

        void setProperties​(PepperModuleProperties properties)
        Sets thePepperModuleProperties object containing properties to customize the behavior of this PepperModule. Please make sure, that this method is called in constructor of your module. If not, a general PepperModuleProperties object is created by the pepper framework and will be initialized. This means, when calling this method later, all properties for customizing the module will be overridden.
        Parameters:
        properties -
      • getModuleController

        ModuleController getModuleController()
        Returns the container and controller object for the current module. The ModuleController object is a kind of communicator between a PepperModule and the pepper framework.
        Returns:
        the value of the 'Pepper Module Controller' container reference.
      • setPepperModuleController

        void setPepperModuleController​(ModuleController value)
        Sets the container and controller object for the current module. The ModuleController object is a kind of communicator between a PepperModule and the pepper framework. Also calls the inverse method ModuleController.setPepperModule_basic(PepperModule) . Note, this method only should be called by pepper framework.
        Parameters:
        value - the new value of the 'Pepper Module Controller' container reference.
      • setPepperModuleController_basic

        void setPepperModuleController_basic​(ModuleController value)
        Sets the container and controller object for the current module. The ModuleController object is a kind of communicator between a PepperModule and the pepper framework. Note, this method only should be called by pepper framework.
        Parameters:
        value - the new value of the 'Pepper Module Controller' container reference.
      • getSaltProject

        org.corpus_tools.salt.common.SaltProject getSaltProject()
        Returns the SaltProject object, which is filled, manipulated or exported by the current module.
        Returns:
        the value of the 'Salt Project' attribute.
      • setSaltProject

        void setSaltProject​(org.corpus_tools.salt.common.SaltProject value)
        Sets the SaltProject object, which is filled, manipulated or exported by the current module. Note: This method only should be called by the pepper framework.
        Parameters:
        value - the new value of the 'Salt Project' attribute.
      • getCorpusGraph

        org.corpus_tools.salt.common.SCorpusGraph getCorpusGraph()
        Returns the SCorpusGraph object which is filled, manipulated or exported by the current module. The SCorpusGraph object is contained in the salt project getSaltProject().
        Returns:
        the value of the 'SCorpus Graph' attribute.
      • setCorpusGraph

        void setCorpusGraph​(org.corpus_tools.salt.common.SCorpusGraph value)
        Sets the SCorpusGraph object which is filled, manipulated or exported by the current module. The SCorpusGraph object is contained in the salt project getSaltProject(). Note: This method only should be called by the pepper framework.
        Parameters:
        value - the new value of the 'SCorpus Graph' attribute.
      • getResources

        org.eclipse.emf.common.util.URI getResources()
        Returns the path of the folder which might contain resources for a Pepper module. This is the folder, which is delivered as part of the modules zip. Usually a Pepper module is a zip file containing a jar file and a folder having the same name as the jar file. In default configuration all files of folder "./src/main/resources" are copied to the resource folder.
        Returns:
        path to resources
      • setResources

        void setResources​(org.eclipse.emf.common.util.URI value)
        Sets the resource folder used by getResources(). This method should only be invoked by the Pepper framework. The documentation of getResources() for more details.
        Parameters:
        value - path to resource folder
      • getTemproraries

        @Deprecated
        org.eclipse.emf.common.util.URI getTemproraries()
        Deprecated.
        TODO make docu
      • setTemproraries

        @Deprecated
        void setTemproraries​(org.eclipse.emf.common.util.URI value)
        Deprecated.
        TODO make docu
      • getSymbolicName

        String getSymbolicName()
        Returns the symbolic name of this OSGi bundle.
        Returns:
        the value of the 'Symbolic Name' attribute.
      • setSymbolicName

        void setSymbolicName​(String value)
        Sets the symbolic name of this OSGi bundle. This value is set automatically inside the activate method, which is implemented in PepperModuleImpl class. If you want to manipulate that method. make sure to set the symbolic name and make sure, that it is set to the bundles symbolic name.
        Parameters:
        value - the new value of the 'Symbolic Name' attribute.
      • getStartProblems

        Collection<String> getStartProblems()
        If isReadyToStart() has returned false, this method returns a list of reasons why this module is not ready to start.
        Returns:
        a list describing the reasons, or an empty list if there were no problems
      • isReadyToStart

        boolean isReadyToStart()
                        throws PepperModuleNotReadyException
        This method is called by the pepper framework after initializing this object and directly before start processing. Initializing means setting properties PepperModuleProperties, setting temporary files, resources etc. . returns false or throws an exception in case of PepperModule instance is not ready for any reason
        This method is also called, when Pepper is in self-test mode, to check if module is correctly instantiated.
        The default implementation checks:
        • if a path to resource folder is given
        • if the MODULE_TYPE is not null
        • if the name is not null
        When overriding this method, please call super.isReadyToStart() first and in case a problem occured add it to the list getStartProblems().
        Returns:
        false, PepperModule instance is not ready for any reason, true, else.
        Throws:
        PepperModuleNotReadyException
      • setIsMultithreaded

        void setIsMultithreaded​(boolean isMultithreaded)
        Sets whether this PepperModule is able to run multithreaded. This method only should be called by the module itself.
        Parameters:
        isThreaded - true, if module can run in multithread mode.
      • isMultithreaded

        boolean isMultithreaded()
        Returns whether this PepperModule is able to run multithreaded. The behavior only should be set by the module itself via calling setIsMultithreaded(boolean).
        Returns:
        true, if module can run in multithread mode.
      • start

        void start()
            throws PepperModuleException
        Starts the conversion process. This method is the main method of a pepper module. If this method is not overridden, it will call start(Identifier) for each SDocument and SCorpus object being contained in the set SCorpusGraph. This is done in a multithreaded way by default. Note: When your module should not run in multithreaded mode, call setIsMultithreaded(boolean) .
        Throws:
        PepperModuleException
      • start

        void start​(org.corpus_tools.salt.graph.Identifier sElementId)
            throws PepperModuleException
        This method is called by the method start(). This is the only call in Pepper. You do not need to override this method, in case of you are happy with the default behavior. In default, this method invokes a multithreaded process, which creates PepperMapper objects for each given Identifier object, to process the corresponding SDocument or SCorpus object. The PepperMapper objects are not created by the method itself, the creation is delegated to createPepperMapper(Identifier), which has to be overridden. Default initializations are done there (for more details, please take a look into the doc of that method). Further this method links the created PepperMapper object to a PepperMapperController object and makes sure, that the process runs in a by Pepper controlled manner.
        Note: When your module should not run in multithreaded mode, call setIsMultithreaded(boolean).
        Note: In case of you override this method, please make sure to also override the following methods:
        • #getProgress(Identifier)
        Throws:
        PepperModuleException
      • createPepperMapper

        PepperMapper createPepperMapper​(org.corpus_tools.salt.graph.Identifier sElementId)
        OVERRIDE THIS METHOD FOR CUSTOMIZED MAPPING. This method creates a customized PepperMapper object and returns it. You can here do some additional initialisations. Thinks like setting the Identifier of the SDocument or SCorpus object and the URI resource is done by the framework (or more in detail in method start()). The parameter sElementId, if a PepperMapper object should be created in case of the object to map is either an SDocument object or an SCorpus object of the mapper should be initialized differently.
        Note: Override this method.
        Parameters:
        sElementId - Identifier of the SCorpus or SDocument to be processed.
        Returns:
        PepperMapper object to do the mapping task for object connected to given Identifier
      • proposeImportOrder

        List<org.corpus_tools.salt.graph.Identifier> proposeImportOrder​(org.corpus_tools.salt.common.SCorpusGraph sCorpusGraph)
        This method could be overridden, to make a proposal for the import order of SDocument objects. Overriding this method is useful, in case of the order matters in the specific mapping of this PepperModule . In this case a influencing the import order can decrease the processing time. If you do not want to influence the order, just return an empty list, or don't override this method.
        In case you want to override this method, you can return a value for each passed SCorpusGraph.
        OVERRIDE THIS METHOD FOR CUSTOMIZED MAPPING.
        Parameters:
        sCorpusGraph - the SCorpusGraph object for which the order could be proposed
        Returns:
        a list determining the import order of SDocument objects
      • getProgress

        Double getProgress​(String globalId)
        This method is invoked by the Pepper framework, to get the current progress concerning the SDocument object corresponding to the given Identifier in percent. A valid value return must be between 0 and 1.
        Note: In case, you have overridden the method start(Identifier) or start(), please also override this method, because it accesses an internal list of all mappers, which initialized in start(Identifier).
        Parameters:
        globalID - identifier of the requested SDocument object, note, that this is not the Identifier.
      • getProgress

        Double getProgress()
        This method is invoked by the Pepper framework, to get the current total progress of all SDocument objects being processed by this module. A valid value return must be between 0 and 1. This method can be overridden by a derived PepperModule class. If this method is not overridden, it will return null.
        Returns:
        the progress of all documents processed by this module
      • end

        void end()
          throws PepperModuleException
        This method is called by the pepper framework at the end of a conversion process. Means after all objects ( SDocument and SCorpus objects) have been processed. This method can be used to do some clean up (e.g. to close streams etc.).
        Throws:
        PepperModuleException
      • done

        void done​(org.corpus_tools.salt.graph.Identifier identifier,
                  DOCUMENT_STATUS result)
        This method is called by a PepperMapperController object to notify the PepperModule object, that the mapping for this object is done.
        Parameters:
        identifier -
        result -