Interface ITranslatingProjectManager

All Superinterfaces:
IManagedService
All Known Implementing Classes:
TranslatingProjectManager

public interface ITranslatingProjectManager extends IManagedService
The Interface for Translating Project Manager. It allows to register project as "translating" project by adding a TranslatingNature ID and de-register by removing the nature ID. ITranslatingProject must be created by project special ITranslateProjectFactory witch registered in extension point com.e1c.langtool.translateProjectFactories
See Also:
  • Field Details

  • Method Details

    • register

      @Nullable ITranslatingProject register(@NonNull org.eclipse.core.resources.IProject project, @NonNull List<TranslateLanguage> languages)
      Register given project as translating project by adding ID of TranslatingNature.
      Parameters:
      project - the project
      languages - the languages
      Returns:
      the i translating project
    • register

      void register(@NonNull ITranslatingProject translatingProject, @NonNull org.eclipse.core.resources.IProject externalProject, @NonNull Collection<TranslateLanguage> languages)
      Register for the translating project its external languages and where they are stores.
      Parameters:
      translatingProject - the translating project, cannot be null.
      externalProject - the external project of where the external languages stores. Can be the same project as translated if external languages stores in the same translating project, cannot be null.
      languages - the external languages, empty collection means than external project now has no more external languages, cannot be null.
    • deregister

      void deregister(@NonNull org.eclipse.core.resources.IProject project)
      Unregister project and remove translation nature ID.
      Parameters:
      project - the project, cannot be null.
    • getProject

      @NonNull ITranslatingProject getProject(@Nullable org.eclipse.core.resources.IProject project)
      Gets the project.
      Parameters:
      project - the project, cannot be null.
      Returns:
      the project, cannot return null
    • getProject

      @NonNull ITranslatingProject getProject(@NonNull String projectName)
      Gets the project for given project name.
      Parameters:
      projectName - the project name, must be valid IProject name, cannot be null.
      Returns:
      the project, cannot return null
    • addPostChangeListener

      void addPostChangeListener(@NonNull TranslatingProjectChangeListener listener)
      Adds a listener for post changes of translating projects. Has no effect if an identical listener is already registered.
      Parameters:
      listener - the listener, cannot be null.
    • removePostChangeListener

      void removePostChangeListener(@NonNull TranslatingProjectChangeListener listener)
      Removes the given listener for post changes of translating projects. Has no effect if an identical listener is not registered.
      Parameters:
      listener - the listener, cannot be null.
    • getLanguageProject

      @NonNull org.eclipse.core.resources.IProject getLanguageProject(@NonNull org.eclipse.core.resources.IProject project, @NonNull TranslateLanguage language)
      Gets the project where language stores.
      Parameters:
      project - the translating project, cannot be null.
      language - the language, cannot be null.
      Returns:
      the language project, cannot return null.
    • getLanguageProject

      @NonNull org.eclipse.core.resources.IProject getLanguageProject(@NonNull ITranslatingProject project, @NonNull TranslateLanguage language)
      Gets the project where language stores.
      Parameters:
      project - the translating project, cannot be null.
      language - the language, cannot be null.
      Returns:
      the language project, cannot return null.
    • getLanguagesForExternalProject

      @NonNull Collection<TranslateLanguage> getLanguagesForExternalProject(@NonNull org.eclipse.core.resources.IProject externalProject)
      Returns an collection of languages for which the given external project contains a translations.
      Parameters:
      externalProject - the external project by which translations languages should be returned, cannot be null.
      Returns:
      an collection of languages or an empty collection if the given project is not registered, cannot return null.
    • getTranslatingForExternalProject

      @NonNull Optional<ITranslatingProject> getTranslatingForExternalProject(org.eclipse.core.resources.IProject externalProject)
      Returns the source translating project by the given external project.
      Parameters:
      externalProject - an external project to find the linked translating project, cannot be null.
      Returns:
      the found translating project or Optional.empty() if the given external project is not registered, cannot return null.
    • getAllExternalProjects

      @NonNull Collection<org.eclipse.core.resources.IProject> getAllExternalProjects(ITranslatingProject translatingProject)
      Returns all external projects for the given translating project.
      Returns:
      all external projects for the given translating project, cannot return null.