sascha@3333: package de.intevation.flys.backend;
sascha@3333: 
sascha@3333: import de.intevation.artifacts.common.utils.Config;
sascha@3333: 
sascha@3333: import de.intevation.seddb.model.Bezugspegel;
sascha@3333: import de.intevation.seddb.model.Bezugspegelgew;
sascha@3333: import de.intevation.seddb.model.BezugspegelgewId;
sascha@3333: import de.intevation.seddb.model.Bild;
sascha@3333: import de.intevation.seddb.model.Gewaesser;
sascha@3333: import de.intevation.seddb.model.Gfaenger;
sascha@3333: import de.intevation.seddb.model.Glotlinks;
sascha@3333: import de.intevation.seddb.model.GlotlinksId;
sascha@3333: import de.intevation.seddb.model.Glotrechte;
sascha@3333: import de.intevation.seddb.model.Gprobe;
sascha@3333: import de.intevation.seddb.model.GprobeId;
sascha@3333: import de.intevation.seddb.model.Gsiebsatz;
sascha@3333: import de.intevation.seddb.model.Gsiebung;
sascha@3333: import de.intevation.seddb.model.Gsiebungsieb;
sascha@3333: import de.intevation.seddb.model.GsiebungsiebId;
sascha@3333: import de.intevation.seddb.model.Hpeilpunkt;
sascha@3333: import de.intevation.seddb.model.HpeilpunktId;
sascha@3333: import de.intevation.seddb.model.Hpeilung;
sascha@3333: import de.intevation.seddb.model.Messung;
sascha@3333: import de.intevation.seddb.model.Messunglotcount;
sascha@3333: import de.intevation.seddb.model.MessunglotcountId;
sascha@3333: import de.intevation.seddb.model.Messungsta;
sascha@3333: import de.intevation.seddb.model.MessungstaId;
sascha@3333: import de.intevation.seddb.model.Messunguferbezug;
sascha@3333: import de.intevation.seddb.model.MessunguferbezugId;
sascha@3333: import de.intevation.seddb.model.Mpeilpunkt;
sascha@3333: import de.intevation.seddb.model.MpeilpunktId;
sascha@3333: import de.intevation.seddb.model.Mpeilung;
sascha@3333: import de.intevation.seddb.model.Probebild;
sascha@3333: import de.intevation.seddb.model.Siebanalyse;
sascha@3333: import de.intevation.seddb.model.Slotlinks;
sascha@3333: import de.intevation.seddb.model.SlotlinksId;
sascha@3333: import de.intevation.seddb.model.Slotrechte;
sascha@3333: import de.intevation.seddb.model.Sohlprobe;
sascha@3333: import de.intevation.seddb.model.Sohltest;
sascha@3333: import de.intevation.seddb.model.Sprobe;
sascha@3333: import de.intevation.seddb.model.SprobeId;
sascha@3333: import de.intevation.seddb.model.Ssiebung;
sascha@3333: import de.intevation.seddb.model.Ssiebungsieb;
sascha@3333: import de.intevation.seddb.model.SsiebungsiebId;
sascha@3333: import de.intevation.seddb.model.Station;
sascha@3333: import de.intevation.seddb.model.Stationgew;
sascha@3333: import de.intevation.seddb.model.StationgewId;
sascha@3333: import de.intevation.seddb.model.TmpGloChanged;
sascha@3333: import de.intevation.seddb.model.TmpMesAchanged;
sascha@3333: import de.intevation.seddb.model.TmpMesGchanged;
sascha@3333: import de.intevation.seddb.model.TmpMesQchanged;
sascha@3333: import de.intevation.seddb.model.TmpMesSchanged;
sascha@3333: import de.intevation.seddb.model.Zzarchiv;
sascha@3333: import de.intevation.seddb.model.Zzprobenahmeart;
sascha@3333: import de.intevation.seddb.model.Zzsondierungart;
sascha@3333: import de.intevation.seddb.model.Zzthema;
sascha@3333: 
sascha@3333: public class SedDBCredentials
sascha@3333: extends      Credentials
sascha@3333: {
sascha@3333:     public static final String XPATH_USER =
sascha@3333:         "/artifact-database/seddb-database/user/text()";
sascha@3333: 
sascha@3333:     public static final String XPATH_PASSWORD =
sascha@3333:         "/artifact-database/seddb-database/password/text()";
sascha@3333: 
sascha@3333:     public static final String XPATH_DIALECT =
sascha@3333:         "/artifact-database/seddb-database/dialect/text()";
sascha@3333: 
sascha@3333:     public static final String XPATH_DRIVER =
sascha@3333:         "/artifact-database/seddb-database/driver/text()";
sascha@3333: 
sascha@3333:     public static final String XPATH_URL =
sascha@3333:         "/artifact-database/seddb-database/url/text()";
sascha@3333: 
sascha@3333:     public static final String DEFAULT_USER =
sascha@3333:         System.getProperty("flys.seddb.user", "seddb");
sascha@3333: 
sascha@3333:     public static final String DEFAULT_PASSWORD =
sascha@3333:         System.getProperty("flys.seddb.password", "seddb");
sascha@3333: 
sascha@3333:     public static final String DEFAULT_DIALECT =
sascha@3333:         System.getProperty(
sascha@3333:             "flys.seddb.dialect",
sascha@3333:             "org.hibernate.dialect.PostgreSQLDialect");
sascha@3333: 
sascha@3333:     public static final String DEFAULT_DRIVER =
sascha@3333:         System.getProperty(
sascha@3333:             "flys.seddb.driver",
sascha@3333:             "org.postgresql.Driver");
sascha@3333: 
sascha@3333:     public static final String DEFAULT_URL =
sascha@3333:         System.getProperty(
sascha@3333:             "flys.seddb.url",
sascha@3333:             "jdbc:postgresql://localhost:5432/seddb");
sascha@3333: 
sascha@3333:     public static final Class [] CLASSES = {
sascha@3333:         BezugspegelgewId.class,
sascha@3333:         Bezugspegelgew.class,
sascha@3333:         Bezugspegel.class,
sascha@3333:         Bild.class,
sascha@3333:         Gewaesser.class,
sascha@3333:         Gfaenger.class,
sascha@3333:         GlotlinksId.class,
sascha@3333:         Glotlinks.class,
sascha@3333:         Glotrechte.class,
sascha@3333:         GprobeId.class,
sascha@3333:         Gprobe.class,
sascha@3333:         Gsiebsatz.class,
sascha@3333:         Gsiebung.class,
sascha@3333:         GsiebungsiebId.class,
sascha@3333:         Gsiebungsieb.class,
sascha@3333:         HpeilpunktId.class,
sascha@3333:         Hpeilpunkt.class,
sascha@3333:         Hpeilung.class,
sascha@3333:         Messung.class,
sascha@3333:         MessunglotcountId.class,
sascha@3333:         Messunglotcount.class,
sascha@3333:         MessungstaId.class,
sascha@3333:         Messungsta.class,
sascha@3333:         MessunguferbezugId.class,
sascha@3333:         Messunguferbezug.class,
sascha@3333:         MpeilpunktId.class,
sascha@3333:         Mpeilpunkt.class,
sascha@3333:         Mpeilung.class,
sascha@3333:         Probebild.class,
sascha@3333:         Siebanalyse.class,
sascha@3333:         SlotlinksId.class,
sascha@3333:         Slotlinks.class,
sascha@3333:         Slotrechte.class,
sascha@3333:         Sohlprobe.class,
sascha@3333:         Sohltest.class,
sascha@3333:         SprobeId.class,
sascha@3333:         Sprobe.class,
sascha@3333:         Ssiebung.class,
sascha@3333:         SsiebungsiebId.class,
sascha@3333:         Ssiebungsieb.class,
sascha@3333:         StationgewId.class,
sascha@3333:         Stationgew.class,
sascha@3333:         Station.class,
sascha@3333:         TmpGloChanged.class,
sascha@3333:         TmpMesAchanged.class,
sascha@3333:         TmpMesGchanged.class,
sascha@3333:         TmpMesQchanged.class,
sascha@3333:         TmpMesSchanged.class,
sascha@3333:         Zzarchiv.class,
sascha@3333:         Zzprobenahmeart.class,
sascha@3333:         Zzsondierungart.class,
sascha@3333:         Zzthema.class
sascha@3333:     };
sascha@3333: 
sascha@3333:     private static Credentials instance;
sascha@3333: 
sascha@3333:     public SedDBCredentials() {
sascha@3333:     }
sascha@3333: 
sascha@3333:     public SedDBCredentials(
sascha@3333:         String user,
sascha@3333:         String password,
sascha@3333:         String dialect,
sascha@3333:         String driver,
sascha@3333:         String url
sascha@3333:     ) {
sascha@3333:         super(user, password, dialect, driver, url, CLASSES);
sascha@3333:     }
sascha@3333: 
sascha@3333:     public static synchronized Credentials getInstance() {
sascha@3333:         if (instance == null) {
sascha@3333:             String user =
sascha@3333:                 Config.getStringXPath(XPATH_USER, DEFAULT_USER);
sascha@3333:             String password =
sascha@3333:                 Config.getStringXPath(XPATH_PASSWORD, DEFAULT_PASSWORD);
sascha@3333:             String dialect =
sascha@3333:                 Config.getStringXPath(XPATH_DIALECT, DEFAULT_DIALECT);
sascha@3333:             String driver =
sascha@3333:                 Config.getStringXPath(XPATH_DRIVER, DEFAULT_DRIVER);
sascha@3333:             String url =
sascha@3333:                 Config.getStringXPath(XPATH_URL, DEFAULT_URL);
sascha@3333: 
sascha@3333:             instance = new SedDBCredentials(
sascha@3333:                 user, password, dialect, driver, url);
sascha@3333:         }
sascha@3333:         return instance;
sascha@3333:     }
sascha@3333: 
sascha@3333:     public static Credentials getDefault() {
sascha@3333:         return new SedDBCredentials(
sascha@3333:             DEFAULT_USER,
sascha@3333:             DEFAULT_PASSWORD,
sascha@3333:             DEFAULT_DIALECT,
sascha@3333:             DEFAULT_DRIVER,
sascha@3333:             DEFAULT_URL);
sascha@3333:     }
sascha@3333: }
sascha@3333: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :