/**
  * Instead of calling the constructor of this class, use {@link
  * MDRResourceFactory#createLanguageIdentification(tr.com.srdc.mdr.core.util.Language,
  * tr.com.srdc.mdr.core.util.Country)} to avoid entering illegal states.
  *
  * @param n Mostly created by <code>Node.createURI()</code>
  * @param g The graph which holds all triples.
  * @param languageIdentifier Use the three character alphabetic codes from ISO 639-2/Terminology,
  *     with extensions if required.
  * @param countryIdentifier Optional. Use the three digit numeric codes from ISO 3166-1, with
  *     extensions if required.
  * @param mdrDatabase
  */
 public LanguageIdentificationImpl(
     Node n,
     EnhGraph g,
     Language languageIdentifier,
     Country countryIdentifier,
     MDRDatabase mdrDatabase) {
   super(n, g, mdrDatabase);
   setSuperClass(mdrDatabase.getVocabulary().LanguageIdentification);
   setLanguageIdentifier(languageIdentifier);
   setCountryIdentifier(countryIdentifier);
 }
  // Each Repository works on the same MDRDatabase.
  private RepositoryManager() {
    try {
      mdrDatabase = MDRDatabaseManager.getInstance().createMDRDatabase();
      repository = new Repository(mdrDatabase);
      mdrDatabase.setSyncMode(true);

    } catch (MDRException e) {
      logger.error("Repository could not be initialized for the user", e);
      throw new IllegalStateException(e);
    }
  }