diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..68e72cd --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,31 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'adopt' + - name: Build with Maven + run: mvn -B package --file pom.xml + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..909f0f5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/target/ +/.settings +.classpath +.project +/bin/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..6c7a647 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +[![](https://jitpack.io/v/GeOxygene/geoxygene-schemageo.svg)](https://jitpack.io/#GeOxygene/geoxygene-schemageo) + +# geoxygene-schemageo + +_geoxygene-schemageo_, a module from [Geoxygene](https://github.com/IGNF/geoxygene), hosted as a standalone artifact/repository. diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8d97f36 --- /dev/null +++ b/pom.xml @@ -0,0 +1,104 @@ + + 4.0.0 + + geoxygene-schemageo + jar + geoxygene-contrib + fr.ign.schemageo + 1.9 + + + 5.4.1.Final + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 8 + 8 + UTF-8 + + + + org.apache.maven.plugins + maven-source-plugin + 3.2.1 + + + attach-sources + deploy + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.3.0 + + + attach-javadocs + deploy + + jar + + + + + + + + + + org.apache.logging.log4j + log4j-core + 2.13.3 + + + + com.github.GeOxygene + geoxygene-api + 1.9 + compile + + + com.github.GeOxygene + geoxygene-feature + 1.9 + compile + + + com.github.GeOxygene + geoxygene-spatial + 1.9 + compile + + + + org.hibernate + hibernate-entitymanager + ${hibernate.version} + + + org.hibernate.javax.persistence + hibernate-jpa-2.0-api + 1.0.1.Final + + + + + + jitpack.io + https://jitpack.io + + + + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/CreationDataSet.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/CreationDataSet.java new file mode 100644 index 0000000..75ba8df --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/CreationDataSet.java @@ -0,0 +1,296 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D; + +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.Batiment; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.Cimetiere; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.ConstructionLineaire; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.ConstructionPonctuelle; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.ConstructionSurfacique; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.PisteAerodrome; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.PointActiviteInteret; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.Reservoir; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.SurfaceActivite; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati.TerrainDeSport; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.administratif.Commune; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers.Hydronyme; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers.LieuDitHabite; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers.LieuDitNonHabite; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers.Oronyme; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers.ToponymeCommunication; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers.ToponymeDivers; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide.Canalisation; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide.LigneElectrique; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide.PosteTransformation; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide.Pylone; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ferre.AireDeTriage; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ferre.TransportParCable; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ferre.TronconVoieFerree; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie.Laisse; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie.PointDEau; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie.SurfaceDEau; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie.TronconDeCoursDEau; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.orographie.LigneOrographique; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.routier.SurfaceDeRoute; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.routier.TronconDeChemin; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.routier.TronconDeRoute; +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.vegetation.ZoneArboree; +import fr.ign.cogit.geoxygene.feature.DataSet; +import fr.ign.cogit.geoxygene.feature.Population; + +public class CreationDataSet { + + /** Création des thèmes et des populations des thèmes + * d'un jeu de données BDTopo Pays suivant le modèle défini par l'export Shape2D. + * + * @param persistance : Définit si le jeu de données est persistant ou non. + * Si il est persistant, tous les thèmes et populations créées le sont + * aussi par défaut, mais cela peut être changé par la suite. + * + * @param nom_package_jeu_complet : nom du package qui contient les classes concrètes + * des populations du jeu de données (chemin complet du package contenant + * les sous package des thèmes). + * + * @param metadonnees : Liste de string (peut-être null) représentant dans l'ordre: + * - le nom logique de la base (texte libre pour la déco), + * - la date des données + * - la zone couverte par les données + * - un commentaire + * Tous les textes sont libres et d'au plus 255 caractères + * + */ + public static DataSet nouveauDataSet(boolean persistance, String nom_package_jeu_complet, List metadonnees) { + DataSet jeu = new DataSet(); + if (persistance) DataSet.db.makePersistent(jeu); + + //métadonnées + jeu.setTypeBD("BDPays"); + jeu.setModele("Shape 2D"); + if (metadonnees != null) { + Iterator itMD = metadonnees.iterator(); + if (itMD.hasNext()) jeu.setNom(itMD.next()); + if (itMD.hasNext()) jeu.setDate(itMD.next()); + if (itMD.hasNext()) jeu.setZone(itMD.next()); + if (itMD.hasNext()) jeu.setCommentaire(itMD.next()); + } + + // création des thèmes + ajouteThemeBati(jeu, nom_package_jeu_complet, persistance); + ajouteThemeAdmin(jeu, nom_package_jeu_complet, persistance); + ajouteThemeDivers(jeu, nom_package_jeu_complet, persistance); + ajouteThemeEnergie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeFerre(jeu, nom_package_jeu_complet, persistance); + ajouteThemeHydrographie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeOrographie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeRoutier(jeu, nom_package_jeu_complet, persistance); + ajouteThemeVegetation(jeu, nom_package_jeu_complet, persistance); + + return jeu; + } + + + public static void ajouteThemeBati(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Surface d'activité et bati' de la BDPays"); + theme.setNom("Bati"); + String nom_package = nom_package_jeu_complet+".activite_bati"; + try{ + Population pop; + pop = new Population(persistance, "Bâtiments", Class.forName(nom_package+".Batiment"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Cimetières", Class.forName(nom_package+".Cimetiere"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions linéaires", Class.forName(nom_package+".ConstructionLineaire"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions ponctuelles", Class.forName(nom_package+".ConstructionPonctuelle"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions surfaciques", Class.forName(nom_package+".ConstructionSurfacique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Pistes d'aérodrome", Class.forName(nom_package+".PisteAerodrome"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Points d'activité ou d'intérêt", Class.forName(nom_package+".PointActiviteInteret"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Réservoirs", Class.forName(nom_package+".Reservoir"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Surfaces d'activité", Class.forName(nom_package+".SurfaceActivite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Terrains de sport", Class.forName(nom_package+".TerrainDeSport"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeAdmin(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Administratif' de la BDPays"); + theme.setNom("Administratif"); + String nom_package = nom_package_jeu_complet+".administratif"; + try{ + Population pop; + pop = new Population(persistance, "Communes", Class.forName(nom_package+".Commune"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeDivers(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Objets Divers' de la BDPays"); + theme.setNom("Divers"); + String nom_package = nom_package_jeu_complet+".divers"; + try{ + Population pop; + pop = new Population(persistance, "Hydronymes", Class.forName(nom_package+".Hydronyme"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Lieux-dits habités", Class.forName(nom_package+".LieuDitHabite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Lieux-dits non habités", Class.forName(nom_package+".LieuDitNonHabite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Oronymes", Class.forName(nom_package+".Oronyme"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Toponymes communication", Class.forName(nom_package+".ToponymeCommunication"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Toponymes divers", Class.forName(nom_package+".ToponymeDivers"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeEnergie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Transport d'énergie et de fluides' de la BDPays"); + theme.setNom("Energie"); + String nom_package = nom_package_jeu_complet+".energie_fluide"; + try{ + Population pop; + pop = new Population(persistance, "Canalisation", Class.forName(nom_package+".Canalisation"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Ligne électrique", Class.forName(nom_package+".LigneElectrique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Poste de transformation", Class.forName(nom_package+".PosteTransformation"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Pylone", Class.forName(nom_package+".Pylone"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeFerre(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Voies ferrées et autres moyens de transport terrestre' de la BDPays"); + theme.setNom("Ferré"); + String nom_package = nom_package_jeu_complet+".ferre"; + try{ + Population pop; + pop = new Population(persistance, "Tronçons de voies ferrées", Class.forName(nom_package+".TronconVoieFerree"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Aires de triage", Class.forName(nom_package+".AireDeTriage"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Transports par câble", Class.forName(nom_package+".TransportParCable"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeHydrographie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Hydrographie terrestre' de la BDPays"); + theme.setNom("Hydrographie"); + String nom_package = nom_package_jeu_complet+".hydrographie"; + try{ + Population pop; + pop = new Population(persistance, "Tronçons de laisse", Class.forName(nom_package+".Laisse"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Points d'eau", Class.forName(nom_package+".PointDEau"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Surfaces d'eau", Class.forName(nom_package+".SurfaceDEau"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de cours d'eau", Class.forName(nom_package+".TronconDeCoursDEau"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeOrographie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Orographie' de la BDPays"); + theme.setNom("Orographie"); + String nom_package = nom_package_jeu_complet+".orographie"; + try{ + Population pop; + pop = new Population(persistance, "Lignes orographiques", Class.forName(nom_package+".LigneOrographique"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeRoutier(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Voies de Communication Routière' de la BDPays"); + theme.setNom("Routier"); + String nom_package = nom_package_jeu_complet+".routier"; + try{ + Population pop; + pop = new Population(persistance, "Surfaces de route", Class.forName(nom_package+".SurfaceDeRoute"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de route", Class.forName(nom_package+".TronconDeRoute"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de chemin", Class.forName(nom_package+".TronconDeChemin"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeVegetation(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Végétation' de la BDPays"); + theme.setNom("Végétation"); + String nom_package = nom_package_jeu_complet+".vegetation"; + try{ + Population pop; + pop = new Population(persistance, "Zones arborées", Class.forName(nom_package+".ZoneArboree"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + +} + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ElementBDPays.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ElementBDPays.java new file mode 100644 index 0000000..6264f95 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ElementBDPays.java @@ -0,0 +1,16 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D; + +import fr.ign.cogit.geoxygene.feature.FT_Feature; + +/** Classe mère pour toute classe d'éléments de la BDTopo Pays au format de livraison shape2D. + * NB: un attribut Identifiant doit être rajouté dans le futur, mais + * cela n'est pas encore fait. + */ + +public abstract class ElementBDPays extends FT_Feature { + + protected String source; + public String getSource() {return this.source; } + public void setSource (String Source) {source = Source; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Batiment.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Batiment.java new file mode 100644 index 0000000..4e227c3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Batiment.java @@ -0,0 +1,33 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Batiment extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String categorie; + public String getCategorie() {return this.categorie; } + public void setCategorie (String Categorie) {categorie = Categorie; } + + protected double hauteur; + public double getHauteur() {return this.hauteur; } + public void setHauteur (double Hauteur) {hauteur = Hauteur; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Cimetiere.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Cimetiere.java new file mode 100644 index 0000000..98ca20f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Cimetiere.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Cimetiere extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionLineaire.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionLineaire.java new file mode 100644 index 0000000..e39f689 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionLineaire.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class ConstructionLineaire extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionPonctuelle.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionPonctuelle.java new file mode 100644 index 0000000..833c1e1 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionPonctuelle.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ConstructionPonctuelle extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionSurfacique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionSurfacique.java new file mode 100644 index 0000000..547b1d4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/ConstructionSurfacique.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class ConstructionSurfacique extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/PisteAerodrome.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/PisteAerodrome.java new file mode 100644 index 0000000..bc6c0e4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/PisteAerodrome.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class PisteAerodrome extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/PointActiviteInteret.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/PointActiviteInteret.java new file mode 100644 index 0000000..1361253 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/PointActiviteInteret.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class PointActiviteInteret extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String categorie; + public String getCategorie() {return this.categorie; } + public void setCategorie (String Categorie) {categorie = Categorie; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Reservoir.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Reservoir.java new file mode 100644 index 0000000..170ac0f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/Reservoir.java @@ -0,0 +1,31 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Reservoir extends ElementBDPays { + + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double hauteur; + public double getHauteur() {return this.hauteur; } + public void setHauteur (double Hauteur) {hauteur = Hauteur; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/SurfaceActivite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/SurfaceActivite.java new file mode 100644 index 0000000..bd792c8 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/SurfaceActivite.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class SurfaceActivite extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String categorie; + public String getCategorie() {return this.categorie; } + public void setCategorie (String Categorie) {categorie = Categorie; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/TerrainDeSport.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/TerrainDeSport.java new file mode 100644 index 0000000..0ec3a51 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/activite_bati/TerrainDeSport.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class TerrainDeSport extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/administratif/Commune.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/administratif/Commune.java new file mode 100644 index 0000000..30ad34f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/administratif/Commune.java @@ -0,0 +1,50 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.administratif; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Commune extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String code_insee; + public String getCode_insee() {return this.code_insee; } + public void setCode_insee (String Code_insee) {code_insee = Code_insee; } + + protected String statut; + public String getStatut() {return this.statut; } + public void setStatut (String Statut) {statut = Statut; } + + protected String canton; + public String getCanton() {return this.canton; } + public void setCanton (String Canton) {canton = Canton; } + + protected String arrond; + public String getArrond() {return this.arrond; } + public void setArrond (String Arrond) {arrond = Arrond; } + + protected String depart; + public String getDepart() {return this.depart; } + public void setDepart (String Depart) {depart = Depart; } + + protected String region; + public String getRegion() {return this.region; } + public void setRegion (String Region) {region = Region; } + + protected double population_; + public double getPopulation_() {return this.population_; } + public void setPopulation_ (double Population_) {population_ = Population_; } + + protected String multi_cant; + public String getMulti_cant() {return this.multi_cant; } + public void setMulti_cant (String Multi_cant) {multi_cant = Multi_cant; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/Hydronyme.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/Hydronyme.java new file mode 100644 index 0000000..af1f8a8 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/Hydronyme.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Hydronyme extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/LieuDitHabite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/LieuDitHabite.java new file mode 100644 index 0000000..ff9ed0a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/LieuDitHabite.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class LieuDitHabite extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/LieuDitNonHabite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/LieuDitNonHabite.java new file mode 100644 index 0000000..ac7a632 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/LieuDitNonHabite.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class LieuDitNonHabite extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/Oronyme.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/Oronyme.java new file mode 100644 index 0000000..d4ee9e6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/Oronyme.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Oronyme extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/ToponymeCommunication.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/ToponymeCommunication.java new file mode 100644 index 0000000..b8713e3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/ToponymeCommunication.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ToponymeCommunication extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/ToponymeDivers.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/ToponymeDivers.java new file mode 100644 index 0000000..fca164b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/divers/ToponymeDivers.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.divers; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ToponymeDivers extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/Canalisation.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/Canalisation.java new file mode 100644 index 0000000..7d09198 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/Canalisation.java @@ -0,0 +1,30 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class Canalisation extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/LigneElectrique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/LigneElectrique.java new file mode 100644 index 0000000..fcf938d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/LigneElectrique.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class LigneElectrique extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String voltage; + public String getVoltage() {return this.voltage; } + public void setVoltage (String Voltage) {voltage = Voltage; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/PosteTransformation.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/PosteTransformation.java new file mode 100644 index 0000000..469aa43 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/PosteTransformation.java @@ -0,0 +1,13 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class PosteTransformation extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/Pylone.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/Pylone.java new file mode 100644 index 0000000..8075b1b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/energie_fluide/Pylone.java @@ -0,0 +1,15 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Pylone extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/AireDeTriage.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/AireDeTriage.java new file mode 100644 index 0000000..2de024d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/AireDeTriage.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ferre; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class AireDeTriage extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/TransportParCable.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/TransportParCable.java new file mode 100644 index 0000000..e510fb0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/TransportParCable.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ferre; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TransportParCable extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/TronconVoieFerree.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/TronconVoieFerree.java new file mode 100644 index 0000000..887d9e2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/ferre/TronconVoieFerree.java @@ -0,0 +1,46 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ferre; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconVoieFerree extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String electrifie; + public String getElectrifie() {return this.electrifie; } + public void setElectrifie (String Electrifie) {electrifie = Electrifie; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected String largeur; + public String getLargeur() {return this.largeur; } + public void setLargeur (String Largeur) {largeur = Largeur; } + + protected double nb_voies; + public double getNb_voies() {return this.nb_voies; } + public void setNb_voies (double Nb_voies) {nb_voies = Nb_voies; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/Laisse.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/Laisse.java new file mode 100644 index 0000000..fafd002 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/Laisse.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class Laisse extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/PointDEau.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/PointDEau.java new file mode 100644 index 0000000..6ce25d7 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/PointDEau.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class PointDEau extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/SurfaceDEau.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/SurfaceDEau.java new file mode 100644 index 0000000..43ff5fc --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/SurfaceDEau.java @@ -0,0 +1,30 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class SurfaceDEau extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String regime; + public String getRegime() {return this.regime; } + public void setRegime (String Regime) {regime = Regime; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/TronconDeCoursDEau.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/TronconDeCoursDEau.java new file mode 100644 index 0000000..9d78669 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/hydrographie/TronconDeCoursDEau.java @@ -0,0 +1,46 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconDeCoursDEau extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected double artif; + public double getArtif() {return this.artif; } + public void setArtif (double Artif) {artif = Artif; } + + protected double fictif; + public double getFictif() {return this.fictif; } + public void setFictif (double Fictif) {fictif = Fictif; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected String regime; + public String getRegime() {return this.regime; } + public void setRegime (String Regime) {regime = Regime; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/orographie/LigneOrographique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/orographie/LigneOrographique.java new file mode 100644 index 0000000..044873e --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/orographie/LigneOrographique.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.orographie; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class LigneOrographique extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/SurfaceDeRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/SurfaceDeRoute.java new file mode 100644 index 0000000..b219dba --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/SurfaceDeRoute.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.routier; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class SurfaceDeRoute extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/TronconDeChemin.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/TronconDeChemin.java new file mode 100644 index 0000000..92f124c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/TronconDeChemin.java @@ -0,0 +1,38 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.routier; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconDeChemin extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/TronconDeRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/TronconDeRoute.java new file mode 100644 index 0000000..08eeb03 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/routier/TronconDeRoute.java @@ -0,0 +1,63 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.routier; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconDeRoute extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + public String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String classement; + public String getClassement() {return this.classement; } + public void setClassement (String Classement) {classement = Classement; } + + protected String dep_gest; + public String getDep_gest() {return this.dep_gest; } + public void setDep_gest (String Dep_gest) {dep_gest = Dep_gest; } + + protected double fictif; + public double getFictif() {return this.fictif; } + public void setFictif (double Fictif) {fictif = Fictif; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected double largeur; + public double getLargeur() {return this.largeur; } + public void setLargeur (double Largeur) {largeur = Largeur; } + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected double nb_voies; + public double getNb_voies() {return this.nb_voies; } + public void setNb_voies (double Nb_voies) {nb_voies = Nb_voies; } + + protected String numero; + public String getNumero() {return this.numero; } + public void setNumero (String Numero) {numero = Numero; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/vegetation/ThemeVegetation.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/vegetation/ThemeVegetation.java new file mode 100644 index 0000000..dc84a64 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/vegetation/ThemeVegetation.java @@ -0,0 +1,11 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.vegetation; + +import fr.ign.cogit.geoxygene.feature.DataSet; + +/** classe devenue inutile + * @deprecated + */ +@Deprecated +public class ThemeVegetation extends DataSet { + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/vegetation/ZoneArboree.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/vegetation/ZoneArboree.java new file mode 100644 index 0000000..d8ebe39 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdPaysShape2D/vegetation/ZoneArboree.java @@ -0,0 +1,15 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.vegetation; + + +import fr.ign.cogit.appli.commun.schema.shp.bdPaysShape2D.ElementBDPays; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class ZoneArboree extends ElementBDPays { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/.nbattrs b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/.nbattrs new file mode 100644 index 0000000..0d0b993 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/.nbattrs @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/CreationDataSet.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/CreationDataSet.java new file mode 100644 index 0000000..b0ebf01 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/CreationDataSet.java @@ -0,0 +1,277 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto; + +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif.Arrondissement; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif.Canton; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif.Commune; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif.Departement; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif.LimiteAdministrative; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.Aerodrome; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.Cimetiere; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.ConstructionElevee; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.Digue; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.EnceinteMilitaire; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.LigneElectrique; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.MetroAerien; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.PisteAerodrome; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements.TransportParCable; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ferre.NoeudFerre; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ferre.TronconVoieFerree; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.habillage.ZoneOccupationDuSol; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie.Laisse; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie.ObjetHydrographiquePonctuel; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie.ToponymeSurfaceHydrographique; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie.TronconHydrographique; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie.ZoneHydrographiqueTexture; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.AccesEquipement; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.CommunicationRestreinte; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.DebutSection; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.EquipementRoutier; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.Franchissement; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.Itineraire; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.LiaisonMaritime; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.NoeudRoutier; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier.TronconRoute; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes.Etablissement; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes.GR; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes.MassifBoise; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes.PointRemarquableDuRelief; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes.ZoneActivite; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes.ZoneHabitat; +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes.ZoneReglementeeTouristique; +import fr.ign.cogit.geoxygene.feature.DataSet; +import fr.ign.cogit.geoxygene.feature.Population; + +public class CreationDataSet { + + /** Création des thèmes et des populations des thèmes + * d'un jeu de données BDCarto suivant le modèle défini par l'export Shape. + * + * @param persistance : Définit si le jeu de données est persistant ou non. + * Si il est persistant, tous les thèmes et populations créées le sont + * aussi par défaut, mais cela peut être changé par la suite. + * + * @param nom_package_jeu_complet : nom du package qui contient les classes concrètes + * des populations du jeu de données (chemin complet du package contenant + * les sous package des thèmes). + * + * @param metadonnees : Liste de string (peut-être null) représentant dans l'ordre: + * - le nom logique de la base (texte libre pour la déco), + * - la date des données + * - la zone couverte par les données + * - un commentaire + * Tous les textes sont libres et d'au plus 255 caractères + * + */ + public static DataSet nouveauDataSet(boolean persistance, String nom_package_jeu_complet, List metadonnees) { + DataSet jeu = new DataSet(); + if (persistance) DataSet.db.makePersistent(jeu); + + //métadonnées + jeu.setTypeBD("BDCarto"); + jeu.setModele("Shape"); + if (metadonnees != null) { + Iterator itMD = metadonnees.iterator(); + if (itMD.hasNext()) jeu.setNom(itMD.next()); + if (itMD.hasNext()) jeu.setDate(itMD.next()); + if (itMD.hasNext()) jeu.setZone(itMD.next()); + if (itMD.hasNext()) jeu.setCommentaire(itMD.next()); + } + + // création des thèmes + ajouteThemeAdmin(jeu, nom_package_jeu_complet, persistance); + ajouteThemeEquipements(jeu, nom_package_jeu_complet, persistance); + ajouteThemeFerre(jeu, nom_package_jeu_complet, persistance); + ajouteThemeHabillage(jeu, nom_package_jeu_complet, persistance); + ajouteThemeHydrographie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeRoutier(jeu, nom_package_jeu_complet, persistance); + ajouteThemeToponymes(jeu, nom_package_jeu_complet, persistance); + + return jeu; + } + + public static void ajouteThemeAdmin(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Administratif' de la BDCarto"); + theme.setNom("Administratif"); + String nom_package = nom_package_jeu_complet+".administratif"; + try{ + Population pop; + pop = new Population(persistance, "Arrondissements", Class.forName(nom_package+".Arrondissement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Cantons", Class.forName(nom_package+".Canton"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Communes", Class.forName(nom_package+".Commune"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Départements", Class.forName(nom_package+".Departement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Limites administratives", Class.forName(nom_package+".LimiteAdministrative"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeEquipements(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Equipements' de la BDCarto"); + theme.setNom("Equipements"); + String nom_package = nom_package_jeu_complet+".equipements"; + try{ + Population pop; + pop = new Population(persistance, "Aérodromes", Class.forName(nom_package+".Aerodrome"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Cimetières", Class.forName(nom_package+".Cimetiere"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions élevées", Class.forName(nom_package+".ConstructionElevee"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Enceintes militaires", Class.forName(nom_package+".EnceinteMilitaire"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Lignes électriques", Class.forName(nom_package+".LigneElectrique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Pistes d'aérodromes", Class.forName(nom_package+".PisteAerodrome"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Digues", Class.forName(nom_package+".Digue"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Transports par cable", Class.forName(nom_package+".TransportParCable"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Métros aériens", Class.forName(nom_package+".MetroAerien"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeFerre(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Réseau ferré' de la BDCarto"); + theme.setNom("Ferré"); + String nom_package = nom_package_jeu_complet+".ferre"; + try{ + Population pop; + pop = new Population(persistance, "Noeuds ferrés", Class.forName(nom_package+".NoeudFerre"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de voie ferrée", Class.forName(nom_package+".TronconVoieFerree"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeHabillage(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Habillage' de la BDCarto"); + theme.setNom("Habillage"); + String nom_package = nom_package_jeu_complet+".habillage"; + try{ + Population pop; + pop = new Population(persistance, "Zones d'occupation du sol", Class.forName(nom_package+".ZoneOccupationDuSol"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + + } + + public static void ajouteThemeHydrographie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Hydrographie' de la BDCarto"); + theme.setNom("Hydrographie"); + String nom_package = nom_package_jeu_complet+".hydrographie"; + try{ + Population pop; + pop = new Population(persistance, "Tronçons hydrographiques", Class.forName(nom_package+".TronconHydrographique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Objets hydrographiques ponctuels", Class.forName(nom_package+".ObjetHydrographiquePonctuel"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Toponymes de surface hydrographique", Class.forName(nom_package+".ToponymeSurfaceHydrographique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de laisse", Class.forName(nom_package+".Laisse"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Zones hydrographiques de texture", Class.forName(nom_package+".ZoneHydrographiqueTexture"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeRoutier(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Réseau routier et franchissements' de la BDCarto"); + theme.setNom("Routier"); + String nom_package = nom_package_jeu_complet+".routier"; + try{ + Population pop; + pop = new Population(persistance, "Accès équipements", Class.forName(nom_package+".AccesEquipement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Communications restreintes", Class.forName(nom_package+".CommunicationRestreinte"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Débuts de section", Class.forName(nom_package+".DebutSection"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Equipements routiers", Class.forName(nom_package+".EquipementRoutier"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Franchissements", Class.forName(nom_package+".Franchissement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Noeuds routiers", Class.forName(nom_package+".NoeudRoutier"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de route", Class.forName(nom_package+".TronconRoute"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Liaisons maritimes", Class.forName(nom_package+".LiaisonMaritime"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Itinéraires routiers", Class.forName(nom_package+".Itineraire"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + + } + + public static void ajouteThemeToponymes(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Toponymes' de la BDCarto"); + theme.setNom("Toponymes"); + String nom_package = nom_package_jeu_complet+".toponymes"; + try{ + Population pop; + pop = new Population(persistance, "Etablissements", Class.forName(nom_package+".Etablissement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Massifs boisés", Class.forName(nom_package+".MassifBoise"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Points remarquables du relief", Class.forName(nom_package+".PointRemarquableDuRelief"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Zones d'activité", Class.forName(nom_package+".ZoneActivite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Zones d'habitat", Class.forName(nom_package+".ZoneHabitat"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Zones règlementées touristiques", Class.forName(nom_package+".ZoneReglementeeTouristique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "GR", Class.forName(nom_package+".GR"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ElementBDCarto.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ElementBDCarto.java new file mode 100644 index 0000000..65ffa11 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ElementBDCarto.java @@ -0,0 +1,48 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.geoxygene.feature.FT_Feature; +import fr.ign.cogit.geoxygene.feature.Population; + +/** Classe mère pour toute classe d'éléments de la BDCarto V2 au format de livraison shape. + * Document de référence: descriptif de livraison shapefile, edition 2, 2001. + */ + +@SuppressWarnings("unchecked") + +public abstract class ElementBDCarto extends FT_Feature { + + /** Identifiant donné par la BDCarto */ + protected double id_bdcarto; + /** Identifiant donné par la BDCarto */ + public double getId_bdcarto() {return this.id_bdcarto; } + /** Identifiant donné par la BDCarto */ + public void setId_bdcarto (double Id_bdcarto) {id_bdcarto = Id_bdcarto; } + + + public static ElementBDCarto recherche_element_avec_idbdc(Population pop, double id) { + ElementBDCarto element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = (ElementBDCarto)it.next(); + if ( element.getId_bdcarto() == id ) return element; + } + return null; + } + + public static List search_list_idBDCarto (Population pop,int id){ + List list_idBDCarto = new ArrayList(); + ElementBDCarto element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = (ElementBDCarto)it.next(); + if ( element.getId_bdcarto() == id ) list_idBDCarto.add(element); + } + if (list_idBDCarto == null) return null; + return list_idBDCarto; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Arrondissement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Arrondissement.java new file mode 100644 index 0000000..0bd1110 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Arrondissement.java @@ -0,0 +1,59 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +/** + * Classe geographique. Classe generee automatiquement par le chargeur de la + * plate-forme Oxygene + */ + +public abstract class Arrondissement extends + fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** + * Renvoie la géométrie de l'objet, castée plus précisément qu'avec la + * méthode getGeom() + */ + public GM_Polygon getGeometrie() { + return (GM_Polygon) geom; + } + + /** + * Définit la géométrie de l'objet, castée plus précisément qu'avec la + * méthode setGeom() + */ + public void setGeometrie(GM_Polygon G) { + this.geom = G; + } + + protected String insee_arr; + + public String getInsee_arr() { + return this.insee_arr; + } + + public void setInsee_arr(String Insee_arr) { + insee_arr = Insee_arr; + } + + protected String insee_dept; + + public String getInsee_dept() { + return this.insee_dept; + } + + public void setInsee_dept(String Insee_dept) { + insee_dept = Insee_dept; + } + + protected String insee_reg; + + public String getInsee_reg() { + return this.insee_reg; + } + + public void setInsee_reg(String Insee_reg) { + insee_reg = Insee_reg; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Canton.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Canton.java new file mode 100644 index 0000000..d37559e --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Canton.java @@ -0,0 +1,69 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +/** + * Classe geographique. Classe generee automatiquement par le chargeur de la + * plate-forme Oxygene + */ + +public abstract class Canton extends + fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** + * Renvoie la géométrie de l'objet, castée plus précisément qu'avec la + * méthode getGeom() + */ + public GM_Polygon getGeometrie() { + return (GM_Polygon) geom; + } + + /** + * Définit la géométrie de l'objet, castée plus précisément qu'avec la + * méthode setGeom() + */ + public void setGeometrie(GM_Polygon G) { + this.geom = G; + } + + protected String insee_cant; + + public String getInsee_cant() { + return this.insee_cant; + } + + public void setInsee_cant(String Insee_cant) { + insee_cant = Insee_cant; + } + + protected String insee_arr; + + public String getInsee_arr() { + return this.insee_arr; + } + + public void setInsee_arr(String Insee_arr) { + insee_arr = Insee_arr; + } + + protected String insee_dept; + + public String getInsee_dept() { + return this.insee_dept; + } + + public void setInsee_dept(String Insee_dept) { + insee_dept = Insee_dept; + } + + protected String insee_reg; + + public String getInsee_reg() { + return this.insee_reg; + } + + public void setInsee_reg(String Insee_reg) { + insee_reg = Insee_reg; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Commune.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Commune.java new file mode 100644 index 0000000..f8e9f2c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Commune.java @@ -0,0 +1,158 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +/** + * Classe geographique. Classe generee automatiquement par le chargeur de la + * plate-forme Oxygene + */ +public abstract class Commune extends + fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** + * Renvoie la géométrie de l'objet, castée plus précisément qu'avec la + * méthode getGeom() + */ + public GM_Polygon getGeometrie() { + return (GM_Polygon) geom; + } + + /** + * Définit la géométrie de l'objet, castée plus précisément qu'avec la + * méthode setGeom() + */ + public void setGeometrie(GM_Polygon G) { + this.geom = G; + } + + protected String nom_comm; + + public String getNom_comm() { + return this.nom_comm; + } + + public void setNom_comm(String Nom_comm) { + nom_comm = Nom_comm; + } + + protected String insee_comm; + + public String getInsee_comm() { + return this.insee_comm; + } + + public void setInsee_comm(String Insee_comm) { + insee_comm = Insee_comm; + } + + protected String statut; + + public String getStatut() { + return this.statut; + } + + public void setStatut(String Statut) { + statut = Statut; + } + + protected double x_commune; + + public double getX_commune() { + return this.x_commune; + } + + public void setX_commune(double X_commune) { + x_commune = X_commune; + } + + protected double y_commune; + + public double getY_commune() { + return this.y_commune; + } + + public void setY_commune(double Y_commune) { + y_commune = Y_commune; + } + + protected double superficie; + + public double getSuperficie() { + return this.superficie; + } + + public void setSuperficie(double Superficie) { + superficie = Superficie; + } + + protected double population_; + + public double getPopulation_() { + return this.population_; + } + + public void setPopulation_(double Population_) { + population_ = Population_; + } + + protected String insee_cant; + + public String getInsee_cant() { + return this.insee_cant; + } + + public void setInsee_cant(String Insee_cant) { + insee_cant = Insee_cant; + } + + protected String insee_arr; + + public String getInsee_arr() { + return this.insee_arr; + } + + public void setInsee_arr(String Insee_arr) { + insee_arr = Insee_arr; + } + + protected String nom_dept; + + public String getNom_dept() { + return this.nom_dept; + } + + public void setNom_dept(String Nom_dept) { + nom_dept = Nom_dept; + } + + protected String insee_dept; + + public String getInsee_dept() { + return this.insee_dept; + } + + public void setInsee_dept(String Insee_dept) { + insee_dept = Insee_dept; + } + + protected String nom_region; + + public String getNom_region() { + return this.nom_region; + } + + public void setNom_region(String Nom_region) { + nom_region = Nom_region; + } + + protected String insee_reg; + + public String getInsee_reg() { + return this.insee_reg; + } + + public void setInsee_reg(String Insee_reg) { + insee_reg = Insee_reg; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Departement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Departement.java new file mode 100644 index 0000000..c90554d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/Departement.java @@ -0,0 +1,78 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +/** + * Classe geographique. Classe generee automatiquement par le chargeur de la + * plate-forme Oxygene + */ +public abstract class Departement extends + fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** + * Renvoie la geometrie de l'objet, castee plus precisement qu'avec la + * methode getGeom() + */ + public GM_Polygon getGeometrie() { + return (GM_Polygon) geom; + } + + /** + * Definit la géométrie de l'objet, castée plus précisément qu'avec la + * méthode setGeom() + */ + public void setGeometrie(GM_Polygon G) { + this.geom = G; + } + + protected String nom_dept; + + public String getNom_dept() { + return this.nom_dept; + } + + public void setNom_dept(String Nom_dept) { + nom_dept = Nom_dept; + } + + protected String insee_dept; + + public String getInsee_dept() { + return this.insee_dept; + } + + public void setInsee_dept(String Insee_dept) { + insee_dept = Insee_dept; + } + + protected double x_dept; + + public double getX_dept() { + return this.x_dept; + } + + public void setX_dept(double X_dept) { + x_dept = X_dept; + } + + protected double y_dept; + + public double getY_dept() { + return this.y_dept; + } + + public void setY_dept(double Y_dept) { + y_dept = Y_dept; + } + + protected String insee_reg; + + public String getInsee_reg() { + return this.insee_reg; + } + + public void setInsee_reg(String Insee_reg) { + insee_reg = Insee_reg; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/LimiteAdministrative.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/LimiteAdministrative.java new file mode 100644 index 0000000..895ac32 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/administratif/LimiteAdministrative.java @@ -0,0 +1,48 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.administratif; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +/** + * Classe geographique. Classe generee automatiquement par le chargeur de la + * plate-forme Oxygene + */ +public abstract class LimiteAdministrative extends + fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** + * Renvoie la géométrie de l'objet, castée plus précisément qu'avec la + * méthode getGeom() + */ + public GM_LineString getGeometrie() { + return (GM_LineString) geom; + } + + /** + * Définit la géométrie de l'objet, castée plus précisément qu'avec la + * méthode setGeom() + */ + public void setGeometrie(GM_LineString G) { + this.geom = G; + } + + protected String nature; + + public String getNature() { + return this.nature; + } + + public void setNature(String Nature) { + nature = Nature; + } + + protected String precision_; + + public String getPrecision_() { + return this.precision_; + } + + public void setPrecision_(String Precision_) { + precision_ = Precision_; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Aerodrome.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Aerodrome.java new file mode 100644 index 0000000..a3090c9 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Aerodrome.java @@ -0,0 +1,27 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class Aerodrome extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String desserte; + public String getDesserte() {return this.desserte; } + public void setDesserte (String Desserte) {desserte = Desserte; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Cimetiere.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Cimetiere.java new file mode 100644 index 0000000..e7881b4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Cimetiere.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class Cimetiere extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/ConstructionElevee.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/ConstructionElevee.java new file mode 100644 index 0000000..e5fb5ad --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/ConstructionElevee.java @@ -0,0 +1,19 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class ConstructionElevee extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Digue.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Digue.java new file mode 100644 index 0000000..07fc74f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/Digue.java @@ -0,0 +1,20 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class Digue extends ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/EnceinteMilitaire.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/EnceinteMilitaire.java new file mode 100644 index 0000000..2711cef --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/EnceinteMilitaire.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class EnceinteMilitaire extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/LigneElectrique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/LigneElectrique.java new file mode 100644 index 0000000..25ed909 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/LigneElectrique.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class LigneElectrique extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String tension; + public String getTension() {return this.tension; } + public void setTension (String Tension) {tension = Tension; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/MetroAerien.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/MetroAerien.java new file mode 100644 index 0000000..1968ad2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/MetroAerien.java @@ -0,0 +1,14 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class MetroAerien extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/PisteAerodrome.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/PisteAerodrome.java new file mode 100644 index 0000000..741748a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/PisteAerodrome.java @@ -0,0 +1,16 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class PisteAerodrome extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/TransportParCable.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/TransportParCable.java new file mode 100644 index 0000000..87b59a2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/equipements/TransportParCable.java @@ -0,0 +1,24 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.equipements; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class TransportParCable extends ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ferre/NoeudFerre.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ferre/NoeudFerre.java new file mode 100644 index 0000000..c00385f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ferre/NoeudFerre.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.ferre; + +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class NoeudFerre extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ferre/TronconVoieFerree.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ferre/TronconVoieFerree.java new file mode 100644 index 0000000..1cc99d0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/ferre/TronconVoieFerree.java @@ -0,0 +1,51 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.ferre; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class TronconVoieFerree extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String energie; + public String getEnergie() {return this.energie; } + public void setEnergie (String Energie) {energie = Energie; } + + protected String nb_voies; + public String getNb_voies() {return this.nb_voies; } + public void setNb_voies (String Nb_voies) {nb_voies = Nb_voies; } + + protected String largeur; + public String getLargeur() {return this.largeur; } + public void setLargeur (String Largeur) {largeur = Largeur; } + + protected String pos_sol; + public String getPos_sol() {return this.pos_sol; } + public void setPos_sol (String Pos_sol) {pos_sol = Pos_sol; } + + protected String classement; + public String getClassement() {return this.classement; } + public void setClassement (String Classement) {classement = Classement; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected String touristiq; + public String getTouristiq() {return this.touristiq; } + public void setTouristiq (String Touristiq) {touristiq = Touristiq; } + + protected String topo_ligne; + public String getTopo_ligne() {return this.topo_ligne; } + public void setTopo_ligne (String Topo_ligne) {topo_ligne = Topo_ligne; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/habillage/ZoneOccupationDuSol.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/habillage/ZoneOccupationDuSol.java new file mode 100644 index 0000000..7a58912 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/habillage/ZoneOccupationDuSol.java @@ -0,0 +1,20 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.habillage; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class ZoneOccupationDuSol extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/.nbattrs b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/.nbattrs new file mode 100644 index 0000000..0426e99 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/.nbattrs @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/Laisse.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/Laisse.java new file mode 100644 index 0000000..1ca25b4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/Laisse.java @@ -0,0 +1,17 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class Laisse extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + private String nature; + public String getNature() {return this.nature; } + public void setNature (String S) {nature = S; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ObjetHydrographiquePonctuel.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ObjetHydrographiquePonctuel.java new file mode 100644 index 0000000..dd5f6ad --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ObjetHydrographiquePonctuel.java @@ -0,0 +1,31 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +public abstract class ObjetHydrographiquePonctuel extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + + protected String type_; + public String getType_() {return this.type_; } + public void setType_ (String Type_) {type_ = Type_; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ToponymeSurfaceHydrographique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ToponymeSurfaceHydrographique.java new file mode 100644 index 0000000..9bc6e24 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ToponymeSurfaceHydrographique.java @@ -0,0 +1,27 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +public abstract class ToponymeSurfaceHydrographique extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/TronconHydrographique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/TronconHydrographique.java new file mode 100644 index 0000000..898da8b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/TronconHydrographique.java @@ -0,0 +1,48 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconHydrographique extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + + protected String largeur; + public String getLargeur() {return this.largeur; } + public void setLargeur (String Largeur) {largeur = Largeur; } + + protected String etat; + public String getEtat() {return this.etat; } + public void setEtat (String Etat) {etat = Etat; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String navigable; + public String getNavigable() {return this.navigable; } + public void setNavigable (String Navigable) {navigable = Navigable; } + + protected String pos_sol; + public String getPos_sol() {return this.pos_sol; } + public void setPos_sol (String Pos_sol) {pos_sol = Pos_sol; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected String sens; + public String getSens() {return this.sens; } + public void setSens (String Sens) {sens = Sens; } + + protected String top_c_eau; + public String getTop_c_eau() {return this.top_c_eau; } + public void setTop_c_eau (String Top_c_eau) {top_c_eau = Top_c_eau; } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ZoneHydrographiqueTexture.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ZoneHydrographiqueTexture.java new file mode 100644 index 0000000..29b1a4e --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/hydrographie/ZoneHydrographiqueTexture.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.hydrographie; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class ZoneHydrographiqueTexture extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/.nbattrs b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/.nbattrs new file mode 100644 index 0000000..d38df05 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/.nbattrs @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/AccesEquipement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/AccesEquipement.java new file mode 100644 index 0000000..f72a169 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/AccesEquipement.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class AccesEquipement extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected double id_equipmt; + public double getId_equipmt() {return this.id_equipmt; } + public void setId_equipmt (double Id_equipmt) {id_equipmt = Id_equipmt; } + + protected double id_troncon; + public double getId_troncon() {return this.id_troncon; } + public void setId_troncon (double Id_troncon) {id_troncon = Id_troncon; } + + protected String cote; + public String getCote() {return this.cote; } + public void setCote (String Cote) {cote = Cote; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/CommunicationRestreinte.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/CommunicationRestreinte.java new file mode 100644 index 0000000..f60dc5a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/CommunicationRestreinte.java @@ -0,0 +1,37 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class CommunicationRestreinte extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom= geometrie;} + + protected double id_noeud; + public double getId_noeud() {return this.id_noeud; } + public void setId_noeud (double Id_noeud) {id_noeud = Id_noeud; } + + protected double id_tro_ini; + public double getId_tro_ini() {return this.id_tro_ini; } + public void setId_tro_ini (double Id_tro_ini) {id_tro_ini = Id_tro_ini; } + + protected double id_tro_fin; + public double getId_tro_fin() {return this.id_tro_fin; } + public void setId_tro_fin (double Id_tro_fin) {id_tro_fin = Id_tro_fin; } + + protected String interdit; + public String getInterdit() {return this.interdit; } + public void setInterdit (String Interdit) {interdit = Interdit; } + + protected double rest_poids; + public double getRest_poids() {return this.rest_poids; } + public void setRest_poids (double Rest_poids) {rest_poids = Rest_poids; } + + protected double rest_haut; + public double getRest_haut() {return this.rest_haut; } + public void setRest_haut (double Rest_haut) {rest_haut = Rest_haut; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/DebutSection.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/DebutSection.java new file mode 100644 index 0000000..053eda5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/DebutSection.java @@ -0,0 +1,29 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class DebutSection extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String gestion; + public String getGestion() {return this.gestion; } + public void setGestion (String Gestion) {gestion = Gestion; } + + protected String sens; + public String getSens() {return this.sens; } + public void setSens (String Sens) {sens = Sens; } + + protected double id_troncon; + public double getId_troncon() {return this.id_troncon; } + public void setId_troncon (double Id_troncon) {id_troncon = Id_troncon; } + + protected double id_sec_sui; + public double getId_sec_sui() {return this.id_sec_sui; } + public void setId_sec_sui (double Id_sec_sui) {id_sec_sui = Id_sec_sui; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/EquipementRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/EquipementRoutier.java new file mode 100644 index 0000000..3968037 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/EquipementRoutier.java @@ -0,0 +1,21 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class EquipementRoutier extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/Franchissement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/Franchissement.java new file mode 100644 index 0000000..59925b0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/Franchissement.java @@ -0,0 +1,39 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Franchissement extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + + protected String type_tron; + public String getType_tron() {return this.type_tron; } + public void setType_tron (String Type_tron) {type_tron = Type_tron; } + + protected double id_troncon; + public double getId_troncon() {return this.id_troncon; } + public void setId_troncon (double Id_troncon) {id_troncon = Id_troncon; } + + protected String mode_; + public String getMode_() {return this.mode_; } + public void setMode_ (String Mode_) {mode_ = Mode_; } + + protected double niveau; + public double getNiveau() {return this.niveau; } + public void setNiveau (double Niveau) {niveau = Niveau; } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/Itineraire.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/Itineraire.java new file mode 100644 index 0000000..8d5787c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/Itineraire.java @@ -0,0 +1,25 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class Itineraire extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String numero; + public String getNumero() {return this.numero; } + public void setNumero (String Numero) {numero = Numero; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/LiaisonMaritime.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/LiaisonMaritime.java new file mode 100644 index 0000000..1cc29eb --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/LiaisonMaritime.java @@ -0,0 +1,29 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class LiaisonMaritime extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String ouverture; + public String getOuverture() {return ouverture; } + public void setOuverture(String S) {ouverture = S; } + + protected String vocation; + public String getVocation() {return vocation; } + public void setVocation(String S) {vocation= S; } + + protected double duree; + public double getDuree() {return duree; } + public void setDuree(double D) {duree= D; } + + protected String toponyme; + public String getToponyme() {return toponyme; } + public void setToponyme(String S) {toponyme = S; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/NoeudRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/NoeudRoutier.java new file mode 100644 index 0000000..1e8c80d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/NoeudRoutier.java @@ -0,0 +1,37 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class NoeudRoutier extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + + protected String num_carref; + public String getNum_carref() {return this.num_carref; } + public void setNum_carref (String Num_carref) {num_carref = Num_carref; } + + protected String nat_carref; + public String getNat_carref() {return this.nat_carref; } + public void setNat_carref (String Nat_carref) {nat_carref = Nat_carref; } + + protected String top_carref; + public String getTop_carref() {return this.top_carref; } + public void setTop_carref (String Top_carref) {top_carref = Top_carref; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/TronconRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/TronconRoute.java new file mode 100644 index 0000000..b53bbab --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/routier/TronconRoute.java @@ -0,0 +1,77 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.routier; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconRoute extends ElementBDCarto { + + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String vocation; + public String getVocation() {return this.vocation; } + public void setVocation (String Vocation) {vocation = Vocation; } + + protected String nb_chausse; + public String getNb_chausse() {return this.nb_chausse; } + public void setNb_chausse (String Nb_chausse) {nb_chausse = Nb_chausse; } + + protected String nb_voies; + public String getNb_voies() {return this.nb_voies; } + public void setNb_voies (String Nb_voies) {nb_voies = Nb_voies; } + + protected String etat; + public String getEtat() {return this.etat; } + public void setEtat (String Etat) {etat = Etat; } + + protected String acces; + public String getAcces() {return this.acces; } + public void setAcces (String Acces) {acces = Acces; } + + protected String pos_sol; + public String getPos_sol() {return this.pos_sol; } + public void setPos_sol (String Pos_sol) {pos_sol = Pos_sol; } + + protected String res_vert; + public String getRes_vert() {return this.res_vert; } + public void setRes_vert (String Res_vert) {res_vert = Res_vert; } + + protected String sens; + public String getSens() {return this.sens; } + public void setSens (String Sens) {sens = Sens; } + + protected String nb_voies_m; + public String getNb_voies_m() {return this.nb_voies_m; } + public void setNb_voies_m (String Nb_voies_m) {nb_voies_m = Nb_voies_m; } + + protected String nb_voies_d; + public String getNb_voies_d() {return this.nb_voies_d; } + public void setNb_voies_d (String Nb_voies_d) {nb_voies_d = Nb_voies_d; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected String usage_; + public String getUsage_() {return this.usage_; } + public void setUsage_ (String Usage_) {usage_ = Usage_; } + + protected String date_; + public String getDate_() {return this.date_; } + public void setDate_ (String Date_) {date_ = Date_; } + + protected String num_route; + public String getNum_route() {return this.num_route; } + public void setNum_route (String Num_route) {num_route = Num_route; } + + protected String class_adm; + public String getClass_adm() {return this.class_adm; } + public void setClass_adm (String Class_adm) {class_adm = Class_adm; } + + protected String gest_route; + public String getGest_route() {return this.gest_route; } + public void setGest_route (String Gest_route) {gest_route = Gest_route; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/Etablissement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/Etablissement.java new file mode 100644 index 0000000..0ccfc1a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/Etablissement.java @@ -0,0 +1,24 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes; + +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class Etablissement extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/GR.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/GR.java new file mode 100644 index 0000000..412727a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/GR.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes; + +import fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class GR extends ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String numero; + public String getNumero() {return this.numero; } + public void setNumero (String Numero) {numero = Numero; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/MassifBoise.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/MassifBoise.java new file mode 100644 index 0000000..9b61f2d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/MassifBoise.java @@ -0,0 +1,19 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes; + +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class MassifBoise extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/PointRemarquableDuRelief.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/PointRemarquableDuRelief.java new file mode 100644 index 0000000..fbd250c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/PointRemarquableDuRelief.java @@ -0,0 +1,27 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes; + +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class PointRemarquableDuRelief extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneActivite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneActivite.java new file mode 100644 index 0000000..b0d8a36 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneActivite.java @@ -0,0 +1,19 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes; + +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class ZoneActivite extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneHabitat.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneHabitat.java new file mode 100644 index 0000000..2c8d97c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneHabitat.java @@ -0,0 +1,33 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes; + +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class ZoneHabitat extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String insee; + public String getInsee() {return this.insee; } + public void setInsee (String Insee) {insee = Insee; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double id_bdcarto; + @Override + public double getId_bdcarto() {return this.id_bdcarto; } + @Override + public void setId_bdcarto (double Id_bdcarto) {id_bdcarto = Id_bdcarto; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneReglementeeTouristique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneReglementeeTouristique.java new file mode 100644 index 0000000..39bffd3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/bdcarto/toponymes/ZoneReglementeeTouristique.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.shp.bdcarto.toponymes; + +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +/** Classe geographique. Classe generee automatiquement par le chargeur de la plate-forme Oxygene*/ + +public abstract class ZoneReglementeeTouristique extends fr.ign.cogit.appli.commun.schema.shp.bdcarto.ElementBDCarto { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/.nbattrs b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/.nbattrs new file mode 100644 index 0000000..9e7f8bf --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/.nbattrs @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/ElementGeoroute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/ElementGeoroute.java new file mode 100644 index 0000000..22c0e00 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/ElementGeoroute.java @@ -0,0 +1,28 @@ +package fr.ign.cogit.appli.commun.schema.shp.georoute; + +import java.util.Iterator; + +import fr.ign.cogit.geoxygene.feature.FT_Feature; +import fr.ign.cogit.geoxygene.feature.Population; + +public abstract class ElementGeoroute extends FT_Feature { + + protected String typ_donnee; + public String getTyp_donnee() {return this.typ_donnee; } + public void setTyp_donnee (String Typ_donnee) {typ_donnee = Typ_donnee; } + + protected double id_georout; + public double getId_georout() {return this.id_georout; } + public void setId_georout (double Id_georout) {id_georout = Id_georout; } + + public static ElementGeoroute recherche_element_avec_idgeoroute(Population pop, double id) { + ElementGeoroute element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = it.next(); + if ( element.getId_georout() == id ) return element; + } + return null; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/JeuDeDonneesGeoroute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/JeuDeDonneesGeoroute.java new file mode 100644 index 0000000..50cf157 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/JeuDeDonneesGeoroute.java @@ -0,0 +1,38 @@ +package fr.ign.cogit.appli.commun.schema.shp.georoute; + +import fr.ign.cogit.appli.commun.schema.shp.georoute.routier.ThemeRoutier; +import fr.ign.cogit.geoxygene.feature.DataSet; + +public class JeuDeDonneesGeoroute extends DataSet { + + /** Constructeur par défaut */ + public JeuDeDonneesGeoroute() {this.ojbConcreteClass = this.getClass().getName();} + + /** Constructeur d'un jeu de données Géoroute au format shape : + * - un jeu de données Géoroute contient les thèmes routier : + * - ces thèmes ont des noms par défaut à ne pas changer : "routier" + * - les populations de ces thèmes ont des noms logique par défaut "Troncon de route", "Noeud routier", etc. + * - leurs éléments se réalisent dans des classes contretes du package nom_package. + * - un jeu de données peut être persistant ou non + * - un jeu de données a un nom logique (utile pour naviguer entre jeux de données). + */ + public JeuDeDonneesGeoroute(boolean persistance, String nom_logique, String nom_package) { + this.ojbConcreteClass = this.getClass().getName(); // nécessaire pour ojb + this.setTypeBD("Géoroute"); + this.setModele("Shape"); + this.setNom(nom_logique); + if (persistance) DataSet.db.makePersistent(this); + ThemeRoutier routier = new ThemeRoutier(persistance, nom_package+".routier", this); + this.addComposant(routier); + } + + + + public ThemeRoutier getThemeRoutier() {return (ThemeRoutier)this.getComposant("routier");} + + + + + +} + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/.nbattrs b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/.nbattrs new file mode 100644 index 0000000..d38df05 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/.nbattrs @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/CarrefourComplexe.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/CarrefourComplexe.java new file mode 100644 index 0000000..24f9a98 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/CarrefourComplexe.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.shp.georoute.routier; + +import fr.ign.cogit.appli.commun.schema.shp.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public class CarrefourComplexe extends ElementGeoroute { + + //////////////// GEOMETRIE ////////////////// + // private GM_Polygon geometrie = null; + /** Renvoie le GM_Polygon qui définit la géométrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)this.geom;} + /** Définit le GM_Polygon qui définit la géométrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/NoeudRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/NoeudRoutier.java new file mode 100644 index 0000000..c9d866a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/NoeudRoutier.java @@ -0,0 +1,24 @@ +package fr.ign.cogit.appli.commun.schema.shp.georoute.routier; + +import fr.ign.cogit.appli.commun.schema.shp.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public class NoeudRoutier extends ElementGeoroute { + + // private GM_Point geometrie = null; + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/NonCommunication.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/NonCommunication.java new file mode 100644 index 0000000..c34e4a7 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/NonCommunication.java @@ -0,0 +1,27 @@ +package fr.ign.cogit.appli.commun.schema.shp.georoute.routier; + +import fr.ign.cogit.appli.commun.schema.shp.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public class NonCommunication extends ElementGeoroute { + + // private GM_Point geometrie = null; + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + protected double tr_entree; + public double getTr_entree() {return this.tr_entree; } + public void setTr_entree (double Tr_entree) {tr_entree = Tr_entree; } + + protected double tr_sortie; + public double getTr_sortie() {return this.tr_sortie; } + public void setTr_sortie (double Tr_sortie) {tr_sortie = Tr_sortie; } + + protected double noeud; + public double getNoeud() {return this.noeud; } + public void setNoeud (double Noeud) {noeud = Noeud; } + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/ThemeRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/ThemeRoutier.java new file mode 100644 index 0000000..6e6ba01 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/ThemeRoutier.java @@ -0,0 +1,48 @@ +package fr.ign.cogit.appli.commun.schema.shp.georoute.routier; + +import fr.ign.cogit.geoxygene.api.feature.IPopulation; +import fr.ign.cogit.geoxygene.feature.DataSet; +import fr.ign.cogit.geoxygene.feature.Population; + +public class ThemeRoutier extends DataSet { + + /** Constructeur par défaut */ + public ThemeRoutier() {this.ojbConcreteClass = this.getClass().getName();} + + /** Constructeur d'un thème routier de Géoroute au format shape : + * - ce thème contient les populations "troncons de route"... : + * - ces populations ont des noms par défaut à ne pas changer. + * - leurs éléments se réalisent dans des classes contrètes du package nom_package. + * - un thème peut être persistant ou non + * - un thème a un nom logique (utile pour naviguer entre thèmes). + */ + public ThemeRoutier(boolean persistance, String nom_package, DataSet DS) { + super(DS); + this.setTypeBD("Thème routier de Géoroute"); + this.ojbConcreteClass = this.getClass().getName(); // nécessaire pour ojb + Population pop; + this.setNom("routier"); + if (persistance) DataSet.db.makePersistent(this); + try{ + pop = new Population(persistance, "Carrefour complexe", Class.forName(nom_package+".CarrefourComplexe"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Non communication", Class.forName(nom_package+".NonCommunication"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Noeud routier", Class.forName(nom_package+".NoeudRoutier"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Troncon de route", Class.forName(nom_package+".TronconRoute"),true); + this.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package); + } + } + + + + public IPopulation getPopCarrefoursComplexes() {return this.getPopulation("Carrefour complexe");} + public IPopulation getPopNonCommunications() {return this.getPopulation("Non communication");} + public IPopulation getPopNoeuds() {return this.getPopulation("Noeud routier");} + public IPopulation getPopTroncons() {return this.getPopulation("Troncon de route");} + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/TronconRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/TronconRoute.java new file mode 100644 index 0000000..bf6d113 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/shp/georoute/routier/TronconRoute.java @@ -0,0 +1,137 @@ +package fr.ign.cogit.appli.commun.schema.shp.georoute.routier; + +import fr.ign.cogit.appli.commun.schema.shp.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public class TronconRoute extends ElementGeoroute { + + //////////////// GEOMETRIE ////////////////// + // private GM_LineString geometrie = null; + /** Renvoie la géométrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String cl_fonc; + public String getCl_fonc() {return this.cl_fonc; } + public void setCl_fonc (String Cl_fonc) {cl_fonc = Cl_fonc; } + + protected String cl_physiq; + public String getCl_physiq() {return this.cl_physiq; } + public void setCl_physiq (String Cl_physiq) {cl_physiq = Cl_physiq; } + + protected String nb_voies; + public String getNb_voies() {return this.nb_voies; } + public void setNb_voies (String Nb_voies) {nb_voies = Nb_voies; } + + protected String rest_acces; + public String getRest_acces() {return this.rest_acces; } + public void setRest_acces (String Rest_acces) {rest_acces = Rest_acces; } + + protected String pos_sol; + public String getPos_sol() {return this.pos_sol; } + public void setPos_sol (String Pos_sol) {pos_sol = Pos_sol; } + + protected String res_vert; + public String getRes_vert() {return this.res_vert; } + public void setRes_vert (String Res_vert) {res_vert = Res_vert; } + + protected String sens; + public String getSens() {return this.sens; } + public void setSens (String Sens) {sens = Sens; } + + protected String limite; + public String getLimite() {return this.limite; } + public void setLimite (String Limite) {limite = Limite; } + + protected String niveau; + public String getNiveau() {return this.niveau; } + public void setNiveau (String Niveau) {niveau = Niveau; } + + protected String rest_poids; + public String getRest_poids() {return this.rest_poids; } + public void setRest_poids (String Rest_poids) {rest_poids = Rest_poids; } + + protected String rest_haut; + public String getRest_haut() {return this.rest_haut; } + public void setRest_haut (String Rest_haut) {rest_haut = Rest_haut; } + + protected String rest_long; + public String getRest_long() {return this.rest_long; } + public void setRest_long (String Rest_long) {rest_long = Rest_long; } + + protected String rest_larg; + public String getRest_larg() {return this.rest_larg; } + public void setRest_larg (String Rest_larg) {rest_larg = Rest_larg; } + + protected String mat_danger; + public String getMat_danger() {return this.mat_danger; } + public void setMat_danger (String Mat_danger) {mat_danger = Mat_danger; } + + protected String voie_bus; + public String getVoie_bus() {return this.voie_bus; } + public void setVoie_bus (String Voie_bus) {voie_bus = Voie_bus; } + + protected String rest_march; + public String getRest_march() {return this.rest_march; } + public void setRest_march (String Rest_march) {rest_march = Rest_march; } + + protected String livraison; + public String getLivraison() {return this.livraison; } + public void setLivraison (String Livraison) {livraison = Livraison; } + + protected String circul_int; + public String getCircul_int() {return this.circul_int; } + public void setCircul_int (String Circul_int) {circul_int = Circul_int; } + + protected String nom_rue_d; + public String getNom_rue_d() {return this.nom_rue_d; } + public void setNom_rue_d (String Nom_rue_d) {nom_rue_d = Nom_rue_d; } + + protected String nom_rue_g; + public String getNom_rue_g() {return this.nom_rue_g; } + public void setNom_rue_g (String Nom_rue_g) {nom_rue_g = Nom_rue_g; } + + protected String born_deb_d; + public String getBorn_deb_d() {return this.born_deb_d; } + public void setBorn_deb_d (String Born_deb_d) {born_deb_d = Born_deb_d; } + + protected String born_deb_g; + public String getBorn_deb_g() {return this.born_deb_g; } + public void setBorn_deb_g (String Born_deb_g) {born_deb_g = Born_deb_g; } + + protected String born_fin_d; + public String getBorn_fin_d() {return this.born_fin_d; } + public void setBorn_fin_d (String Born_fin_d) {born_fin_d = Born_fin_d; } + + protected String born_fin_g; + public String getBorn_fin_g() {return this.born_fin_g; } + public void setBorn_fin_g (String Born_fin_g) {born_fin_g = Born_fin_g; } + + protected String type_adr; + public String getType_adr() {return this.type_adr; } + public void setType_adr (String Type_adr) {type_adr = Type_adr; } + + protected String insee_comd; + public String getInsee_comd() {return this.insee_comd; } + public void setInsee_comd (String Insee_comd) {insee_comd = Insee_comd; } + + protected String insee_comg; + public String getInsee_comg() {return this.insee_comg; } + public void setInsee_comg (String Insee_comg) {insee_comg = Insee_comg; } + + protected String num_route; + public String getNum_route() {return this.num_route; } + public void setNum_route (String Num_route) {num_route = Num_route; } + + protected String nom_iti; + public String getNom_iti() {return this.nom_iti; } + public void setNom_iti (String Nom_iti) {nom_iti = Nom_iti; } + + protected String mise_serv; + public String getMise_serv() {return this.mise_serv; } + public void setMise_serv (String Mise_serv) {mise_serv = Mise_serv; } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/CreationDataSet.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/CreationDataSet.java new file mode 100644 index 0000000..6d98501 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/CreationDataSet.java @@ -0,0 +1,312 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto; + +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif.Arrondissement; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif.Canton; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif.Commune; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif.Departement; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif.LimiteAdministrative; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif.Region; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.Aerodrome; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.Cimetiere; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.ConstructionElevee; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.Digue; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.EnceinteMilitaire; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.LigneElectrique; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.MetroAerien; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.PisteAerodrome; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements.TransportParCable; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ferre.LigneCheminDeFer; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ferre.NoeudFerre; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ferre.TronconFerre; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement.Franchissement; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement.PassePar; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.habillage.ZoneOccupationDuSol; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro.CoursDEau; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro.Laisse; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro.NoeudHydrographique; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro.PointDEauIsole; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro.ToponymeHydrographieSurfacique; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro.TronconHydrographique; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro.ZoneHydrographiqueDeTexture; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.Accede; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.CarrefourComplexe; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.CommunicationRestreinte; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.DebutSection; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.EquipementRoutier; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.ItineraireRoutier; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.LiaisonMaritime; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.NoeudRoutier; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.Route; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier.TronconRoute; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes.Etablissement; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes.GrandeRandonnee; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes.MassifBoise; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes.PointRemarquableRelief; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes.ZoneDActivite; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes.ZoneDHabitat; +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes.ZoneReglementeeTouristique; +import fr.ign.cogit.geoxygene.feature.DataSet; +import fr.ign.cogit.geoxygene.feature.Population; + +public class CreationDataSet { + + /** Creation des themes et des populations des themes + * d'un jeu de donnees BDCarto suivant le modele structure interne IGN (ou presque). + * + * @param persistance : Definit si le jeu de donnees est persistant ou non. + * Si il est persistant, tous les themes et populations creees le sont + * aussi par defaut, mais cela peut etre change par la suite. + * + * @param nom_package_jeu_complet : nom du package qui contient les classes concretes + * des populations du jeu de donnees (chemin complet du package contenant + * les sous package des themes). + * + * @param metadonnees : Liste de string (peut-etre null) representant dans l'ordre: + * - le nom logique de la base (texte libre pour la deco), + * - la date des donnees + * - la zone couverte par les donnees + * - un commentaire + * Tous les textes sont libres et d'au plus 255 caracteres + * + */ + public static DataSet nouveauDataSet(boolean persistance, String nom_package_jeu_complet, List metadonnees) { + DataSet jeu = new DataSet(); + if (persistance) DataSet.db.makePersistent(jeu); + + //metadonnees + jeu.setTypeBD("BDCarto"); + jeu.setModele("Structure"); + if (metadonnees != null) { + Iterator itMD = metadonnees.iterator(); + if (itMD.hasNext()) jeu.setNom(itMD.next()); + if (itMD.hasNext()) jeu.setDate(itMD.next()); + if (itMD.hasNext()) jeu.setZone(itMD.next()); + if (itMD.hasNext()) jeu.setCommentaire(itMD.next()); + } + + // creation des themes + ajouteThemeAdmin(jeu, nom_package_jeu_complet, persistance); + ajouteThemeEquipements(jeu, nom_package_jeu_complet, persistance); + ajouteThemeFerre(jeu, nom_package_jeu_complet, persistance); + ajouteThemeHabillage(jeu, nom_package_jeu_complet, persistance); + ajouteThemeHydrographie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeRoutier(jeu, nom_package_jeu_complet, persistance); + ajouteThemeToponymes(jeu, nom_package_jeu_complet, persistance); + ajouteThemeFranchissements(jeu, nom_package_jeu_complet, persistance); + + return jeu; + } + + public static void ajouteThemeAdmin(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme 'Administratif' de la BDCarto"); + theme.setNom("Administratif"); + String nom_package = nom_package_jeu_complet+".administratif"; + try{ + Population pop; + pop = new Population(persistance, "Arrondissements", Class.forName(nom_package+".Arrondissement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Cantons", Class.forName(nom_package+".Canton"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Communes", Class.forName(nom_package+".Commune"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Departements", Class.forName(nom_package+".Departement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Regions", Class.forName(nom_package+".Region"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Limites administratives", Class.forName(nom_package+".LimiteAdministrative"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeEquipements(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme 'Equipements' de la BDCarto"); + theme.setNom("Equipements"); + String nom_package = nom_package_jeu_complet+".equipements"; + try{ + Population pop; + pop = new Population(persistance, "Aerodromes", Class.forName(nom_package+".Aerodrome"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Cimetieres", Class.forName(nom_package+".Cimetiere"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions elevees", Class.forName(nom_package+".ConstructionElevee"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Enceintes militaires", Class.forName(nom_package+".EnceinteMilitaire"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Lignes electriques", Class.forName(nom_package+".LigneElectrique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Pistes d'aerodrome", Class.forName(nom_package+".PisteAerodrome"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Digues", Class.forName(nom_package+".Digue"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Transports par cable", Class.forName(nom_package+".TransportParCable"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Metros aeriens", Class.forName(nom_package+".MetroAerien"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeFerre(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme 'Reseau ferre' de la BDCarto"); + theme.setNom("Ferre"); + String nom_package = nom_package_jeu_complet+".ferre"; + try{ + Population pop; + pop = new Population(persistance, "Noeuds ferres", Class.forName(nom_package+".NoeudFerre"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Troncons ferres", Class.forName(nom_package+".TronconFerre"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Lignes de chemin de fer", Class.forName(nom_package+".LigneCheminDeFer"),false); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeHabillage(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme 'Habillage' de la BDCarto"); + theme.setNom("Habillage"); + String nom_package = nom_package_jeu_complet+".habillage"; + try{ + Population pop; + pop = new Population(persistance, "Zones d'occupation du sol", Class.forName(nom_package+".ZoneOccupationDuSol"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeHydrographie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme 'Hydrographie' de la BDCarto"); + theme.setNom("Hydrographie"); + String nom_package = nom_package_jeu_complet+".hydro"; + try{ + Population pop; + pop = new Population(persistance, "Cours d'eau nommes", Class.forName(nom_package+".CoursDEau"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Laisses", Class.forName(nom_package+".Laisse"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Noeuds hydrographiques", Class.forName(nom_package+".NoeudHydrographique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Points d'eau isoles", Class.forName(nom_package+".PointDEauIsole"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Toponymes d'hydrographie surfacique", Class.forName(nom_package+".ToponymeHydrographieSurfacique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Troncons hydrographiques", Class.forName(nom_package+".TronconHydrographique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Zones hydrographiques de texture", Class.forName(nom_package+".ZoneHydrographiqueDeTexture"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeRoutier(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme 'Reseau routier et franchissements' de la BDCarto"); + theme.setNom("Routier"); + String nom_package = nom_package_jeu_complet+".routier"; + try{ + Population pop; + pop = new Population(persistance, "Accede", Class.forName(nom_package+".Accede"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Carrefours complexes", Class.forName(nom_package+".CarrefourComplexe"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Communications restreintes", Class.forName(nom_package+".CommunicationRestreinte"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Debuts de section", Class.forName(nom_package+".DebutSection"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Equipements routiers", Class.forName(nom_package+".EquipementRoutier"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Itineraires routiers", Class.forName(nom_package+".ItineraireRoutier"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Liaisons maritimes", Class.forName(nom_package+".LiaisonMaritime"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Noeuds routiers", Class.forName(nom_package+".NoeudRoutier"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Routes", Class.forName(nom_package+".Route"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Troncons de route", Class.forName(nom_package+".TronconRoute"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeToponymes(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme 'Toponymes' de la BDCarto"); + theme.setNom("Toponymes"); + String nom_package = nom_package_jeu_complet+".toponymes"; + try{ + Population pop; + pop = new Population(persistance, "Zones d'habitat", Class.forName(nom_package+".ZoneDHabitat"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Zones d'activite", Class.forName(nom_package+".ZoneDActivite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Zones reglementees d'interet touristique", Class.forName(nom_package+".ZoneReglementeeTouristique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Etablissements", Class.forName(nom_package+".Etablissement"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Sentiers de grande randonnee", Class.forName(nom_package+".GrandeRandonnee"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Massifs boises", Class.forName(nom_package+".MassifBoise"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Points remarquables du relief", Class.forName(nom_package+".PointRemarquableRelief"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeFranchissements(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Theme franchissement de la BDCarto"); + theme.setNom("Franchissements"); + String nom_package = nom_package_jeu_complet+".franchissement"; + try{ + Population pop; + pop = new Population(persistance, "Passe par", Class.forName(nom_package+".PassePar"),false); + theme.addPopulation(pop); + pop = new Population(persistance, "Franchissements", Class.forName(nom_package+".Franchissement"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package_jeu_complet); + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ElementBDCarto.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ElementBDCarto.java new file mode 100644 index 0000000..741da51 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ElementBDCarto.java @@ -0,0 +1,68 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.geoxygene.feature.FT_Feature; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.feature.Population; + +/** Classe mere pour toute classe de la BDCarto V2 au format structure de la BDCarto. + * Document de reference: specifications de contenu BDCarto (schemas HBDS), version 2, revision 4, 2001. + */ + +@SuppressWarnings("unchecked") + +public abstract class ElementBDCarto extends FT_Feature { + + /** Identifiant donne par la BDCarto */ + protected int id_bdcarto; + public int getId_bdcarto() {return this.id_bdcarto; } + public void setId_bdcarto (int Id_bdcarto) {id_bdcarto = Id_bdcarto; } + + + public static ElementBDCarto recherche_element_avec_idbdc(Population pop, int id) { + ElementBDCarto element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = (ElementBDCarto)it.next(); + if ( element.getId_bdcarto() == id ) return element; + } + return null; + } + + public static List search_list_idBDCarto (Population pop,int id){ + List list_idBDCarto = new ArrayList(); + ElementBDCarto element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = (ElementBDCarto)it.next(); + if ( element.getId_bdcarto() == id ) list_idBDCarto.add(element); + } + if (list_idBDCarto == null) return null; + return list_idBDCarto; + } + + public static ElementBDCarto recherche_element_avec_idbdc(FT_FeatureCollection pop, int id) { + ElementBDCarto element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = (ElementBDCarto)it.next(); + if ( element.getId_bdcarto() == id ) return element; + } + return null; + } + + public static List search_list_idBDCarto (FT_FeatureCollection pop,int id){ + List list_idBDCarto = new ArrayList(); + ElementBDCarto element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = (ElementBDCarto)it.next(); + if ( element.getId_bdcarto() == id ) list_idBDCarto.add(element); + } + if (list_idBDCarto == null) return null; + return list_idBDCarto; + } +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Arrondissement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Arrondissement.java new file mode 100644 index 0000000..15c4ee6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Arrondissement.java @@ -0,0 +1,115 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +public abstract class Arrondissement extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + + protected String inseeArrondissement; + public String getInseeArrondissement() {return this.inseeArrondissement; } + public void setInseeArrondissement (String InseeArrondissement) {inseeArrondissement = InseeArrondissement; } + + /////////////// RELATIONS ////////////////// + + /** Lien bidirectionnel 1-n vers Canton. + * 1 objet Arrondissement est en relation avec n objets Canton (n pouvant etre nul). + * 1 objet Canton est en relation avec 1 objet Arrondissement au plus. + * + * NB: un objet Arrondissement ne doit pas etre en relation plusieurs fois avec le meme objet Canton : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec + * les methodes fournies. + * + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List cantons = new ArrayList(); + + /** Recupere la liste des objets en relation. */ + public List getCantons() {return cantons ; } + + /** Definit la liste des objets en relation, et met a jour la relation inverse. */ + public void setCantons (List L) { + List old = new ArrayList(cantons); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + Canton O = it1.next(); + O.setArrondissement(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + Canton O = it2.next(); + O.setArrondissement(this); + } + } + + /** Recupere le ieme element de la liste des objets en relation. */ + public Canton getCanton(int i) {return cantons.get(i) ; } + + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addCanton (Canton O) { + if ( O == null ) return; + cantons.add(O) ; + O.setArrondissement(this) ; + } + + /** Enleve un element de la liste des objets en relation, et met a jour la relation inverse. */ + public void removeCanton (Canton O) { + if ( O == null ) return; + cantons.remove(O) ; + O.setArrondissement(null); + } + + /** Vide la liste des objets en relation, et met a jour la relation inverse. */ + public void emptyCantons () { + List old = new ArrayList(cantons); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + Canton O = it.next(); + O.setArrondissement(null); + } + } + + + + /** Lien bidirectionnel 1-n vers Arrondissement. + * 1 objet Departement est en relation avec n objets Arrondissement (n pouvant etre nul). + * 1 objet Arrondissement est en relation avec 1 objet Departement au plus. + * + * Les methodes get et set sont utiles pour assurer la bidirection. + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private Departement departement; + + /** Recupere l'objet en relation. */ + + public Departement getDepartement() {return departement; } + + /** Definit l'objet en relation, et met a jour la relation inverse. */ + public void setDepartement(Departement O) { + Departement old = departement; + departement = O; + if ( old != null ) old.getArrondissements().remove(this); + if ( O != null) { + if ( ! O.getArrondissements().contains(this) ) O.getArrondissements().add(this); + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Canton.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Canton.java new file mode 100644 index 0000000..52b5483 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Canton.java @@ -0,0 +1,115 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Canton extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + + protected String inseeCanton; + public String getInseeCanton() {return this.inseeCanton; } + public void setInseeCanton (String InseeCanton) {inseeCanton = InseeCanton; } + + + /////////////// RELATIONS ////////////////// + + /** Lien bidirectionnel 1-n vers Commune. + * 1 objet Canton est en relation avec n objets Commune (n pouvant etre nul). + * 1 objet Commune est en relation avec 1 objet Canton au plus. + * + * NB: un objet Canton ne doit pas etre en relation plusieurs fois avec le meme objet Commune : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec + * les methodes fournies. + * + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List communes = new ArrayList(); + + /** Recupere la liste des objets en relation. */ + public List getCommunes() {return communes ; } + + /** Definit la liste des objets en relation, et met a jour la relation inverse. */ + public void setCommunes (List L) { + List old = new ArrayList(communes); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + Commune O = it1.next(); + O.setCanton(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + Commune O = it2.next(); + O.setCanton(this); + } + } + + /** Recupere le ieme element de la liste des objets en relation. */ + public Commune getCommune(int i) {return communes.get(i) ; } + + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addCommune (Commune O) { + if ( O == null ) return; + communes.add(O) ; + O.setCanton(this) ; + } + + /** Enleve un element de la liste des objets en relation, et met a jour la relation inverse. */ + public void removeCommune (Commune O) { + if ( O == null ) return; + communes.remove(O) ; + O.setCanton(null); + } + + /** Vide la liste des objets en relation, et met a jour la relation inverse. */ + public void emptyCommunes () { + List old = new ArrayList(communes); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + Commune O = it.next(); + O.setCanton(null); + } + } + + + + /** Lien bidirectionnel 1-n vers Canton. + * 1 objet Arrondissement est en relation avec n objets Canton (n pouvant etre nul). + * 1 objet Canton est en relation avec 1 objet Arrondissement au plus. + * + * Les methodes get et set sont utiles pour assurer la bidirection. + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private Arrondissement arrondissement; + + /** Recupere l'objet en relation. */ + + public Arrondissement getArrondissement() {return arrondissement; } + + /** Definit l'objet en relation, et met a jour la relation inverse. */ + public void setArrondissement(Arrondissement O) { + Arrondissement old = arrondissement; + arrondissement = O; + if ( old != null ) old.getCantons().remove(this); + if ( O != null) { + if ( ! O.getCantons().contains(this) ) O.getCantons().add(this); + } + } +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Commune.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Commune.java new file mode 100644 index 0000000..8ab34fa --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Commune.java @@ -0,0 +1,77 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + + +public abstract class Commune extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nomCommune; + public String getNomCommune() {return this.nomCommune; } + public void setNomCommune (String NomCommune) {nomCommune = NomCommune; } + + protected String inseeCommune; + public String getInseeCommune() {return this.inseeCommune; } + public void setInseeCommune (String InseeCommune) {inseeCommune = InseeCommune; } + + protected String statut; + public String getStatut() {return this.statut; } + public void setStatut (String Statut) {statut = Statut; } + + protected GM_Point centroideCom; + public GM_Point getCentroideCom() {return this.centroideCom; } + public void setCentroideCom (GM_Point CentroideCom) {centroideCom = CentroideCom; } + + /*protected double champXCom; + public double getChampXCom() {return this.champXCom; } + public void setChampXCom (double ChampXCom) {champXCom = ChampXCom; } + + protected double champYCom; + public double getChampYCom() {return this.champYCom; } + public void setChampYCom (double ChampYCom) {champYCom = ChampYCom; }*/ + + protected double superficie; + public double getSuperficie() {return this.superficie; } + public void setSuperficie (double Superficie) {superficie = Superficie; } + + protected double nbHabitant; + public double getNbHabitant() {return this.nbHabitant; } + public void setNbHabitant (double NbHabitant) {nbHabitant = NbHabitant; } + + + + /////////////// RELATIONS ////////////////// + + /** Lien bidirectionnel 1-n vers BBB. + * 1 objet AAA est en relation avec n objets BBB (n pouvant etre nul). + * 1 objet BBB est en relation avec 1 objet AAA au plus. + * + * Les methodes get et set sont utiles pour assurer la bidirection. + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private Canton canton; + /** Recupere l'objet en relation. */ + public Canton getCanton() {return canton; } + /** Definit l'objet en relation, et met a jour la relation inverse. */ + public void setCanton(Canton O) { + Canton old = canton; + canton = O; + if ( old != null ) old.getCommunes().remove(this); + if ( O != null) { + if ( ! O.getCommunes().contains(this) ) O.getCommunes().add(this); + } + } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Departement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Departement.java new file mode 100644 index 0000000..88ff764 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Departement.java @@ -0,0 +1,135 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Departement extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + + protected String nomDepartement; + public String getNomDepartement() {return this.nomDepartement; } + public void setNomDepartement (String NomDepartement) {nomDepartement = NomDepartement; } + + protected String inseeDepartement; + public String getInseeDepartement() {return this.inseeDepartement; } + public void setInseeDepartement (String InseeDepartement) {inseeDepartement = InseeDepartement; } + + protected GM_Point centroideDep; + public GM_Point getCentroideDep() {return this.centroideDep; } + public void setCentroideDep (GM_Point CentroideDep) {centroideDep = CentroideDep; } + + /*protected double champXDep; + public double getChampXDep() {return this.champXDep; } + public void setChampXDep (double ChampXDep) {champXDep = ChampXDep; } + + protected double champYDep; + public double getChampYDep() {return this.champYDep; } + public void setChampYDep (double ChampYDep) {champYDep = ChampYDep; }*/ + + + /////////////// RELATIONS ////////////////// + + + /** Lien bidirectionnel 1-n vers Arrondissement. + * 1 objet Departement est en relation avec n objets Arrondissement (n pouvant etre nul). + * 1 objet Arrondissement est en relation avec 1 objet Departement au plus. + * + * NB: un objet Departement ne doit pas etre en relation plusieurs fois avec le meme objet Arrondissement : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec + * les methodes fournies. + * + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List arrondissements = new ArrayList(); + + /** Recupere la liste des objets en relation. */ + public List getArrondissements() {return arrondissements ; } + + /** Definit la liste des objets en relation, et met a jour la relation inverse. */ + public void setArrondissements (List L) { + List old = new ArrayList(arrondissements); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + Arrondissement O = it1.next(); + O.setDepartement(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + Arrondissement O = it2.next(); + O.setDepartement(this); + } + } + + /** Recupere le ieme element de la liste des objets en relation. */ + public Arrondissement getArrondissement(int i) {return arrondissements.get(i) ; } + + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addArrondissement (Arrondissement O) { + if ( O == null ) return; + arrondissements.add(O) ; + O.setDepartement(this) ; + } + + /** Enleve un element de la liste des objets en relation, et met a jour la relation inverse. */ + public void removeArrondissement (Arrondissement O) { + if ( O == null ) return; + arrondissements.remove(O) ; + O.setDepartement(null); + } + + /** Vide la liste des objets en relation, et met a jour la relation inverse. */ + public void emptyArrondissements () { + List old = new ArrayList(arrondissements); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + Arrondissement O = it.next(); + O.setDepartement(null); + } + } + + + + /** Lien bidirectionnel 1-n vers Departement. + * 1 objet Region est en relation avec n objets Departement (n pouvant etre nul). + * 1 objet Departement est en relation avec 1 objet Region au plus. + * + * Les methodes get et set sont utiles pour assurer la bidirection. + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + + private Region region; + + /** Recupere l'objet en relation. */ + + public Region getRegion() {return region; } + + /** Definit l'objet en relation, et met a jour la relation inverse. */ + public void setRegion(Region O) { + Region old = region; + region = O; + if ( old != null ) old.getDepartements().remove(this); + if ( O != null) { + if ( ! O.getDepartements().contains(this) ) O.getDepartements().add(this); + } + } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/LimiteAdministrative.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/LimiteAdministrative.java new file mode 100644 index 0000000..45cd80f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/LimiteAdministrative.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class LimiteAdministrative extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String precision; + public String getPrecision() {return this.precision; } + public void setPrecision (String Precision) {precision = Precision; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Region.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Region.java new file mode 100644 index 0000000..639c3d9 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/administratif/Region.java @@ -0,0 +1,108 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.administratif; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Region extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + + protected String nomRegion; + public String getNomRegion() {return this.nomRegion; } + public void setNomRegion (String NomRegion) {nomRegion = NomRegion; } + + protected String inseeRegion; + public String getInseeRegion() {return this.inseeRegion; } + public void setInseeRegion (String InseeRegion) {inseeRegion = InseeRegion; } + + protected GM_Point centroideRegion; + public GM_Point getCentroideRegion() {return this.centroideRegion; } + public void setCentroideRegion (GM_Point CentroideRegion) {centroideRegion = CentroideRegion; } + + /*protected double champXRegion; + public double getChampXRegion() {return this.champXRegion; } + public void setChampXRegion (double ChampXRegion) {champXRegion = ChampXRegion; } + + protected double champYRegion; + public double getChampYRegion() {return this.champYRegion; } + public void setChampYRegion (double ChampYRegion) {champYRegion = ChampYRegion; }*/ + + /////////////// RELATIONS ////////////////// + + + + /** Lien bidirectionnel 1-n vers Departement. + * 1 objet AAA est en relation avec n objets Departement (n pouvant etre nul). + * 1 objet Departement est en relation avec 1 objet AAA au plus. + * + * NB: un objet AAA ne doit pas etre en relation plusieurs fois avec le meme objet BBB : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec + * les methodes fournies. + * + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List departements = new ArrayList(); + + /** Recupere la liste des objets en relation. */ + public List getDepartements() {return departements ; } + + /** Definit la liste des objets en relation, et met a jour la relation inverse. */ + public void setDepartements (List L) { + List old = new ArrayList(departements); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + Departement O = it1.next(); + O.setRegion(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + Departement O = it2.next(); + O.setRegion(this); + } + } + + /** Recupere le ieme element de la liste des objets en relation. */ + public Departement getDepartement(int i) {return departements.get(i) ; } + + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addDepartement (Departement O) { + if ( O == null ) return; + departements.add(O) ; + O.setRegion(this) ; + } + + /** Enleve un element de la liste des objets en relation, et met a jour la relation inverse. */ + public void removeDepartement (Departement O) { + if ( O == null ) return; + departements.remove(O) ; + O.setRegion(null); + } + + /** Vide la liste des objets en relation, et met a jour la relation inverse. */ + public void emptyDepartements () { + List old = new ArrayList(departements); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + Departement O = it.next(); + O.setRegion(null); + } + } + + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Aerodrome.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Aerodrome.java new file mode 100644 index 0000000..70ec230 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Aerodrome.java @@ -0,0 +1,30 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +public abstract class Aerodrome extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String desserte; + public String getDesserte() {return this.desserte; } + public void setDesserte (String Desserte) {desserte = Desserte; } + + protected String toponyme; + public String getToponyme() { return toponyme; } + public void setToponyme(String toponyme) { this.toponyme = toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Cimetiere.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Cimetiere.java new file mode 100644 index 0000000..2d0e421 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Cimetiere.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +public abstract class Cimetiere extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() { return toponyme; } + public void setToponyme(String toponyme) { this.toponyme = toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/ConstructionElevee.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/ConstructionElevee.java new file mode 100644 index 0000000..fbac105 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/ConstructionElevee.java @@ -0,0 +1,20 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ConstructionElevee extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Digue.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Digue.java new file mode 100644 index 0000000..bd0cc7f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/Digue.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class Digue extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/EnceinteMilitaire.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/EnceinteMilitaire.java new file mode 100644 index 0000000..91d5e5c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/EnceinteMilitaire.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +public abstract class EnceinteMilitaire extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() { return toponyme; } + public void setToponyme(String toponyme) { this.toponyme = toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/LigneElectrique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/LigneElectrique.java new file mode 100644 index 0000000..22183c1 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/LigneElectrique.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class LigneElectrique extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String tension; + public String getTension() {return this.tension; } + public void setTension (String Tension) {tension = Tension; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/MetroAerien.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/MetroAerien.java new file mode 100644 index 0000000..738889c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/MetroAerien.java @@ -0,0 +1,19 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class MetroAerien extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// PAS D'ATTRIBUTS ////////////////// + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/PisteAerodrome.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/PisteAerodrome.java new file mode 100644 index 0000000..fa31035 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/PisteAerodrome.java @@ -0,0 +1,19 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class PisteAerodrome extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// PAS D'ATTRIBUTS ////////////////// + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/TransportParCable.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/TransportParCable.java new file mode 100644 index 0000000..256a5e4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/equipements/TransportParCable.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.equipements; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class TransportParCable extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/LigneCheminDeFer.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/LigneCheminDeFer.java new file mode 100644 index 0000000..a574d37 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/LigneCheminDeFer.java @@ -0,0 +1,87 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.ferre; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + + +public abstract class LigneCheminDeFer extends ElementBDCarto { + + /////////////// ATTRIBUTS ////////////////// + + private String caractTourist; + public String getCaractTourist() {return caractTourist;}; + public void setCaractTourist(String CaractTourist) {caractTourist = CaractTourist;}; + + private String toponyme; + public String getToponyme() {return toponyme;}; + public void setToponyme(String Toponyme) {toponyme = Toponyme;}; + + + + // ///////////// RELATIONS ////////////////// + /** Lien bidirectionnel 1-n vers TronconFerre. + * 1 objet LigneCheminDeFer est en relation avec n objets TronconFerre (n pouvant etre nul). + * 1 objet TronconFerre est en relation avec 1 objet LigneCheminDeFer au plus. + * + * NB: un objet LigneCheminDeFer ne doit pas etre en relation plusieurs fois avec le meme objet TronconFerre : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec + * les methodes fournies. + * + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List tronconFerre = new ArrayList(); + + /** Recupere la liste des objets en relation. */ + public List getTronconFerre() {return tronconFerre ; } + + /** Definit la liste des objets en relation, et met a jour la relation inverse. */ + public void setTronconFerre (List L) { + List old = new ArrayList(tronconFerre); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconFerre O = it1.next(); + O.setLigneCheminDeFer(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconFerre O = it2.next(); + O.setLigneCheminDeFer(this); + } + } + + /** Recupere le ieme element de la liste des objets en relation. */ + public TronconFerre getTronconFerre(int i) {return tronconFerre.get(i) ; } + + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addTronconFerre (TronconFerre O) { + if ( O == null ) return; + tronconFerre.add(O) ; + O.setLigneCheminDeFer(this) ; + } + + /** Enleve un element de la liste des objets en relation, et met a jour la relation inverse. */ + public void removeTronconFerre (TronconFerre O) { + if ( O == null ) return; + tronconFerre.remove(O) ; + O.setLigneCheminDeFer(null); + } + + /** Vide la liste des objets en relation, et met a jour la relation inverse. */ + public void emptyTronconFerre () { + List old = new ArrayList(tronconFerre); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconFerre O = it.next(); + O.setLigneCheminDeFer(null); + } + } + + + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/NoeudFerre.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/NoeudFerre.java new file mode 100644 index 0000000..8b008a5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/NoeudFerre.java @@ -0,0 +1,137 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.ferre; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class NoeudFerre extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + + /////////////// RELATIONS ////////////////// + /** Liste (non ordonnee) des arcs entrants de self + * 1 objet Noeud est en relation "entrants" avec n objets TronconFerre (n>0). + * 1 objet TronconFerre est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List entrants = new ArrayList(); + + /** Recupere la liste des arcs entrants. */ + public List getEntrants() {return entrants ; } + /** Definit la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void setEntrants (List L) { + List old = new ArrayList(entrants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconFerre O = it1.next(); + O.setFin(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconFerre O = it2.next(); + O.setFin(this); + } + } + /** Recupere le ieme element de la liste des arcs entrants. */ + public TronconFerre getEntrant(int i) {return entrants.get(i) ; } + /** Ajoute un objet a la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void addEntrant(TronconFerre O) { + if ( O == null ) return; + entrants.add(O) ; + O.setFin(this) ; + } + /** Enleve un element de la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void removeEntrant(TronconFerre O) { + if ( O == null ) return; + entrants.remove(O) ; + O.setFin(null); + } + /** Vide la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void emptyEntrants() { + List old = new ArrayList(entrants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconFerre O = it.next(); + O.setFin(null); + } + } + + + + + + /** Liste (non ordonnee) des arcs sortants de self + * 1 objet Noeud est en relation "sortants" avec n objets TronconFerre (n>0). + * 1 objet TronconFerre est en relation "ini" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List sortants = new ArrayList(); + + /** Recupere la liste des arcs sortants. */ + public List getSortants() {return sortants ; } + /** Definit la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void setSortants(List L) { + List old = new ArrayList(sortants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconFerre O = it1.next(); + O.setIni(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconFerre O = it2.next(); + O.setIni(this); + } + } + /** Recupere le ieme element de la liste des arcs sortants. */ + public TronconFerre getSortant(int i) {return sortants.get(i) ; } + /** Ajoute un objet a la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void addSortant(TronconFerre O) { + if ( O == null ) return; + sortants.add(O) ; + O.setIni(this) ; + } + /** Enleve un element de la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void removeSortant(TronconFerre O) { + if ( O == null ) return; + sortants.remove(O) ; + O.setIni(null); + } + /** Vide la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void emptySortants() { + List old = new ArrayList(sortants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconFerre O = it.next(); + O.setIni(null); + } + } +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/TronconFerre.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/TronconFerre.java new file mode 100644 index 0000000..31cd93b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/ferre/TronconFerre.java @@ -0,0 +1,143 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.ferre; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement.Troncon; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +public abstract class TronconFerre extends Troncon { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String energie; + public String getEnergie() {return this.energie; } + public void setEnergie (String Energie) {energie = Energie; } + + protected String nbVoies; + public String getNbVoies() { return nbVoies; } + public void setNbVoies(String S) { this.nbVoies = S; } + + protected String largeur; + public String getLargeur() {return this.largeur; } + public void setLargeur (String Largeur) {largeur = Largeur; } + + protected String pos_sol; + public String getPos_sol() {return this.pos_sol; } + public void setPos_sol (String Pos_sol) {pos_sol = Pos_sol; } + + protected String classement; + public String getClassement() {return this.classement; } + public void setClassement (String Classement) {classement = Classement; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected String touristique; + public String getTouristique() {return this.touristique; } + public void setTouristique (String Touristique) {touristique = Touristique; } + + protected String topoLigne; + public String getTopoLigne() {return this.topoLigne; } + public void setTopoLigne (String TopoLigne) {topoLigne = TopoLigne; } + + + + + /////////////// RELATIONS ////////////////// + + /** Un tronçon a un noeud initial. + * 1 objet Noeud est en relation "sortants" avec n objets TronvonFerre (n>0). + * 1 objet TronvonFerre est en relation "ini" avec 1 objet Noeud. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private NoeudFerre ini; + /** Recupere le noeud initial. */ + public NoeudFerre getIni() {return ini;} + /** Definit le noeud initial, et met a jour la relation inverse. */ + public void setIni(NoeudFerre O) { + NoeudFerre old = ini; + ini = O; + if ( old != null ) old.getSortants().remove(this); + if ( O != null ) { + iniID = O.getId(); + if ( !(O.getSortants().contains(this)) ) O.getSortants().add(this); + } else iniID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + private int iniID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setIniID(int I) {iniID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getIniID() {return iniID;} + + + /** Un troncon a un noeud final. + * 1 objet Noeud est en relation "entrants" avec n objets TronconFerre (n>0). + * 1 objet TronconFerre est en relation "fin" avec 1 objet Noeud. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private NoeudFerre fin; + /** Recupere le noeud final. */ + public NoeudFerre getFin() {return fin;} + /** Definit le noeud final, et met a jour la relation inverse. */ + public void setFin(NoeudFerre O) { + NoeudFerre old = fin; + fin = O; + if ( old != null ) old.getEntrants().remove(this); + if ( O != null ) { + finID = O.getId(); + if ( !(O.getEntrants().contains(this)) ) O.getEntrants().add(this); + } else finID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + private int finID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setFinID(int I) {finID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getFinID() {return finID;} + + + /** Lien bidirectionnel 1-n vers TronconFerre. + * 1 objet LigneCheminDeFer est en relation avec n objets TronconFerre (n pouvant etre nul). + * 1 objet TronconFerre est en relation avec 1 objet LigneCheminDeFer au plus. + * + * Les methodes get et set sont utiles pour assurer la bidirection. + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private LigneCheminDeFer ligneCheminDeFer; + + /** Recupere l'objet en relation. */ + + public LigneCheminDeFer getLigneCheminDeFer() {return ligneCheminDeFer; } + + /** Definit l'objet en relation, et met a jour la relation inverse. */ + public void setLigneCheminDeFer(LigneCheminDeFer O) { + LigneCheminDeFer old = ligneCheminDeFer; + ligneCheminDeFer = O; + if ( old != null ) old.getTronconFerre().remove(this); + if ( O != null) { + if ( ! O.getTronconFerre().contains(this) ) O.getTronconFerre().add(this); + } + } +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/Franchissement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/Franchissement.java new file mode 100644 index 0000000..ba88733 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/Franchissement.java @@ -0,0 +1,83 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Franchissement extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // protected GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + + /////////////// RELATIONS ////////////////// + /** Un franchissement peut concerner plusieurs troncons hydro routier ou ferre, + * par l'intermediaire de la classe PassePar. + * 1 objet Franchissment peut etre en relation avec 2 ou n "objets-relation" PassePar. + * 1 "objet-relation" PassePar est en relation avec 1 objet Franchissement. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + protected List passentPar = new ArrayList(); + + /** Recupere la liste des PassePar en relation. */ + public List getPassentPar() {return passentPar; } + /** Definit la liste des PassePar en relation, et met a jour la relation inverse. */ + public void setPassentPar(List L) { + List old = new ArrayList(passentPar); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + PassePar O = it1.next(); + O.setFranchissement(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + PassePar O = it2.next(); + O.setFranchissement(this); + } + } + /** Recupere le ieme element de la liste des PassePar en relation. */ + public PassePar getPassePar(int i) {return passentPar.get(i) ; } + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addPassePar(PassePar O) { + if ( O == null ) return; + passentPar.add(O) ; + O.setFranchissement(this) ; + } + /** Enleve un element de la liste des PassePar en relation, et met a jour la relation inverse. */ + public void removePassePar(PassePar O) { + if ( O == null ) return; + passentPar.remove(O) ; + O.setFranchissement(null); + } + /** Vide la liste des PassePar en relation, et met a jour la relation inverse. */ + public void emptyPassentPar() { + List old = new ArrayList(passentPar); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + PassePar O = it.next(); + O.setFranchissement(null); + } + } + +} + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/PassePar.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/PassePar.java new file mode 100644 index 0000000..8de4875 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/PassePar.java @@ -0,0 +1,78 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +/** Cette classe represente une relation dans le schema HBDS de la BDCarto. + * Elle est sous forme de classe car java ne connait pas les attributs de relation. + * NB: l'attribut id_bdcarto, obtenu par heritage, n'a pas de sens pour cette "classe relation", + * il n'est d'ailleurs pas persistant. + */ +public abstract class PassePar extends ElementBDCarto { + + /////////////// ATTRIBUTS ////////////////// + protected String mode; + public String getMode() {return this.mode; } + public void setMode (String S) {this.mode= S; } + + protected int niveau; + public int getNiveau() {return this.niveau; } + public void setNiveau (int i) {this.niveau= i; } + + /////////////// RELATIONS ////////////////// + /** Troncon concerne par la relation. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + + protected Troncon troncon; + /** Recupere le troncon en relation. */ + public Troncon getTroncon() {return troncon; } + /** Definit le troncon en relation, et met a jour la relation inverse. */ + public void setTroncon(Troncon O) { + Troncon old = troncon; + troncon = O; + if ( old != null ) old.getPassentPar().remove(this); + if ( O != null ) { + tronconID = O.getId(); + if ( !(O.getPassentPar().contains(this)) ) O.getPassentPar().add(this); + } else tronconID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int tronconID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setTronconID(int I) {tronconID = I;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getTronconID() {return tronconID;} + + /** Franchissement concerne par la relation. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + /** Ne pas utiliser. Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected Franchissement franchissement; + /** Recupere le franchissement en relation. */ + public Franchissement getFranchissement() {return franchissement; } + /** Definit le franchissement en relation, et met a jour la relation inverse. */ + public void setFranchissement(Franchissement O) { + Franchissement old = franchissement; + franchissement = O; + if ( old != null ) old.getPassentPar().remove(this); + if ( O != null ) { + franchissementID = O.getId(); + if ( !(O.getPassentPar().contains(this)) ) O.getPassentPar().add(this); + } else franchissementID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int franchissementID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setFranchissementID(int I) {franchissementID = I;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getFranchissementID() {return franchissementID;} +} + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/Troncon.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/Troncon.java new file mode 100644 index 0000000..5305f75 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/franchissement/Troncon.java @@ -0,0 +1,64 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +public abstract class Troncon extends ElementBDCarto { + + /** Un troncon peut passer par plusieurs franchissements, + * par l'intermediaire de la classe-relation PassePar. + * 1 objet Troncon peut etre en relation avec 0 ou n objets-relations PassePar. + * 1 objet-relation PassePar est en relation avec 1 objet Troncon. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + protected List passentPar = new ArrayList(); + + /** Recupere la liste des PassePar en relation. */ + public List getPassentPar() {return passentPar; } + /** Definit la liste des PassePar en relation, et met a jour la relation inverse. */ + public void setPassentPar(List L) { + List old = new ArrayList(passentPar); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + PassePar O = it1.next(); + O.setTroncon(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + PassePar O = it2.next(); + O.setTroncon(this); + } + } + /** Recupere le ieme element de la liste des PassePar en relation. */ + public PassePar getPassePar(int i) {return passentPar.get(i) ; } + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addPassePar(PassePar O) { + if ( O == null ) return; + passentPar.add(O) ; + O.setTroncon(this) ; + } + /** Enleve un element de la liste des PassePar en relation, et met a jour la relation inverse. */ + public void removePassePar(PassePar O) { + if ( O == null ) return; + passentPar.remove(O) ; + O.setTroncon(null); + } + /** Vide la liste des PassePar en relation, et met a jour la relation inverse. */ + public void emptyPassentPar() { + List old = new ArrayList(passentPar); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + PassePar O = it.next(); + O.setTroncon(null); + } + } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/habillage/ZoneOccupationDuSol.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/habillage/ZoneOccupationDuSol.java new file mode 100644 index 0000000..da7c8ac --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/habillage/ZoneOccupationDuSol.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.habillage; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + + +public abstract class ZoneOccupationDuSol extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/CoursDEau.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/CoursDEau.java new file mode 100644 index 0000000..c9a05e2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/CoursDEau.java @@ -0,0 +1,78 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +/** Portion connexe du reseau hydrographique liee a un toponyme, + * possedant une source ou origine et un confluent ou embouchure */ +@SuppressWarnings("unchecked") + +public abstract class CoursDEau extends ElementBDCarto { + + /////////////// ATTRIBUTS ////////////////// + private String toponyme; + public String getToponyme() {return toponyme;}; + public void setToponyme(String S) {toponyme = S;}; + + // NB : impossible a remplir a partir des tables shape + private int classification; + public int getClassification() {return classification;}; + public void setClassification(int I) {classification = I;}; + + /////////////// RELATIONS ////////////////// + /** Un cours d'eau est compose de troncons hydrographiques. + * (relation n-m, a cours d'eau a au moins 1 troncon, un troncon fait partie de 0 a n cours d'eau. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List troncons = new ArrayList(); + /** Recupere le troncons hydro en relation */ + public List getTroncons() {return troncons ; } + /** Definit le troncons hydro en relation, et met a jour la relation inverse. */ + public void setTroncons (List L) { + List old = new ArrayList(troncons); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it1.next(); + troncons.remove(O); + O.getCoursDEau().remove(this); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it2.next(); + troncons.add(O); + O.getCoursDEau().add(this); + } + } + /** Recupere le ieme element de la liste des troncons hydro en relation. */ + public TronconHydrographique getTroncon(int i) {return (TronconHydrographique)troncons.get(i) ; } + /** Ajoute un element a la liste des troncons hydro en relation, et met a jour la relation inverse. */ + public void addTroncon(TronconHydrographique O) { + if ( O == null ) return; + troncons.add(O) ; + O.getCoursDEau().add(this); + } + /** Enleve un element de la liste des troncons hydro en relation, et met a jour la relation inverse. */ + public void removeTroncon(TronconHydrographique O) { + if ( O == null ) return; + troncons.remove(O) ; + O.getCoursDEau().remove(this); + } + /** Vide la liste des troncons hydro en relation, et met a jour la relation inverse. */ + public void emptyTroncons() { + Iterator it = troncons.iterator(); + while ( it.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it.next(); + O.getCoursDEau().remove(this); + } + troncons.clear(); + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/Laisse.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/Laisse.java new file mode 100644 index 0000000..51ddc25 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/Laisse.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +/** Zone plate au drainage complexe dans laquelle circule un ensemble de portions de cours d'eau + * formant un entrelac de bras d'egale importance. */ +public abstract class Laisse extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String i) {nature = i; } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/NoeudHydrographique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/NoeudHydrographique.java new file mode 100644 index 0000000..aba9c59 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/NoeudHydrographique.java @@ -0,0 +1,155 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +@SuppressWarnings("unchecked") + +public abstract class NoeudHydrographique extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + + // NB : impossible a remplir a partir des tables shape + protected int classification; + public int getClassification() {return this.classification; } + public void setClassification(int S) {classification = S; } + + // NB : impossible a remplir a partir des tables shape + protected int caractereTouristique; + public int getCaractereTouristique() {return this.caractereTouristique; } + public void setCaractereTouristique(int S) {caractereTouristique = S; } + + + + + /////////////// RELATIONS ////////////////// + /** Liste (non ordonnee) des arcs entrants de self + * 1 objet Noeud est en relation "entrants" avec n objets TronconHydrographique (n>0). + * 1 objet TronconHydrographique est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List entrants = new ArrayList(); + + /** Recupere la liste des arcs entrants. */ + public List getEntrants() {return entrants ; } + /** Definit la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void setEntrants (List L) { + List old = new ArrayList(entrants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it1.next(); + O.setFin(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it2.next(); + O.setFin(this); + } + } + /** Recupere le ieme element de la liste des arcs entrants. */ + public TronconHydrographique getEntrant(int i) {return (TronconHydrographique)entrants.get(i) ; } + /** Ajoute un objet a la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void addEntrant(TronconHydrographique O) { + if ( O == null ) return; + entrants.add(O) ; + O.setFin(this) ; + } + /** Enleve un element de la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void removeEntrant(TronconHydrographique O) { + if ( O == null ) return; + entrants.remove(O) ; + O.setFin(null); + } + /** Vide la liste des arcs entrants, et met a jour la relation inverse Fin. */ + public void emptyEntrants() { + List old = new ArrayList(entrants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it.next(); + O.setFin(null); + } + } + + + + + + /** Liste (non ordonnee) des arcs sortants de self + * 1 objet Noeud est en relation "sortants" avec n objets TronconHydrographique (n>0). + * 1 objet TronconHydrographique est en relation "ini" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List sortants = new ArrayList(); + + /** Recupere la liste des arcs sortants. */ + public List getSortants() {return sortants ; } + /** Definit la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void setSortants(List L) { + List old = new ArrayList(sortants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it1.next(); + O.setIni(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it2.next(); + O.setIni(this); + } + } + /** Recupere le ieme element de la liste des arcs sortants. */ + public TronconHydrographique getSortant(int i) {return (TronconHydrographique)sortants.get(i) ; } + /** Ajoute un objet a la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void addSortant(TronconHydrographique O) { + if ( O == null ) return; + sortants.add(O) ; + O.setIni(this) ; + } + /** Enleve un element de la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void removeSortant(TronconHydrographique O) { + if ( O == null ) return; + sortants.remove(O) ; + O.setIni(null); + } + /** Vide la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void emptySortants() { + List old = new ArrayList(sortants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconHydrographique O = (TronconHydrographique)it.next(); + O.setIni(null); + } + } +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/PointDEauIsole.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/PointDEauIsole.java new file mode 100644 index 0000000..7ce9d8f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/PointDEauIsole.java @@ -0,0 +1,30 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class PointDEauIsole extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + + +} + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/ToponymeHydrographieSurfacique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/ToponymeHydrographieSurfacique.java new file mode 100644 index 0000000..ec4133f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/ToponymeHydrographieSurfacique.java @@ -0,0 +1,33 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +/** Concerne les plans d'eau, glaciers, baies, hauts fonds, marais... */ +public abstract class ToponymeHydrographieSurfacique extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String I) {nature = I; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + protected double cote; + public double getCote() {return this.cote; } + public void setCote (double Cote) {cote = Cote; } + + // NB : impossible a remplir a partir des tables shape + protected int classification; + public int getClassification() {return this.classification; } + public void setClassification(int S) {classification = S; } +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/TronconHydrographique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/TronconHydrographique.java new file mode 100644 index 0000000..c7384f5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/TronconHydrographique.java @@ -0,0 +1,170 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement.Troncon; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + + +@SuppressWarnings("unchecked") + +public abstract class TronconHydrographique extends Troncon { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String largeur; + public String getLargeur() {return this.largeur; } + public void setLargeur (String Largeur) {largeur = Largeur; } + + protected String etat; + public String getEtat() {return this.etat; } + public void setEtat (String Etat) {etat = Etat; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String navigabilite; + public String getNavigabilite() {return this.navigabilite; } + public void setNavigabilite (String Navigabilite) {navigabilite = Navigabilite; } + + protected String pos_sol; + public String getPos_sol() {return this.pos_sol; } + public void setPos_sol (String Pos_sol) {pos_sol = Pos_sol; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String S) {toponyme = S; } + + protected String sens; + public String getSens() {return this.sens; } + public void setSens (String Sens) {sens = Sens; } + + + + /////////////// RELATIONS ////////////////// + + /** Un troncon peut appartenir a plusieurs cours d'eau + * (relation n-m, a cours d'eau a au moins 1 troncon, un troncon fait partie de 0 a n cours d'eau. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List coursDEau = new ArrayList(); + /** Recupere le CoursDEau en relation */ + public List getCoursDEau() {return coursDEau ; } + /** Definit le CoursDEau en relation, et met a jour la relation inverse. */ + public void setCoursDEau(List L) { + List old = new ArrayList(coursDEau); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + CoursDEau O = (CoursDEau)it1.next(); + coursDEau.remove(O); + O.getTroncons().remove(this); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + CoursDEau O = (CoursDEau)it2.next(); + coursDEau.add(O); + O.getTroncons().add(this); + } + } + /** Recupere le ieme element de la liste des CoursDEau en relation. */ + public CoursDEau getCoursDEau(int i) {return (CoursDEau)coursDEau.get(i) ; } + /** Ajoute un element a la liste des CoursDEau en relation, et met a jour la relation inverse. */ + public void addCoursDEau(CoursDEau O) { + if ( O == null ) return; + coursDEau.add(O) ; + O.getTroncons().add(this); + } + /** Enleve un element de la liste des CoursDEau en relation, et met a jour la relation inverse. */ + public void removeCoursDEau(CoursDEau O) { + if ( O == null ) return; + coursDEau.remove(O) ; + O.getTroncons().remove(this); + } + /** Vide la liste des CoursDEau en relation, et met a jour la relation inverse. */ + public void emptyCoursDEau() { + Iterator it = coursDEau.iterator(); + while ( it.hasNext() ) { + CoursDEau O = (CoursDEau)it.next(); + O.getTroncons().remove(this); + } + coursDEau.clear(); + } + + + + /** Un troncon a un noeud initial. + * 1 objet Noeud est en relation "sortants" avec n objets TronconHydrographique (n>0). + * 1 objet TronconHydrographique est en relation "ini" avec 1 objet Noeud. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private NoeudHydrographique ini; + /** Recupere le noeud initial. */ + public NoeudHydrographique getIni() {return ini;} + /** Definit le noeud initial, et met a jour la relation inverse. */ + public void setIni(NoeudHydrographique O) { + NoeudHydrographique old = ini; + ini = O; + if ( old != null ) old.getSortants().remove(this); + if ( O != null ) { + iniID = O.getId(); + if ( !(O.getSortants().contains(this)) ) O.getSortants().add(this); + } else iniID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + private int iniID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setIniID(int I) {iniID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getIniID() {return iniID;} + + + /** Un troncon a un noeud final. + * 1 objet Noeud est en relation "entrants" avec n objets TronconHydrographique (n>0). + * 1 objet TronconHydrographique est en relation "fin" avec 1 objet Noeud. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private NoeudHydrographique fin; + /** Recupere le noeud final. */ + public NoeudHydrographique getFin() {return fin;} + /** Definit le noeud final, et met a jour la relation inverse. */ + public void setFin(NoeudHydrographique O) { + NoeudHydrographique old = fin; + fin = O; + if ( old != null ) old.getEntrants().remove(this); + if ( O != null ) { + finID = O.getId(); + if ( !(O.getEntrants().contains(this)) ) O.getEntrants().add(this); + } else finID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + private int finID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setFinID(int I) {finID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getFinID() {return finID;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/ZoneHydrographiqueDeTexture.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/ZoneHydrographiqueDeTexture.java new file mode 100644 index 0000000..6fe607e --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/hydro/ZoneHydrographiqueDeTexture.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.hydro; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +/** Zone plate au drainage complexe dans laquelle circule un ensemble de portions de cours d'eau + * formant un entrelac de bras d'egale importance. */ +public abstract class ZoneHydrographiqueDeTexture extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Polygon geometrie = null; + /** Renvoie le GM_Polygon qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Polygon qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/Accede.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/Accede.java new file mode 100644 index 0000000..f6bb881 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/Accede.java @@ -0,0 +1,70 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +public abstract class Accede extends ElementBDCarto { + + protected String cote; + public String getCote() {return cote; } + public void setCote (String S) {cote = S; } + + /////////////// RELATIONS ////////////////// + /** Troncon concerne par la relation. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected TronconRoute troncon; + /** Recupere le troncon en relation. */ + public TronconRoute getTroncon() {return troncon; } + /** Definit le troncon en relation, et met a jour la relation inverse. */ + public void setTroncon(TronconRoute O) { + TronconRoute old = troncon; + troncon = O; + if ( old != null ) old.getAccedent().remove(this); + if ( O != null ) { + tronconID = O.getId(); + if ( !(O.getAccedent().contains(this)) ) O.getAccedent().add(this); + } else tronconID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int tronconID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setTronconID(int I) {tronconID = I;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getTronconID() {return tronconID;} + + + /** Equipement concerne par la relation. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + /** Ne pas utiliser. Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected EquipementRoutier equipement; + /** Recupere le equipement en relation. */ + public EquipementRoutier getEquipement() {return equipement; } + /** Definit le equipement en relation, et met a jour la relation inverse. */ + public void setEquipement(EquipementRoutier O) { + EquipementRoutier old = equipement; + equipement = O; + if ( old != null ) old.getAccedent().remove(this); + if ( O != null ) { + equipementID = O.getId(); + if ( !(O.getAccedent().contains(this)) ) O.getAccedent().add(this); + } else equipementID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int equipementID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setEquipementID(int I) {equipementID = I;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getEquipementID() {return equipementID;} + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/CarrefourComplexe.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/CarrefourComplexe.java new file mode 100644 index 0000000..af1c149 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/CarrefourComplexe.java @@ -0,0 +1,78 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +public abstract class CarrefourComplexe extends ElementBDCarto { + + public String numero; + public String getNumero() {return numero;} + public void setNumero(String S) {this.numero = S;} + + public String nature; + public String getNature() {return nature;} + public void setNature(String S) {this.nature = S;} + + public String toponyme; + public String getToponyme() {return toponyme;} + public void setToponyme(String S) {this.toponyme = S;} + + /** Lien bidirectionnel persistant 1-n vers noeud routier. + * 1 objet Carrefour Complexe est en relation avec 1 ou n objets noeud. + * 1 objet noeud est en relation avec 0 ou 1 objet Carrefour complexe. + * + * NB: un objet route ne doit pas etre en relation plusieurs fois avec le meme objet troncon : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + protected List noeuds = new ArrayList(); + + /** Recupere la liste des noeuds. */ + public List getNoeuds() {return noeuds ; } + /** Definit la liste des Noeuds, et met a jour la relation inverse. */ + public void setNoeuds (List L) { + List old = new ArrayList(noeuds); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + NoeudRoutier O = it1.next(); + O.setCarrefourComplexe(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + NoeudRoutier O = it2.next(); + O.setCarrefourComplexe(this); + } + } + /** Recupere le ieme element composant. */ + public NoeudRoutier getNoeud(int i) {return noeuds.get(i) ; } + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addNoeud(NoeudRoutier O) { + if ( O == null ) return; + noeuds.add(O) ; + O.setCarrefourComplexe(this) ; + } + /** Enleve un element de la liste noeuds, et met a jour la relation inverse. */ + public void removeNoeud(NoeudRoutier O) { + if ( O == null ) return; + noeuds.remove(O) ; + O.setCarrefourComplexe(null); + } + /** Vide la liste des noeuds, et met a jour la relation inverse. */ + public void emptyNoeuds() { + List old = new ArrayList(noeuds); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + NoeudRoutier O = it.next(); + O.setCarrefourComplexe(null); + } + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/CommunicationRestreinte.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/CommunicationRestreinte.java new file mode 100644 index 0000000..953c237 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/CommunicationRestreinte.java @@ -0,0 +1,47 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +public abstract class CommunicationRestreinte extends ElementBDCarto { + + public String interdiction; + public void setInterdiction(String S) {this.interdiction = S;} + public String getInterdiction() {return interdiction;} + + public double restrictionPoids; + public double getRestrictionPoids() {return restrictionPoids;} + public void setRestrictionPoids(double S) {this.restrictionPoids = S;} + + public double restrictionHauteur; + public double getRestrictionHauteur() {return restrictionHauteur;} + public void setRestrictionHauteur(double S) {this.restrictionHauteur = S;} + + /** Une communication restreinte concerne un noeud. + * 1 objet CommunicationRoutiere est en relation avec 1 Noeud. + * 1 objet Noeud est en relation avec 0 ou 1 objet CommunicationRoutiere. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected NoeudRoutier noeud; + /** Recupere le noeud routier concerne */ + public NoeudRoutier getNoeud() {return noeud;} + /** Definit le noeud routier concerne, et met a jour la relation inverse. */ + public void setNoeud(NoeudRoutier O) { + NoeudRoutier old = noeud; + noeud = O; + if ( old != null ) old.setCommunication(null); + if ( O != null ) { + noeudID = O.getId(); + if ( O.getCommunication() != this ) O.setCommunication(this); + } else noeudID = 0; + } + protected int noeudID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getNoeudID() {return noeudID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setNoeudID (int I) {noeudID = I;} + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/DebutSection.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/DebutSection.java new file mode 100644 index 0000000..a345a78 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/DebutSection.java @@ -0,0 +1,93 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +public abstract class DebutSection extends ElementBDCarto { + + protected String gestionnaire; + public String getGestionnaire() {return gestionnaire; } + public void setGestionnaire (String S) {gestionnaire = S; } + + protected String sens; + public String getSens() {return sens; } + public void setSens (String S) {sens = S; } + + /** Les debuts de section se suivent. + * 1 objet Debut de section a 1 ou 0 successeur. + * 1 objet Debut de section a 1 ou 0 predecesseur. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected DebutSection successeur; + /** Recupere le successeur */ + public DebutSection getSuccesseur() {return successeur;} + /** Definit le successeur, et met a jour la relation inverse. */ + public void setSuccesseur(DebutSection O) { + DebutSection old = successeur; + successeur = O; + if ( old != null ) old.setPredecesseur(null); + if ( O != null ) { + successeurID = O.getId(); + if ( O.getPredecesseur() != this ) O.setPredecesseur(this); + } else successeurID = 0; + } + protected int successeurID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getSuccesseurID() {return successeurID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setSuccesseurID (int I) {successeurID = I;} + + + protected DebutSection predecesseur; + /** Recupere le predecesseur*/ + public DebutSection getPredecesseur() {return predecesseur;} + /** Definit le predecesseur, et met a jour la relation inverse. */ + public void setPredecesseur(DebutSection O) { + DebutSection old = predecesseur; + predecesseur = O; + if ( old != null ) old.setSuccesseur(null); + if ( O != null ) { + predecesseurID = O.getId(); + if ( O.getSuccesseur() != this ) O.setSuccesseur(this); + } else predecesseurID = 0; + } + protected int predecesseurID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getPredecesseurID() {return predecesseurID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setPredecesseurID (int I) {predecesseurID = I;} + + + /** Une debut de section est situee sur un troncon. + * 1 objet DebutSection est en relation avec 1 Troncon. + * 1 objet Troncon est en relation avec 0 ou 1 objet DebutSection. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected TronconRoute troncon; + /** Recupere le troncon routier concerne */ + public TronconRoute getTroncon() {return troncon;} + /** Definit le troncon routier concerne, et met a jour la relation inverse. */ + public void setTroncon(TronconRoute O) { + TronconRoute old = troncon; + troncon = O; + if ( old != null ) old.setDebutSection(null); + if ( O != null ) { + tronconID = O.getId(); + if ( O.getDebutSection() != this ) O.setDebutSection(this); + } else tronconID = 0; + } + protected int tronconID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getTronconID() {return tronconID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setTronconID (int I) {tronconID = I;} + + //est situe sur +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/EquipementRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/EquipementRoutier.java new file mode 100644 index 0000000..89f4a11 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/EquipementRoutier.java @@ -0,0 +1,123 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +/** + * Equipement routier. + *
Type : + * Objet simple + *
Localisation : + * Ponctuelle. + *
Liens : + * //Compose (lien inverse) "Route numerotee ou nommee" + *
Definition : + * La classe des equipements routiers regroupe :
    + *
  • les aires de repos et les aires de service sur le reseau de type autoroutier ;
  • + *
  • les tunnels routiers d'une longueur inferieure a 200 metres s'ils ne correspondent pas a une intersection avec d'autres troncons des reseaux routier et ferre (sinon ce sont des franchissements) ;
  • + *
  • les gares de peage.
+ *
Compatibilite entre attributs : + *
    + *
  • compatiblite sur les toponymes ?
  • + *
+ * + */ + +public abstract class EquipementRoutier extends ElementBDCarto { + + // protected GM_Point geometrie = null; + /** Renvoie la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /** Nature + *
Definition : + * Nature. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- aire de service
  • + *
  • 2- aire de repos
  • + *
  • 5- tunnel de moins de 200 metres
  • + *
  • 7- gare de peage
  • + *
+ */ + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + /** Toponyme. + *
Definition : + * Un equipement porte en general un toponyme. + * Il est compose de trois parties pouvant eventuellement ne porter aucune valeur (n'existe pas) : + * un terme generique ou une designation, texte d'au plus 40 caracteres. + * un article, texte d'au plus cinq caracteres ; + * un element specifique, texte d'au plus 80 caracteres ; + *
Type : + * Chaine de caracteres. + */ + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + /** Un troncon de route permet d'acceder a n equipements routier , + * par l'intermediaire de la classe-relation Accede. + * 1 objet equipement peut etre en relation avec 0 ou n "objets-relation" Accede. + * 1 "objet-relation" Accede est en relation avec 1 objet equipement. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + protected List accedent = new ArrayList(); + + /** Recupere la liste des Accede en relation. */ + public List getAccedent() {return accedent; } + /** Definit la liste des Accede en relation, et met a jour la relation inverse. */ + public void setAccedent(List L) { + List old = new ArrayList(accedent); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + Accede O = it1.next(); + O.setEquipement(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + Accede O = it2.next(); + O.setEquipement(this); + } + } + /** Recupere le ieme element de la liste des Accede en relation. */ + public Accede getAccede(int i) {return accedent.get(i) ; } + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addAccede(Accede O) { + if ( O == null ) return; + accedent.add(O) ; + O.setEquipement(this) ; + } + /** Enleve un element de la liste des Accede en relation, et met a jour la relation inverse. */ + public void removeAccede(Accede O) { + if ( O == null ) return; + accedent.remove(O) ; + O.setEquipement(null); + } + /** Vide la liste des Accede en relation, et met a jour la relation inverse. */ + public void emptyAccedent() { + List old = new ArrayList(accedent); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + Accede O = it.next(); + O.setEquipement(null); + } + } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/ItineraireRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/ItineraireRoutier.java new file mode 100644 index 0000000..9bc3bb4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/ItineraireRoutier.java @@ -0,0 +1,81 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + +public abstract class ItineraireRoutier extends ElementBDCarto { + + protected String numero; + public String getNumero() {return this.numero; } + public void setNumero (String Numero) {numero = Numero; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + + /** Lien bidirectionnel persistant n-m vers troncon de route. + * 1 objet Itineraire est en relation avec 1 ou n objets troncons. + * 1 objet Troncon est en relation avec 0 ou n objets itineraires. + * + * NB: un objet route ne doit pas etre en relation plusieurs fois avec le meme objet troncon : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + public List troncons = new ArrayList(); + /** Recupere les troncons routiers en relation */ + public List getTroncons() {return troncons ; } + /** Definit les troncons routiers en relation, et met a jour la relation inverse. */ + public void setTroncons (List L) { + List old = new ArrayList(troncons); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconRoute O = it1.next(); + troncons.remove(O); + O.getItineraires().remove(this); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconRoute O = it2.next(); + troncons.add(O); + O.getItineraires().add(this); + } + } + /** Recupere le ieme element de la liste des troncons routiers en relation. */ + public TronconRoute getTroncon(int i) {return troncons.get(i) ; } + /** Ajoute un element a la liste des troncons routiers en relation, et met a jour la relation inverse. */ + public void addTroncon(TronconRoute O) { + if ( O == null ) return; + troncons.add(O) ; + O.getItineraires().add(this); + } + /** Enleve un element de la liste des troncons routiers en relation, et met a jour la relation inverse. */ + public void removeTroncon(TronconRoute O) { + if ( O == null ) return; + troncons.remove(O) ; + O.getItineraires().remove(this); + } + /** Vide la liste des troncons routiers en relation, et met a jour la relation inverse. */ + public void emptyTroncons() { + Iterator it = troncons.iterator(); + while ( it.hasNext() ) { + TronconRoute O = it.next(); + O.getItineraires().remove(this); + } + troncons.clear(); + } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/LiaisonMaritime.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/LiaisonMaritime.java new file mode 100644 index 0000000..92976dc --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/LiaisonMaritime.java @@ -0,0 +1,160 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +/** + * Liaisom maritime ou bac. + *
Type : + * Objet simple + *
Localisation : + * Lineaire. + *
Liens : + * //Compose (lien inverse) "Route numerotee ou nommee" + *
Definition : + * Liaison maritime ou ligne de bac reliant deux embarcaderes. + * Sont retenus dans la BDCarto :
    + *
  • tous les bacs et liaisons maritimes reliant deux embarcaderes situes sur le territoire de la BDCarto et ouverts au public (noeuds routiers de type 22), a + * l'exception des bacs fluviaux reserves aux pietons ;
  • + *
  • toutes les liaisons maritimes regulieres effectuant le transport des passagers ou des vehicules entre un embarcadere situe sur le territoire de la BDCarto + * (type 22) et un embarcadere situe hors du territoire BDCarto (type 23).
+ * Lorsqu'un embarcadere est egalement noeud routier apportant une information particuliere (rond-point?) c'est ce dernier qui est code. Les liaisons + * maritimes sont toujours connectees au reseau routier pour assurer la continuite du reseau. Quand il n'existe pas de route pour assurer cette connection, + * celle-ci est assuree par un troncon fictif (voir B-s-1-[31-2]). + *
Compatibilite entre attributs : + *
    + *
  • compatiblite sur les toponymes ?
  • + *
+ * + * @author braun + */ + +public abstract class LiaisonMaritime extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // protected GM_Curve geometrie = null; + /** Renvoie la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /** Ouverture. + *
Definition : + * Ouverture. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- toute l'annee
  • + *
  • 6- en saison seulement
  • + *
+ */ + protected String ouverture; + public String getOuverture() {return ouverture; } + public void setOuverture(String S) {ouverture = S; } + + /** Vocation. + *
Definition : + * Vocation. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- pietons seulement
  • + *
  • 2- pietons et automobiles
  • + *
+ */ + protected String vocation; + public String getVocation() {return vocation; } + public void setVocation(String S) {vocation= S; } + + /** Duree. + *
Definition : + * Duree de la traversee en minutes, pouvant eventuellement ne porter aucune valeur (inconnue). + * Note : Quand il y a plusieurs temps de parcours pour une meme liaison, c'est le temps le plus long qui est retenu. + *
Type : + * Entier > 0 + */ + protected double duree; + public double getDuree() {return duree; } + public void setDuree(double D) {duree= D; } + + /** Toponyme. + *
Definition : + * Texte d'au plus 80 caracteres, pouvant eventuellement ne porter aucune valeur (inconnu), + * specifiant la localisation des embarcaderes de depart et d'arrivee (ex : " brest : le conquet "). + *
Type : + * Chaine de caracteres. + */ + protected String toponyme; + public String getToponyme() {return toponyme; } + public void setToponyme(String S) {toponyme = S; } + + + + + /** Noeud initial de la liaison maritime. + *
Definition : + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise le noeud routier initial de la liaison maritime. + *
Type : + * NoeudRoutier. + *
Cardinalite de la relation : + * 1 liaison a 0 ou 1 noeud initial. + * 1 noeud a 0 ou n liasons sortants. + */ + + protected NoeudRoutier noeudIni; + /** Recupere le noeud initial. */ + public NoeudRoutier getNoeudIni() {return noeudIni;} + /** Definit le noeud initial, et met a jour la relation inverse. */ + public void setNoeudIni(NoeudRoutier O) { + NoeudRoutier old = noeudIni; + noeudIni = O; + if ( old != null ) old.getSortantsMaritime().remove(this); + if ( O != null ) { + noeudIniID = O.getId(); + if ( !(O.getSortantsMaritime().contains(this)) ) O.getSortantsMaritime().add(this); + } else noeudIniID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int noeudIniID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setNoeudIniID(int I) {noeudIniID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getNoeudIniID() {return noeudIniID;} + + + + + /** Noeud final de la liaison maritime. + *
Definition : + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise le noeud routier initial de la liaison maritime. + *
Type : + * NoeudRoutier. + *
Cardinalite de la relation : + * 1 liaison a 0 ou 1 noeud initial. + * 1 noeud a 0 ou n liaisons sortants. + */ + protected NoeudRoutier noeudFin; + /** Recupere le noeud final. */ + public NoeudRoutier getNoeudFin() {return noeudFin;} + /** Definit le noeud final, et met a jour la relation inverse. */ + public void setNoeudFin(NoeudRoutier O) { + NoeudRoutier old = noeudFin; + noeudFin = O; + if ( old != null ) old.getEntrantsMaritime().remove(this); + if ( O != null ) { + noeudFinID = O.getId(); + if ( !(O.getEntrantsMaritime().contains(this)) ) O.getEntrantsMaritime().add(this); + } else noeudFinID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int noeudFinID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setNoeudFinID(int I) {noeudFinID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getNoeudFinID() {return noeudFinID;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/NoeudRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/NoeudRoutier.java new file mode 100644 index 0000000..32916bc --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/NoeudRoutier.java @@ -0,0 +1,410 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +/** + * Noeud du reseau routier. + *
Type : + * Objet simple + *
Localisation : + * Ponctuelle. + *
Liens : + * //Compose (lien inverse) "Route numerotee ou nommee" + *
Definition : + * Un noeud du reseau routier correspond a une extremite de troncon de route ou de liaison maritime ; + * il traduit une modification des conditions de circulation : ce peut etre une intersection, un obstacle ou un changement de valeur d'attribut. + * Il n'y a pas a proprement parler de selection des noeuds routiers : + * elle est deduite de celle des troncons de route et des liaisons maritimes et bacs. Les carrefours amenages d'une extension superieure a 100 + * metres et les ronds-points d'un diametre superieur a 50 metres sont des noeuds avec une nature specifique ; + * si leur extension est inferieure ils sont consideres comme des carrefours simples. + * D'autre part, si leur extension est superieure a 100 metres, ils sont egalement detailles en plusieurs carrefours simples au meme titre que les + * echangeurs (ils ont alors 2 descriptions : une generaliste et une detaillee). + *
Compatibilite entre attributs : + *
    + *
  • compatiblite sur les toponymes ?
  • + *
+ * + * @author braun + */ + +public abstract class NoeudRoutier extends ElementBDCarto { + + // protected GM_Point geometrie = null; + /** Renvoie la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /** Type de noeud. + *
Definition : + * Type de noeud. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 11- carrefour simple, cul de sac, carrefour amenage d'une extension inferieure a 100 metres, ou rond-point d'un diamere inferieur a 50 metres
  • + *
  • 12- intersection representant un carrefour amenage d'une extension superieure a 100 metres sans toboggan ni passage inferieur
  • + *
  • 14- intersection representant un rond-point (giratoire) d'un diametre superieur a 100 metres d'axe a axe
  • + *
  • 15- carrefour amenage avec passage inferieur ou toboggan quelle que soit son extension
  • + *
  • 16- intersection representant un echangeur complet
  • + *
  • 17- intersection representant un echangeur partiel
  • + *
  • 18- rond-point (giratoire) d'un diametre compris entre 50 et 100 metres
  • + *
  • 22- embarcadere de bac ou liaison maritime
  • + *
  • 23- embarcadere de liaison maritime situe hors du territoire BDCarto, positionne de facon fictive en limite de ce territoire
  • + *
  • 31- barriere interdisant la communication libre entre deux portions de route, regulierement ou irregulierement entretenue
  • + *
  • 32- barriere de douane (hors CEE)
  • + *
  • 40- changement d'attribut
  • + *
  • 45- noeud cree par l'intersection entre une route nationale et la limite de departement quand il n'existe pas de noeud au lieu de l'intersection ou noeud cree pour decouper des grands troncons de route (ex : autoroute).
  • + *
  • 50- noeud de communication restreinte (voir B-rs-4) : noeud cree quand il n'existe pas de noeud correspondant aux valeurs ci-dessus au lieu de la restriction.
  • + *
+ */ + public String type; + public String getType() { return type; } + public void setType(String type) { this.type = type; } + + + /** Toponyme. + *
Definition : + * Un noeud du reseau routier peut porter un toponyme, si l'un au moins des troncons connectes appartient au reseau classe, et si le noeud appartient a l'un des types suivants : + * carrefour simple, + * carrefour amenage d'une extension superieure a 100 m, + * rond-point d'un diametre superieur a 100 m, + * rond-point, + * carrefour amenage avec passage inferieur ou tobbogan, + * echangeur complet ou partiel. + * Un noeud composant un carrefour complexe ne porte generalement pas de toponyme. + * Le toponyme est compose de trois parties pouvant ne porter aucune valeur (n'existe pas dans les cas ci-dessus et sans objet sinon) : + * un terme generique ou une designation, texte d'au plus 40 caracteres. + * un article, texte d'au plus cinq caracteres ; + * un element specifique, texte d'au plus 80 caracteres ; + *
Type : + * Chaine de caracteres. + */ + + public String toponyme; + public String getToponyme() { return toponyme; } + public void setToponyme(String toponyme) { this.toponyme = toponyme; } + + + /** Cote. + *
Definition : + * Nombre entier donnant l'altitude en metres. Cet attribut peut ne porter aucune valeur. + *
Type : + * entier > 0. + * NB : 9999 correspond a une cote inconnue. + */ + public int cote; + public int getCote() { return cote; } + public void setCote(int I) { cote = I; } + + + /** Liste (non ordonnee) des arcs sortants de self + *
Definition : + * 1 objet Noeud est en relation "sortants" avec n objets TronconRoutier. + * 1 objet TronconRoutier est en relation "ini" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type des elements de la liste : + * TronconRoute. + *
Cardinalite de la relation : + * 1 troncon a 0 ou 1 noeud initial NoeudIni. + * 1 noeud a 0 ou n troncons sortants. + */ + protected List sortants = new ArrayList(); + + /** Recupere la liste des arcs sortants. */ + public List getSortants() {return sortants ; } + /** Definit la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void setSortants(List L) { + List old = new ArrayList(sortants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconRoute O = it1.next(); + O.setNoeudIni(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconRoute O = it2.next(); + O.setNoeudIni(this); + } + } + /** Recupere le ieme element de la liste des arcs sortants. */ + public TronconRoute getSortant(int i) {return sortants.get(i) ; } + /** Ajoute un objet a la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void addSortant(TronconRoute O) { + if ( O == null ) return; + sortants.add(O) ; + O.setNoeudIni(this) ; + } + /** Enleve un element de la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void removeSortant(TronconRoute O) { + if ( O == null ) return; + sortants.remove(O) ; + O.setNoeudIni(null); + } + /** Vide la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void emptySortants() { + List old = new ArrayList(sortants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconRoute O = it.next(); + O.setNoeudIni(null); + } + } + + + /** Liste (non ordonnee) des arcs entrants de self + *
Definition : + * 1 objet Noeud est en relation "entrants" avec n objets TronconRoutier. + * 1 objet TronconRoutier est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type des éléments de la liste : + * TronconRoute. + *
Cardinalite de la relation : + * 1 troncon a 0 ou 1 noeud initial NoeudFin. + * 1 noeud a 0 ou n troncons entrants. + */ + protected List entrants = new ArrayList(); + + /** Recupere la liste des arcs entrants. */ + public List getEntrants() {return entrants ; } + /** Definit la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void setEntrants(List L) { + List old = new ArrayList(entrants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconRoute O = it1.next(); + O.setNoeudFin(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconRoute O = it2.next(); + O.setNoeudFin(this); + } + } + /** Recupere le ieme element de la liste des arcs entrants. */ + public TronconRoute getEntrant(int i) {return entrants.get(i) ; } + /** Ajoute un objet a la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void addEntrant(TronconRoute O) { + if ( O == null ) return; + entrants.add(O) ; + O.setNoeudFin(this) ; + } + /** Enleve un element de la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void removeEntrant(TronconRoute O) { + if ( O == null ) return; + entrants.remove(O) ; + O.setNoeudFin(null); + } + /** Vide la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void emptyEntrants() { + List old = new ArrayList(entrants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconRoute O = it.next(); + O.setNoeudFin(null); + } + } + + + /** Lien bidirectionnel persistant la carrefourComplexe dont il est composant. + * 1 objet CarrefourComplexe est en relation avec 1 ou n objets noeuds. + * 1 objet Noeud est en relation avec 0 ou 1 objet carrefourComplexe. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected CarrefourComplexe carrefourComplexe; + /** Recupere le carrefourComplexe dont il est composant. */ + public CarrefourComplexe getCarrefourComplexe() {return carrefourComplexe; } + /** Definit le carrefourComplexe dont il est composant, et met a jour la relation inverse. */ + public void setCarrefourComplexe(CarrefourComplexe O) { + CarrefourComplexe old = carrefourComplexe; + carrefourComplexe = O; + if ( old != null ) old.getNoeuds().remove(this); + if ( O != null ) { + carrefourComplexeID = O.getId(); + if ( !(O.getNoeuds().contains(this)) ) O.getNoeuds().add(this); + } else carrefourComplexeID = 0; + } + protected int carrefourComplexeID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setCarrefourComplexeID(int I) {carrefourComplexeID = I;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getCarrefourComplexeID() {return carrefourComplexeID;} + + + + /** Une communication restreinte concerne un noeud. + * 1 objet CommunicationRestreinte est en relation avec 1 Noeud. + * 1 objet Noeud est en relation avec 0 ou 1 objet CommunicationRoutiere. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected CommunicationRestreinte communication; + /** Recupere l'objet en relation. */ + public CommunicationRestreinte getCommunication() {return communication; } + /** Definit l'objet en relation, et met a jour la relation inverse. */ + public void setCommunication(CommunicationRestreinte O) { + CommunicationRestreinte old = communication; + communication = O; + if ( old != null ) old.setNoeud(null); + if ( O != null ) { + communicationID = O.getId(); + if ( O.getNoeud() != this ) O.setNoeud(this); + } else communicationID = 0; + } + protected int communicationID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getCommunicationID() {return communicationID;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setCommunicationID (int I) {communicationID = I;} + + + + /** Liste (non ordonnee) des liaisons maritimes sortants de self + *
Definition : + * 1 objet Noeud est en relation "sortantsMaritime" avec 0 ou n objets liaisons maritimes. + * 1 objet liaison est en relation "ini" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type des elements de la liste : + * TronconRoute. + *
Cardinalite de la relation : + * 1 troncon a 0 ou 1 noeud initial NoeudIni. + * 1 noeud a 0 ou n troncons sortants. + */ + protected List sortantsMaritime = new ArrayList(); + + /** Recupere la liste des arcs Maritime sortants. */ + public List getSortantsMaritime() {return sortantsMaritime ; } + /** Definit la liste des arcs Maritime sortants, et met a jour la relation inverse Ini. */ + public void setSortantsMaritime(List L) { + List old = new ArrayList(sortantsMaritime); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + LiaisonMaritime O = it1.next(); + O.setNoeudIni(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + LiaisonMaritime O = it2.next(); + O.setNoeudIni(this); + } + } + /** Recupere le ieme element de la liste des arcs Maritime sortants. */ + public LiaisonMaritime getSortantMaritime(int i) {return sortantsMaritime.get(i) ; } + /** Ajoute un objet a la liste des arcs sortants, et met a jour la relation inverse Ini. */ + public void addSortantMaritime(LiaisonMaritime O) { + if ( O == null ) return; + sortantsMaritime.add(O) ; + O.setNoeudIni(this) ; + } + /** Enlave un element de la liste des arcs Maritime sortants, et met a jour la relation inverse Ini. */ + public void removeSortantMaritime(LiaisonMaritime O) { + if ( O == null ) return; + sortantsMaritime.remove(O) ; + O.setNoeudIni(null); + } + /** Vide la liste des arcs Maritime sortants, et met a jour la relation inverse Ini. */ + public void emptySortantsMaritime() { + List old = new ArrayList(sortantsMaritime); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + LiaisonMaritime O = it.next(); + O.setNoeudIni(null); + } + } + + + /** Liste (non ordonnee) des liaisons maritimes entrants de self + *
Definition : + * 1 objet Noeud est en relation "entrantsMaritime" avec 0 ou n objets liaisons maritimes. + * 1 objet liaison est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type des elements de la liste : + * TronconRoute. + *
Cardinalite de la relation : + * 1 troncon a 0 ou 1 noeud initial NoeudFin. + * 1 noeud a 0 ou n troncons entrants. + */ + protected List entrantsMaritime = new ArrayList(); + + /** Recupere la liste des arcs Maritime entrants. */ + public List getEntrantsMaritime() {return entrantsMaritime ; } + /** Definit la liste des arcs Maritime entrants, et met a jour la relation inverse NoeudFin. */ + public void setEntrantsMaritime(List L) { + List old = new ArrayList(entrantsMaritime); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + LiaisonMaritime O = it1.next(); + O.setNoeudFin(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + LiaisonMaritime O = it2.next(); + O.setNoeudFin(this); + } + } + /** Recupere le ieme element de la liste des arcs Maritime entrants. */ + public LiaisonMaritime getEntrantMaritime(int i) {return entrantsMaritime.get(i) ; } + /** Ajoute un objet a la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void addEntrantMaritime(LiaisonMaritime O) { + if ( O == null ) return; + entrantsMaritime.add(O) ; + O.setNoeudFin(this) ; + } + /** Enleve un element de la liste des arcs Maritime entrants, et met a jour la relation inverse NoeudFin. */ + public void removeEntrantMaritime(LiaisonMaritime O) { + if ( O == null ) return; + entrantsMaritime.remove(O) ; + O.setNoeudFin(null); + } + /** Vide la liste des arcs Maritime entrants, et met a jour la relation inverse NoeudFin. */ + public void emptyEntrantsMaritime() { + List old = new ArrayList(entrantsMaritime); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + LiaisonMaritime O = it.next(); + O.setNoeudFin(null); + } + } + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/Route.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/Route.java new file mode 100644 index 0000000..13b62b1 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/Route.java @@ -0,0 +1,81 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; + + +public abstract class Route extends ElementBDCarto{ + + public String numero; + public String getNumero() {return numero;} + public void setNumero(String S) {numero = S;} + + public String classement; + public String getClassement() {return classement;} + public void setClassement(String S) {this.classement = S;} + + public String gestionnaire; + public String getGestionnaire() {return gestionnaire;} + public void setGestionnaire(String S) {gestionnaire = S;} + + + /** Lien bidirectionnel persistant 1-n vers troncon de route. + * 1 objet Route est en relation avec 1 ou n objets troncons. + * 1 objet Troncon est en relation avec 0 ou n objets routes. + * + * NB: un objet route ne doit pas etre en relation plusieurs fois avec le meme objet troncon : + * il est impossible de bien gerer des relations 1-n bidirectionnelles avec doublons. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + private List troncons = new ArrayList(); + /** Recupere le troncon routier en relation */ + public List getTroncons() {return troncons ; } + /** Definit le troncon routier en relation, et met a jour la relation inverse. */ + public void setTroncons (List L) { + List old = new ArrayList(troncons); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconRoute O = it1.next(); + troncons.remove(O); + O.setRoute(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconRoute O = it2.next(); + troncons.add(O); + O.setRoute(this); + } + } + /** Recupere le ieme element de la liste des troncons routier en relation. */ + public TronconRoute getTroncon(int i) {return troncons.get(i) ; } + /** Ajoute un element a la liste des troncons routier en relation, et met a jour la relation inverse. */ + public void addTroncon(TronconRoute O) { + if ( O == null ) return; + troncons.add(O) ; + O.setRoute(this); + } + /** Enleve un element de la liste des troncons routier en relation, et met a jour la relation inverse. */ + public void removeTroncon(TronconRoute O) { + if ( O == null ) return; + troncons.remove(O) ; + O.setRoute(null); + } + /** Vide la liste des troncons routier en relation, et met a jour la relation inverse. */ + public void emptyTroncons() { + Iterator it = troncons.iterator(); + while ( it.hasNext() ) { + TronconRoute O = it.next(); + O.setRoute(null); + } + troncons.clear(); + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/TronconRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/TronconRoute.java new file mode 100644 index 0000000..218ab8a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/routier/TronconRoute.java @@ -0,0 +1,507 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.franchissement.Troncon; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +/** + * Troncon de route. + *
Type : + * Objet simple + *
Localisation : + * Lineraire. + *
Liens : + * //Compose (lien inverse) "Route numerotee ou nommee" + *
Definition : + * Les troncons de route, chemins ou sentier. Les voies en construction sont retenues, + * sans raccordement au reseau existant, dans la mesure ou les terrassements ont debute sur le terrain. + *
Compatibilite entre attributs : + *
    + *
  • Si "nbChaussees" = "2 chaussees" alors "nbVoies" = "sans objet"
  • + *
  • Si "vocation" = "bretelle" alors "nbVoies" = "sans objet"
  • + *
  • Si "nbChaussees" = "2 chaussees" alors "sens" != "sans objet"
  • + *
  • Si "nbChaussees" = "2 chaussees" alors "nbVoiesMontantes" != "sans objet"
  • + *
  • Si "nbChaussees" = "2 chaussees" alors "nbVoiesDescendantes" != "sans objet"
  • + *
  • Si "nbChaussees" = "1 chaussee" alors "nbVoiesMontantes" = "sans objet"
  • + *
  • Si "nbChaussees" = "1 chaussee" alors "nbVoiesDescendantes" = "sans objet"
  • + *
  • Si "utilisation" = "cartographique seule" alors "acces" = "libre"
  • + *
  • Si "etatPhysique" != "en construction ou en projet" alors "dateMiseEnservice" = "sans objet"
  • + *
  • + compatiblite sur les toponymes ?
  • + *
+ * + * @author braun + */ + +public abstract class TronconRoute extends Troncon { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // protected GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + /** Vocation de la liaison. + *
Definition : + * Cet attribut materialise une hierarchisation du reseau routier basee, non pas sur un critere administratif, + * mais sur l'importance des troncons de route pour le trafic routier. + * Ainsi, les 4 valeurs "type autoroutier" "liaison principale", "liaison regionale" et + * "liaison locale" permettent un maillage de plus en plus dense du territoire. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- "type autoroutier"
  • + *
  • 2- "liaison principale"
  • + *
  • 6- "liaison regionale"
  • + *
  • 7- "liaison locale"
  • + *
  • 8- "bretelle"
  • + *
  • 10- "piste cyclable"
  • + *
+ */ + protected String vocation; + public String getVocation() { return vocation; } + public void setVocation(String vocation) { this.vocation = vocation; } + + + /** Nombre de chaussees. + *
Definition : + * Nombre de chaussees. Pour les voies a chaussees separees: si elles sont contigues, la BDCarto contient un troncon a deux chaussees. + * Si elle sont eloignees de plus de 100 m sur au moins 1km de long, la BDCarto contient deux troncons a une chaussee. + *
int : + * entier. + *
Valeurs possibles :
    + *
  • 1
  • + *
  • 2
  • + *
+ */ + protected int nbChaussees; + public int getNbChaussees() { return nbChaussees; } + public void setNbChaussees(int I) { this.nbChaussees = I; } + + + /** Nombre total de voies. + *
Definition : + * Nombre total de voies. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • S- "sans objet" (valeur obligatoire pour les voies a 2 chaussees et les bretelles d'echangeurs)
  • + *
  • 1- "1 voie"
  • + *
  • 2- "2 voies etroites"
  • + *
  • 3- "3 voies" (chaussee normalisee 10.50 m)
  • + *
  • 4- "4 voies"
  • + *
  • 7- "2 voies normalisees" (chaussee normalisee 7 m)
  • + *
  • 9- "plus de 4 voies"
  • + *
+ */ + protected String nbVoies; + public String getNbVoies() { return nbVoies;} + public void setNbVoies(String nbVoies) { this.nbVoies = nbVoies; } + + + /** Etat physique de la route. + *
Definition : + * Etat physique de la route. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- "route revetue"
  • + *
  • 2- "route non revetue"
  • + *
  • 3- "en construction ou en projet"
  • + *
  • 4- "chemin d'exploitation"
  • + *
  • 5- "sentier"
  • + *
+ *
Remarques: + * Une route en construction ou en projet n'est pas raccordee au reseau existant. + */ + protected String etatPhysique; + public String getEtatPhysique() { return etatPhysique; } + public void setEtatPhysique(String etatPhysique) { this.etatPhysique = etatPhysique; } + + + /** Acces. + *
Definition : + * Acces. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- "libre"
  • + *
  • 2- "a peage"
  • + *
  • 3- "interdit au public"
  • + *
  • 6- "fermeture saisonniere"
  • + *
+ */ + public String acces; + public String getAcces() { return acces; } + public void setAcces(String acces) { this.acces = acces; } + + + /** Position par rapport au sol. + *
Definition : + * Position par rapport au sol. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- "normal"
  • + *
  • 2- "sur viaduc ou sur pont"
  • + *
  • 3- "en tunnel, souterrain, couvert ou semi-couvert"
  • + *
+ */ + protected String positionSol; + public String getPositionSol() { return positionSol; } + public void setPositionSol(String positionSol) { this.positionSol = positionSol; } + + + /** Appartenance au reseau vert. + *
Definition : + * Il s'agit du reseau vert de transit (pas celui a l'interieur des villes ni celui des poids-lourds). + *
Boolean : + * Chaine de caracteres. + *
Valeurs :
    + *
  • TRUE : appartient au reseau vert
  • + *
  • FALSE : n'appartient pas au reseau vert
  • + *
+ */ + public boolean reseauVert; + public boolean getReseauVert() { return reseauVert; } + public void setReseauVert(boolean b) { this.reseauVert = b; } + + + /** Sens. + *
Definition : + * Sens de circulation (par rapport au sens noeud initial vers le noeud final). + * Il est gere de facon obligatoire sur les troncons composant les voies a chaussees separees eloignees + * et sur les tronçons constituant un echangeur detaille. Dans les autres cas, le sens est gere si l'information est connue. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 0- "double sens"
  • + *
  • 2- "sens unique direct" (sens du troncon)
  • + *
  • 3- "sens unique inverse" (sens inverse du troncon)
  • + *
+ */ + protected String sens; + public String getSens() { return sens; } + public void setSens(String sens) { this.sens = sens; } + + + /** Nombre de voies chaussees montante. + *
Definition : + * Concerne uniquement les troncons a chaussee separee. + * La chaussee montante est la chaussee dont la circulation se fait dansle sens noeud initial -> noeud final + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • S- "sans objet"
  • + *
  • 1- "1 voie"
  • + *
  • 2- "2 voies"
  • + *
  • 3- "3 voies"
  • + *
  • 4- "4 voies"
  • + *
  • 9- "plus de 4 voies"
  • + *
+ */ + protected String nbVoiesMontantes; + public String getNbVoiesMontantes() { return nbVoiesMontantes; } + public void setNbVoiesMontantes(String nbVoiesMontantes) { this.nbVoiesMontantes = nbVoiesMontantes; } + + + /** Nombre de voies chaussees descendante. + *
definition : + * Concerne uniquement les troncons a chaussee separee. + * La chaussee montante est la chaussee dont la circulation se fait dansle sens noeud final -> noeud initial + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • S- "sans objet"
  • + *
  • 1- "1 voie"
  • + *
  • 2- "2 voies"
  • + *
  • 3- "3 voies"
  • + *
  • 4- "4 voies"
  • + *
  • 9- "plus de 4 voies"
  • + *
+ */ + protected String nbVoiesDescendantes; + public String getNbVoiesDescendantes() { return nbVoiesDescendantes; } + public void setNbVoiesDescendantes(String nbVoiesDescendantes) { this.nbVoiesDescendantes = nbVoiesDescendantes; } + + + /** Toponyme. + *
Definition : + * Seuls les noms de pont, viaduc, tunnel, sont portes par les troncons de route ; + * les autres toponymes sont portes par des itineraires routiers (voir plus loin B-c-3). Un toponyme est + * compose de trois parties pouvant eventuellement ne porter aucune valeur (n'existe pas ou inconnu s'il s'agit de pont, viaduc ou tunnel et sans objet sinon) : + * un terme generique ou une designation, texte d'au plus 40 caracteres. + * un article, texte d'au plus cinq caracteres ; + * un element specifique, texte d'au plus 80 caracteres ; + *
Type : + * Chaine de caracteres. + */ + protected String toponyme; + public String getToponyme() { return toponyme; } + public void setToponyme(String toponyme) { this.toponyme = toponyme; } + + + /** Utilisation. + *
Definition : + * Permet de distinguer les troncons en fonction leur utilisation potentielle + * pour la description de logique de communication et/ou une representation cartographique. + *
Type : + * Chaine de caracteres. + *
Valeurs :
    + *
  • 1- "logique et cartographique"
  • + *
  • 2- "logique"
  • + *
  • 3- "cartographique"
  • + *
+ */ + protected String utilisation; + public String getUtilisation() { return utilisation; } + public void setUtilisation(String utilisation) { this.utilisation = utilisation; } + + + /** Date de mise en service. + *
Definition : + * Cet attribut n'est rempli que pour les troncons en construction : mois et annee de mise en service pour les troncons en travaux. + * Il est sans objet dans tous les autres cas. + *
Type : + * Chaine de caracteres. + */ + protected String dateMiseEnService; + public String getDateMiseEnService() { return dateMiseEnService; } + public void setDateMiseEnService(String dateMiseEnService) { this.dateMiseEnService = dateMiseEnService; } + + + /////////////// RELATIONS ////////////////// + + /** Noeud initial du troncon. + *
Definition : + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type : + * NoeudRoutier. + *
Cardinalite de la relation : + * 1 troncon a 0 ou 1 noeud initial. + * 1 noeud a 0 ou n troncons sortants. + */ + protected NoeudRoutier noeudIni; + /** Recupere le noeud initial. */ + public NoeudRoutier getNoeudIni() {return noeudIni;} + /** Definit le noeud initial, et met a jour la relation inverse. */ + public void setNoeudIni(NoeudRoutier O) { + NoeudRoutier old = noeudIni; + noeudIni = O; + if ( old != null ) old.getSortants().remove(this); + if ( O != null ) { + noeudIniID = O.getId(); + if ( !(O.getSortants().contains(this)) ) O.getSortants().add(this); + } else noeudIniID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int noeudIniID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setNoeudIniID(int I) {noeudIniID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getNoeudIniID() {return noeudIniID;} + + + + /** Noeud final du troncon. + *
Definition : + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type : + * NoeudRoutier. + *
Cardinalite de la relation : + * 1 troncon a 0 ou 1 noeud initial. + * 1 noeud a 0 ou n troncons sortants. + */ + protected NoeudRoutier noeudFin; + /** Recupere le noeud final. */ + public NoeudRoutier getNoeudFin() {return noeudFin;} + /** Definit le noeud final, et met a jour la relation inverse. */ + public void setNoeudFin(NoeudRoutier O) { + NoeudRoutier old = noeudFin; + noeudFin = O; + if ( old != null ) old.getEntrants().remove(this); + if ( O != null ) { + noeudFinID = O.getId(); + if ( !(O.getEntrants().contains(this)) ) O.getEntrants().add(this); + } else noeudFinID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int noeudFinID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setNoeudFinID(int I) {noeudFinID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getNoeudFinID() {return noeudFinID;} + + + /** Lien bidirectionnel persistant la route dont il est composant. + * 1 objet Route est en relation avec 1 ou n objets troncons. + * 1 objet Troncon est en relation avec 0 ou 1 objet route. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected Route route; + /** Recupere la route dont il est composant. */ + public Route getRoute() {return route; } + /** Definit la route dont il est composant, et met a jour la relation inverse. */ + public void setRoute(Route O) { + Route old = route; + route = O; + if ( old != null ) old.getTroncons().remove(this); + if ( O != null ) { + routeID = O.getId(); + if ( !(O.getTroncons().contains(this)) ) O.getTroncons().add(this); + } else routeID = 0; + } + protected int routeID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setRouteID(int I) {routeID = I;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getRouteID() {return routeID;} + + + /** Lien bidirectionnel precisant l'itineraire dont il est composant. + * 1 objet itineraire est en relation avec 1 ou n objets troncons. + * 1 objet Troncon est en relation avec 0 ou n objet itineraire. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + private List itineraires = new ArrayList(); + /** Recupere les itineraires dont le troncon fait partie */ + public List getItineraires() {return itineraires ; } + /** Definit les itineraires en relation, et met a jour la relation inverse. */ + public void setItineraires(List L) { + List old = new ArrayList(itineraires); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + ItineraireRoutier O = it1.next(); + itineraires.remove(O); + O.getTroncons().remove(this); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + ItineraireRoutier O = it2.next(); + itineraires.add(O); + O.getTroncons().add(this); + } + } + /** Recupere le ieme element de la liste des itineraires en relation. */ + public ItineraireRoutier getItineraire(int i) {return itineraires.get(i) ; } + /** Ajoute un element a la liste des itineraires en relation, et met a jour la relation inverse. */ + public void addItineraire(ItineraireRoutier O) { + if ( O == null ) return; + itineraires.add(O) ; + O.getTroncons().add(this); + } + /** Enleve un element de la liste des itineraires en relation, et met a jour la relation inverse. */ + public void removeItineraire(ItineraireRoutier O) { + if ( O == null ) return; + itineraires.remove(O) ; + O.getTroncons().remove(this); + } + /** Vide la liste des itineraires en relation, et met a jour la relation inverse. */ + public void emptyItineraires() { + Iterator it = itineraires.iterator(); + while ( it.hasNext() ) { + ItineraireRoutier O = it.next(); + O.getTroncons().remove(this); + } + itineraires.clear(); + } + + /** Un troncon de route permet d'acceder a n equipements routier , + * par l'intermediaire de la classe-relation Accede. + * 1 objet troncon peut etre en relation avec 0 ou n "objets-relation" Accede. + * 1 "objet-relation" Accede est en relation avec 1 objet troncon. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + */ + protected List accedent = new ArrayList(); + + /** Recupere la liste des Accede en relation. */ + public List getAccedent() {return accedent; } + /** Definit la liste des Accede en relation, et met a jour la relation inverse. */ + public void setAccedent(List L) { + List old = new ArrayList(accedent); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + Accede O = it1.next(); + O.setTroncon(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + Accede O = it2.next(); + O.setTroncon(this); + } + } + /** Recupere le ieme element de la liste des Accede en relation. */ + public Accede getAccede(int i) {return accedent.get(i) ; } + /** Ajoute un objet a la liste des objets en relation, et met a jour la relation inverse. */ + public void addAccede(Accede O) { + if ( O == null ) return; + accedent.add(O) ; + O.setTroncon(this) ; + } + /** Enleve un element de la liste des Accede en relation, et met a jour la relation inverse. */ + public void removeAccede(Accede O) { + if ( O == null ) return; + accedent.remove(O) ; + O.setTroncon(null); + } + /** Vide la liste des Accede en relation, et met a jour la relation inverse. */ + public void emptyAccedent() { + List old = new ArrayList(accedent); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + Accede O = it.next(); + O.setTroncon(null); + } + } + + + /** Une debut de section est situee sur un troncon. + * 1 objet DebutSection est en relation avec 1 Troncon. + * 1 objet Troncon est en relation avec 0 ou 1 objet DebutSection. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected DebutSection debutSection; + /** Recupere l'objet en relation. */ + public DebutSection getDebutSection() {return debutSection; } + /** Definit l'objet en relation, et met a jour la relation inverse. */ + public void setDebutSection(DebutSection O) { + DebutSection old = debutSection; + debutSection = O; + if ( old != null ) old.setTroncon(null); + if ( O != null ) { + debutSectionID = O.getId(); + if ( O.getTroncon() != this ) O.setTroncon(this); + } else debutSectionID = 0; + } + protected int debutSectionID; + /** Ne pas utiliser, necessaire au mapping OJB */ + public int getDebutSectionID() {return debutSectionID;} + /** Ne pas utiliser, necessaire au mapping OJB */ + public void setDebutSectionID (int I) {debutSectionID = I;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/Etablissement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/Etablissement.java new file mode 100644 index 0000000..e8dfcc6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/Etablissement.java @@ -0,0 +1,24 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Etablissement extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/GrandeRandonnee.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/GrandeRandonnee.java new file mode 100644 index 0000000..a99d288 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/GrandeRandonnee.java @@ -0,0 +1,25 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class GrandeRandonnee extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + /** Attention: on peut avoir des geometries multiples (plusieurs troncons) */ + // private GM_Curve geometrie = null; + /** Renvoie le GM_LineString qui definit la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit le GM_LineString qui definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + /////////////// ATTRIBUTS ////////////////// + protected String numero; + public String getNumero() {return this.numero; } + public void setNumero (String Numero) {numero = Numero; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/MassifBoise.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/MassifBoise.java new file mode 100644 index 0000000..4fd02ae --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/MassifBoise.java @@ -0,0 +1,20 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class MassifBoise extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/PointRemarquableRelief.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/PointRemarquableRelief.java new file mode 100644 index 0000000..f19516c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/PointRemarquableRelief.java @@ -0,0 +1,28 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class PointRemarquableRelief extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected int cote; + public int getCote() {return this.cote; } + public void setCote (int Cote) {cote = Cote; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneDActivite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneDActivite.java new file mode 100644 index 0000000..1884bb3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneDActivite.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes; + + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ZoneDActivite extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneDHabitat.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneDHabitat.java new file mode 100644 index 0000000..8be1d7e --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneDHabitat.java @@ -0,0 +1,28 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ZoneDHabitat extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String insee; + public String getInsee() {return this.insee; } + public void setInsee (String Insee) {insee = Insee; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneReglementeeTouristique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneReglementeeTouristique.java new file mode 100644 index 0000000..2d7b0d1 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdCarto/toponymes/ZoneReglementeeTouristique.java @@ -0,0 +1,24 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdCarto.toponymes; + +import fr.ign.cogit.appli.commun.schema.structure.bdCarto.ElementBDCarto; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class ZoneReglementeeTouristique extends ElementBDCarto { + + /////////////// GEOMETRIE ////////////////// + // private GM_Point geometrie = null; + /** Renvoie le GM_Point qui definit la geometrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit le GM_Point qui definit la geometrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + /////////////// ATTRIBUTS ////////////////// + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String toponyme; + public String getToponyme() {return this.toponyme; } + public void setToponyme (String Toponyme) {toponyme = Toponyme; } + +} \ No newline at end of file diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/CreationDataSet.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/CreationDataSet.java new file mode 100644 index 0000000..eee8f87 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/CreationDataSet.java @@ -0,0 +1,296 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo; + +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.Batiment; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.Cimetiere; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.ConstructionLineaire; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.ConstructionPonctuelle; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.ConstructionSurfacique; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.PisteAerodrome; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.PointActiviteInteret; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.Reservoir; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.SurfaceActivite; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati.TerrainDeSport; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.administratif.Commune; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers.Hydronyme; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers.LieuDitHabite; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers.LieuDitNonHabite; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers.Oronyme; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers.ToponymeCommunication; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers.ToponymeDivers; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide.Canalisation; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide.LigneElectrique; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide.PosteTransformation; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide.Pylone; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ferre.AireDeTriage; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ferre.TransportParCable; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ferre.TronconVoieFerree; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie.Laisse; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie.PointDEau; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie.SurfaceDEau; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie.TronconDeCoursDEau; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.orographie.LigneOrographique; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.routier.SurfaceDeRoute; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.routier.TronconDeChemin; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.routier.TronconDeRoute; +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.vegetation.ZoneArboree; +import fr.ign.cogit.geoxygene.feature.DataSet; +import fr.ign.cogit.geoxygene.feature.Population; + +public class CreationDataSet { + + /** Creation des themes et des populations des themes + * d'un jeu de donnees BDTopo Pays suivant le modele interne IGN (idem export shape en fait). + * + * @param persistance : Definit si le jeu de donnees est persistant ou non. + * Si il est persistant, tous les themes et populations creees le sont + * aussi par defaut, mais cela peut etre change par la suite. + * + * @param nom_package_jeu_complet : nom du package qui contient les classes concretes + * des populations du jeu de donnees (chemin complet du package contenant + * les sous package des themes). + * + * @param metadonnees : Liste de string (peut-etre null) representant dans l'ordre: + * - le nom logique de la base (texte libre pour la deco), + * - la date des donnees + * - la zone couverte par les donnees + * - un commentaire + * Tous les textes sont libres et d'au plus 255 caracteres + * + */ + public static DataSet nouveauDataSet(boolean persistance, String nom_package_jeu_complet, List metadonnees) { + DataSet jeu = new DataSet(); + if (persistance) DataSet.db.makePersistent(jeu); + + //metadonnees + jeu.setTypeBD("BDPays"); + jeu.setModele("Structure"); + if (metadonnees != null) { + Iterator itMD = metadonnees.iterator(); + if (itMD.hasNext()) jeu.setNom(itMD.next()); + if (itMD.hasNext()) jeu.setDate(itMD.next()); + if (itMD.hasNext()) jeu.setZone(itMD.next()); + if (itMD.hasNext()) jeu.setCommentaire(itMD.next()); + } + + // creation des themes + ajouteThemeBati(jeu, nom_package_jeu_complet, persistance); + ajouteThemeAdmin(jeu, nom_package_jeu_complet, persistance); + ajouteThemeDivers(jeu, nom_package_jeu_complet, persistance); + ajouteThemeEnergie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeFerre(jeu, nom_package_jeu_complet, persistance); + ajouteThemeHydrographie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeOrographie(jeu, nom_package_jeu_complet, persistance); + ajouteThemeRoutier(jeu, nom_package_jeu_complet, persistance); + ajouteThemeVegetation(jeu, nom_package_jeu_complet, persistance); + + return jeu; + } + + + public static void ajouteThemeBati(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Surface d'activité et bâti' de la BDPays"); + theme.setNom("Bâti"); + String nom_package = nom_package_jeu_complet+".activite_bati"; + try{ + Population pop; + pop = new Population(persistance, "Bâtiments", Class.forName(nom_package+".Batiment"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Cimetières", Class.forName(nom_package+".Cimetiere"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions linéaires", Class.forName(nom_package+".ConstructionLineaire"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions ponctuelles", Class.forName(nom_package+".ConstructionPonctuelle"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Constructions surfaciques", Class.forName(nom_package+".ConstructionSurfacique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Pistes d'aérodrome", Class.forName(nom_package+".PisteAerodrome"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Points d'activité ou d'intérêt", Class.forName(nom_package+".PointActiviteInteret"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Reservoirs", Class.forName(nom_package+".Reservoir"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Surfaces d'activité", Class.forName(nom_package+".SurfaceActivite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Terrains de sport", Class.forName(nom_package+".TerrainDeSport"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeAdmin(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Administratif' de la BDPays"); + theme.setNom("Administratif"); + String nom_package = nom_package_jeu_complet+".administratif"; + try{ + Population pop; + pop = new Population(persistance, "Communes", Class.forName(nom_package+".Commune"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeDivers(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Objets Divers' de la BDPays"); + theme.setNom("Divers"); + String nom_package = nom_package_jeu_complet+".divers"; + try{ + Population pop; + pop = new Population(persistance, "Hydronymes", Class.forName(nom_package+".Hydronyme"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Lieux-dits habités", Class.forName(nom_package+".LieuDitHabite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Lieux-dits non habités", Class.forName(nom_package+".LieuDitNonHabite"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Oronymes", Class.forName(nom_package+".Oronyme"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Toponymes communication", Class.forName(nom_package+".ToponymeCommunication"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Toponymes divers", Class.forName(nom_package+".ToponymeDivers"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeEnergie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Transport d'énergie et de fluides' de la BDPays"); + theme.setNom("Energie"); + String nom_package = nom_package_jeu_complet+".energie_fluide"; + try{ + Population pop; + pop = new Population(persistance, "Canalisation", Class.forName(nom_package+".Canalisation"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Ligne électrique", Class.forName(nom_package+".LigneElectrique"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Poste de transformation", Class.forName(nom_package+".PosteTransformation"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Pylone", Class.forName(nom_package+".Pylone"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeFerre(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Voies ferrées et autres moyens de transport terrestre' de la BDPays"); + theme.setNom("Ferré"); + String nom_package = nom_package_jeu_complet+".ferre"; + try{ + Population pop; + pop = new Population(persistance, "Tronçons de voies ferrées", Class.forName(nom_package+".TronconVoieFerree"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Aires de triage", Class.forName(nom_package+".AireDeTriage"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Transports par câble", Class.forName(nom_package+".TransportParCable"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeHydrographie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Hydrographie terrestre' de la BDPays"); + theme.setNom("Hydrographie"); + String nom_package = nom_package_jeu_complet+".hydrographie"; + try{ + Population pop; + pop = new Population(persistance, "Tronçons de laisse", Class.forName(nom_package+".Laisse"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Points d'eau", Class.forName(nom_package+".PointDEau"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Surfaces d'eau", Class.forName(nom_package+".SurfaceDEau"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de cours d'eau", Class.forName(nom_package+".TronconDeCoursDEau"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeOrographie(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Orographie' de la BDPays"); + theme.setNom("Orographie"); + String nom_package = nom_package_jeu_complet+".orographie"; + try{ + Population pop; + pop = new Population(persistance, "Lignes orographiques", Class.forName(nom_package+".LigneOrographique"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeRoutier(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Voies de Communication Routière' de la BDPays"); + theme.setNom("Routier"); + String nom_package = nom_package_jeu_complet+".routier"; + try{ + Population pop; + pop = new Population(persistance, "Surfaces de route", Class.forName(nom_package+".SurfaceDeRoute"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de route", Class.forName(nom_package+".TronconDeRoute"),true); + theme.addPopulation(pop); + pop = new Population(persistance, "Tronçons de chemin", Class.forName(nom_package+".TronconDeChemin"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + public static void ajouteThemeVegetation(DataSet jeu, String nom_package_jeu_complet, boolean persistance) { + DataSet theme = new DataSet(jeu); + if (persistance) DataSet.db.makePersistent(theme); + jeu.addComposant(theme); + theme.setTypeBD("Thème 'Végétation' de la BDPays"); + theme.setNom("Végétation"); + String nom_package = nom_package_jeu_complet+".vegetation"; + try{ + Population pop; + pop = new Population(persistance, "Zones arborées", Class.forName(nom_package+".ZoneArboree"),true); + theme.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Problème de nom de package : "+nom_package_jeu_complet); + } + } + + +} + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ElementBDTopo.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ElementBDTopo.java new file mode 100644 index 0000000..7a7ea94 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ElementBDTopo.java @@ -0,0 +1,15 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo; + +import fr.ign.cogit.geoxygene.feature.FT_Feature; + +/** Classe mere pour toute classe d'elements de la BDTopo Pays + * AU FORMAT DE TRAVAIL pour l'appariement. + */ + +public abstract class ElementBDTopo extends FT_Feature { + + protected String source; + public String getSource() {return this.source; } + public void setSource (String Source) {source = Source; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Batiment.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Batiment.java new file mode 100644 index 0000000..391ca8b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Batiment.java @@ -0,0 +1,33 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Batiment extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String categorie; + public String getCategorie() {return this.categorie; } + public void setCategorie (String Categorie) {categorie = Categorie; } + + protected double hauteur; + public double getHauteur() {return this.hauteur; } + public void setHauteur (double Hauteur) {hauteur = Hauteur; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Cimetiere.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Cimetiere.java new file mode 100644 index 0000000..d7caeb1 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Cimetiere.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Cimetiere extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionLineaire.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionLineaire.java new file mode 100644 index 0000000..e3fe3b0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionLineaire.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class ConstructionLineaire extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionPonctuelle.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionPonctuelle.java new file mode 100644 index 0000000..7b97a7d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionPonctuelle.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ConstructionPonctuelle extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionSurfacique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionSurfacique.java new file mode 100644 index 0000000..dd8a307 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/ConstructionSurfacique.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class ConstructionSurfacique extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/PisteAerodrome.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/PisteAerodrome.java new file mode 100644 index 0000000..b4d66b6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/PisteAerodrome.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class PisteAerodrome extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/PointActiviteInteret.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/PointActiviteInteret.java new file mode 100644 index 0000000..1c66b74 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/PointActiviteInteret.java @@ -0,0 +1,23 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class PointActiviteInteret extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String categorie; + public String getCategorie() {return this.categorie; } + public void setCategorie (String Categorie) {categorie = Categorie; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Reservoir.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Reservoir.java new file mode 100644 index 0000000..bffc07f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/Reservoir.java @@ -0,0 +1,31 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Reservoir extends ElementBDTopo { + + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double hauteur; + public double getHauteur() {return this.hauteur; } + public void setHauteur (double Hauteur) {hauteur = Hauteur; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/SurfaceActivite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/SurfaceActivite.java new file mode 100644 index 0000000..f1f47f6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/SurfaceActivite.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class SurfaceActivite extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String categorie; + public String getCategorie() {return this.categorie; } + public void setCategorie (String Categorie) {categorie = Categorie; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/TerrainDeSport.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/TerrainDeSport.java new file mode 100644 index 0000000..1cde955 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/activite_bati/TerrainDeSport.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.activite_bati; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class TerrainDeSport extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/administratif/Commune.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/administratif/Commune.java new file mode 100644 index 0000000..a04b829 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/administratif/Commune.java @@ -0,0 +1,50 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.administratif; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class Commune extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String code_insee; + public String getCode_insee() {return this.code_insee; } + public void setCode_insee (String Code_insee) {code_insee = Code_insee; } + + protected String statut; + public String getStatut() {return this.statut; } + public void setStatut (String Statut) {statut = Statut; } + + protected String canton; + public String getCanton() {return this.canton; } + public void setCanton (String Canton) {canton = Canton; } + + protected String arrond; + public String getArrond() {return this.arrond; } + public void setArrond (String Arrond) {arrond = Arrond; } + + protected String depart; + public String getDepart() {return this.depart; } + public void setDepart (String Depart) {depart = Depart; } + + protected String region; + public String getRegion() {return this.region; } + public void setRegion (String Region) {region = Region; } + + protected double population_; + public double getPopulation_() {return this.population_; } + public void setPopulation_ (double Population_) {population_ = Population_; } + + protected String multi_cant; + public String getMulti_cant() {return this.multi_cant; } + public void setMulti_cant (String Multi_cant) {multi_cant = Multi_cant; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/Hydronyme.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/Hydronyme.java new file mode 100644 index 0000000..0e8c83a --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/Hydronyme.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Hydronyme extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/LieuDitHabite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/LieuDitHabite.java new file mode 100644 index 0000000..1079755 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/LieuDitHabite.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class LieuDitHabite extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/LieuDitNonHabite.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/LieuDitNonHabite.java new file mode 100644 index 0000000..881a44c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/LieuDitNonHabite.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class LieuDitNonHabite extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/Oronyme.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/Oronyme.java new file mode 100644 index 0000000..72ff387 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/Oronyme.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Oronyme extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/ToponymeCommunication.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/ToponymeCommunication.java new file mode 100644 index 0000000..cb23e81 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/ToponymeCommunication.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ToponymeCommunication extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/ToponymeDivers.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/ToponymeDivers.java new file mode 100644 index 0000000..c253878 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/divers/ToponymeDivers.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.divers; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class ToponymeDivers extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected String importance; + public String getImportance() {return this.importance; } + public void setImportance (String Importance) {importance = Importance; } + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/Canalisation.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/Canalisation.java new file mode 100644 index 0000000..51d84d5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/Canalisation.java @@ -0,0 +1,30 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class Canalisation extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/LigneElectrique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/LigneElectrique.java new file mode 100644 index 0000000..a2e3f2f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/LigneElectrique.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class LigneElectrique extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String voltage; + public String getVoltage() {return this.voltage; } + public void setVoltage (String Voltage) {voltage = Voltage; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/PosteTransformation.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/PosteTransformation.java new file mode 100644 index 0000000..2c4550b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/PosteTransformation.java @@ -0,0 +1,13 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class PosteTransformation extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/Pylone.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/Pylone.java new file mode 100644 index 0000000..5188a56 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/energie_fluide/Pylone.java @@ -0,0 +1,15 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.energie_fluide; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class Pylone extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/AireDeTriage.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/AireDeTriage.java new file mode 100644 index 0000000..9b49dc9 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/AireDeTriage.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.ferre; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class AireDeTriage extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Definit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/TransportParCable.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/TransportParCable.java new file mode 100644 index 0000000..374c35f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/TransportParCable.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.ferre; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TransportParCable extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/TronconVoieFerree.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/TronconVoieFerree.java new file mode 100644 index 0000000..d229c4f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/ferre/TronconVoieFerree.java @@ -0,0 +1,46 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.ferre; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconVoieFerree extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String electrifie; + public String getElectrifie() {return this.electrifie; } + public void setElectrifie (String Electrifie) {electrifie = Electrifie; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected String largeur; + public String getLargeur() {return this.largeur; } + public void setLargeur (String Largeur) {largeur = Largeur; } + + protected double nb_voies; + public double getNb_voies() {return this.nb_voies; } + public void setNb_voies (double Nb_voies) {nb_voies = Nb_voies; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/Laisse.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/Laisse.java new file mode 100644 index 0000000..72f1a4c --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/Laisse.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class Laisse extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/PointDEau.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/PointDEau.java new file mode 100644 index 0000000..d093c73 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/PointDEau.java @@ -0,0 +1,18 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class PointDEau extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Point G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/SurfaceDEau.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/SurfaceDEau.java new file mode 100644 index 0000000..dcefb70 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/SurfaceDEau.java @@ -0,0 +1,30 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class SurfaceDEau extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String regime; + public String getRegime() {return this.regime; } + public void setRegime (String Regime) {regime = Regime; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/TronconDeCoursDEau.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/TronconDeCoursDEau.java new file mode 100644 index 0000000..9ba493d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/hydrographie/TronconDeCoursDEau.java @@ -0,0 +1,46 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.hydrographie; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconDeCoursDEau extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected double artif; + public double getArtif() {return this.artif; } + public void setArtif (double Artif) {artif = Artif; } + + protected double fictif; + public double getFictif() {return this.fictif; } + public void setFictif (double Fictif) {fictif = Fictif; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected String regime; + public String getRegime() {return this.regime; } + public void setRegime (String Regime) {regime = Regime; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/orographie/LigneOrographique.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/orographie/LigneOrographique.java new file mode 100644 index 0000000..3ecb517 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/orographie/LigneOrographique.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.orographie; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class LigneOrographique extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_min; + public double getZ_min() {return this.z_min; } + public void setZ_min (double Z_min) {z_min = Z_min; } + + protected double z_max; + public double getZ_max() {return this.z_max; } + public void setZ_max (double Z_max) {z_max = Z_max; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/SurfaceDeRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/SurfaceDeRoute.java new file mode 100644 index 0000000..2cdd01f --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/SurfaceDeRoute.java @@ -0,0 +1,22 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.routier; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class SurfaceDeRoute extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected double z_moyen; + public double getZ_moyen() {return this.z_moyen; } + public void setZ_moyen (double Z_moyen) {z_moyen = Z_moyen; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/TronconDeChemin.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/TronconDeChemin.java new file mode 100644 index 0000000..5c2bce8 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/TronconDeChemin.java @@ -0,0 +1,38 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.routier; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconDeChemin extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/TronconDeRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/TronconDeRoute.java new file mode 100644 index 0000000..ebca09b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/routier/TronconDeRoute.java @@ -0,0 +1,62 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.routier; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconDeRoute extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + protected String nature; + public String getNature() {return this.nature; } + public void setNature (String Nature) {nature = Nature; } + + protected String classement; + public String getClassement() {return this.classement; } + public void setClassement (String Classement) {classement = Classement; } + + protected String dep_gest; + public String getDep_gest() {return this.dep_gest; } + public void setDep_gest (String Dep_gest) {dep_gest = Dep_gest; } + + protected double fictif; + public double getFictif() {return this.fictif; } + public void setFictif (double Fictif) {fictif = Fictif; } + + protected String franchisst; + public String getFranchisst() {return this.franchisst; } + public void setFranchisst (String Franchisst) {franchisst = Franchisst; } + + protected double largeur; + public double getLargeur() {return this.largeur; } + public void setLargeur (double Largeur) {largeur = Largeur; } + + protected String nom; + public String getNom() {return this.nom; } + public void setNom (String Nom) {nom = Nom; } + + protected double nb_voies; + public double getNb_voies() {return this.nb_voies; } + public void setNb_voies (double Nb_voies) {nb_voies = Nb_voies; } + + protected String numero; + public String getNumero() {return this.numero; } + public void setNumero (String Numero) {numero = Numero; } + + protected double posit_sol; + public double getPosit_sol() {return this.posit_sol; } + public void setPosit_sol (double Posit_sol) {posit_sol = Posit_sol; } + + protected double z_ini; + public double getZ_ini() {return this.z_ini; } + public void setZ_ini (double Z_ini) {z_ini = Z_ini; } + + protected double z_fin; + public double getZ_fin() {return this.z_fin; } + public void setZ_fin (double Z_fin) {z_fin = Z_fin; } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/vegetation/ZoneArboree.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/vegetation/ZoneArboree.java new file mode 100644 index 0000000..5d09b4b --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/bdTopo/vegetation/ZoneArboree.java @@ -0,0 +1,15 @@ +package fr.ign.cogit.appli.commun.schema.structure.bdTopo.vegetation; + + +import fr.ign.cogit.appli.commun.schema.structure.bdTopo.ElementBDTopo; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class ZoneArboree extends ElementBDTopo { + + /** Renvoie la géométrie de l'objet, castée plus précisément qu'avec la méthode getGeom() */ + public GM_Polygon getGeometrie() {return (GM_Polygon)geom;} + /** Définit la géométrie de l'objet, castée plus précisément qu'avec la méthode setGeom() */ + public void setGeometrie(GM_Polygon G) {this.geom = G;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/ElementGeoroute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/ElementGeoroute.java new file mode 100644 index 0000000..83fc140 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/ElementGeoroute.java @@ -0,0 +1,29 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute; + +import java.util.Iterator; + +import fr.ign.cogit.geoxygene.feature.FT_Feature; +import fr.ign.cogit.geoxygene.feature.Population; + +public abstract class ElementGeoroute extends FT_Feature { + + /** Identifiant donné par Géoroute */ + protected int id_georoute; + public int getId_georoute() {return this.id_georoute; } + public void setId_georoute (int I) {id_georoute = I; } + + public String type; + public String getType() {return type;} + public void setType(String type) {this.type = type;} + + public static ElementGeoroute recherche_element_avec_idgeoroute(Population pop, int id) { + ElementGeoroute element; + Iterator it = pop.getElements().iterator(); + while ( it.hasNext() ) { + element = it.next(); + if ( element.getId_georoute() == id ) return element; + } + return null; + } + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/JeuDeDonneesGeoroute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/JeuDeDonneesGeoroute.java new file mode 100644 index 0000000..007f888 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/JeuDeDonneesGeoroute.java @@ -0,0 +1,39 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute; + +import fr.ign.cogit.appli.commun.schema.structure.georoute.routier.ThemeRoutier; +import fr.ign.cogit.geoxygene.feature.DataSet; + + +public class JeuDeDonneesGeoroute extends DataSet { + + /** Constructeur par défaut */ + public JeuDeDonneesGeoroute() {this.ojbConcreteClass = this.getClass().getName();} + + /** Constructeur d'un jeu de données Géoroute au format structuré : + * - un jeu de données Géoroute contient les thèmes routier : + * - ces thèmes ont des noms par défaut à ne pas changer : "routier" + * - les populations de ces thèmes ont des noms logique par défaut "Troncon de route", "Noeud routier", etc. + * - leurs éléments se réalisent dans des classes concrètes du package nom_package. + * - un jeu de données peut être persistant ou non + * - un jeu de données a un nom logique (utile pour naviguer entre jeux de données). + */ + + public JeuDeDonneesGeoroute(boolean persistance, String nom_logique, String nom_package) { + this.ojbConcreteClass = this.getClass().getName(); // necessaire pour ojb + this.setTypeBD("Géoroute"); + this.setModele("Structuré"); + this.setNom(nom_logique); + if (persistance) DataSet.db.makePersistent(this); + ThemeRoutier routier = new ThemeRoutier(persistance, nom_package+".routier", this); + this.addComposant(routier); + //ThemeDestination destination = new ThemeDestination(persistance, nom_package+".destination", this); + //this.addComposant(destination); + } + + + + public ThemeRoutier getThemeRoutier() {return (ThemeRoutier)this.getComposant("routier");} + //public ThemeDestination getThemeDestination() {return (ThemeDestination)this.getComposant("destination");} + +} + diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/Acces.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/Acces.java new file mode 100644 index 0000000..6889b48 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/Acces.java @@ -0,0 +1,75 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.destination; + +import fr.ign.cogit.appli.commun.schema.structure.georoute.ElementGeoroute; +import fr.ign.cogit.appli.commun.schema.structure.georoute.routier.NoeudRoutier; + +public abstract class Acces extends ElementGeoroute { + + /** Creates new Accede */ + public Acces() { + } + + public String nature; + public String getNature() {return nature;} + public void setNature(String nature) {this.nature = nature;} + + + /** Un NoeudRoutier concerne un acces. + * 1 objet Acces est en relation avec 1 Noeud. + * 1 objet Noeud est en relation avec 0 ou 1 objet Acces. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected NoeudRoutier noeud; + /** Recupere le noeud routier en relation */ + public NoeudRoutier getNoeud() {return noeud;} + /** Definit le noeud routier en relation, et met a jour la relation inverse. */ + public void setNoeud(NoeudRoutier O) { + NoeudRoutier old = noeud; + noeud = O; + if ( old != null ) old.setAcces(null); + if ( O != null ) { + noeudID = O.getId(); + if ( O.getAcces() != this ) O.setAcces(this); + } else noeudID = 0; + } + protected int noeudID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getNoeudID() {return noeudID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setNoeudID (int I) {noeudID = I;} + + + + /** Un EquipementRoutier concerne un acces. + * 1 objet Acces est en relation avec 1 EquipementRoutier. + * 1 objet EquipementRoutier est en relation avec 1 objet Acces. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected Equipement equipement; + /** Recupere le noeud routier en relation */ + public Equipement getEquipement() {return equipement;} + /** Definit le noeud routier en relation, et met a jour la relation inverse. */ + public void setEquipement(Equipement O) { + Equipement old = equipement; + equipement = O; + if ( old != null ) old.setAcces(null); + if ( O != null ) { + equipementID = O.getId(); + if ( O.getAcces() != this ) O.setAcces(this); + } else equipementID = 0; + } + protected int equipementID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getEquipementID() {return equipementID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setEquipementID (int I) {equipementID = I;} + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/Equipement.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/Equipement.java new file mode 100644 index 0000000..dd2edaf --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/Equipement.java @@ -0,0 +1,33 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.destination; + +import fr.ign.cogit.appli.commun.schema.structure.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public class Equipement extends ElementGeoroute { + + protected Acces acces; + /** Recupere l'acces en relation */ + public Acces getAcces() {return acces;} + /** Definit l'acces en relation, et met a jour la relation inverse. */ + public void setAcces(Acces O) { + Acces old = acces; + acces = O; + if ( old != null ) old.setEquipement(null); + if ( O != null ) { + accesID = O.getId(); + if ( O.getEquipement() != this ) O.setEquipement(this); + } else accesID = 0; + } + protected int accesID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getAccesID() {return accesID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setAccesID (int I) {accesID = I;} + + // private GM_Point geometrie = null; + /** Renvoie la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/EquipementPublic.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/EquipementPublic.java new file mode 100644 index 0000000..074bc66 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/EquipementPublic.java @@ -0,0 +1,17 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.destination; + + +public abstract class EquipementPublic extends Equipement { + + /** Creates new EquipementPublic */ + public EquipementPublic() { + } + + + /**METTRE LES AUTRES ATTRIBUTS **/ + + + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/EquipementRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/EquipementRoutier.java new file mode 100644 index 0000000..fb2e7a4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/EquipementRoutier.java @@ -0,0 +1,14 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.destination; + + +public abstract class EquipementRoutier extends Equipement{ + + /** Creates new EquipementRoutier */ + public EquipementRoutier() { + } + + + /**METTRE LES AUTRES ATTRIBUTS **/ + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/ThemeDestination.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/ThemeDestination.java new file mode 100644 index 0000000..287ba78 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/destination/ThemeDestination.java @@ -0,0 +1,43 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.destination; + +import fr.ign.cogit.geoxygene.api.feature.IPopulation; +import fr.ign.cogit.geoxygene.feature.DataSet; +import fr.ign.cogit.geoxygene.feature.Population; + +public class ThemeDestination extends DataSet { + + /** Constructeur par defaut */ + public ThemeDestination() {this.ojbConcreteClass = this.getClass().getName();} + + /** Constructeur d'un theme destination de Georoute au format structure : + * - ce theme contient les populations "Equipement public"... : + * - ces populations ont des noms par defaut a ne pas changer. + * - leurs elements se realisent dans des classes contretes du package nom_package. + * - un theme peut etre persistant ou non + * - un theme a un nom logique (utile pour naviguer entre themes). + */ + public ThemeDestination(boolean persistance, String nom_package, DataSet DS) { + super(DS); + this.setTypeBD("Theme destination de Georoute"); + Population pop; + this.ojbConcreteClass = this.getClass().getName(); // necessaire pour ojb + this.setNom("destination"); + if (persistance) DataSet.db.makePersistent(this); + try{ + pop = new Population(persistance, "Equipement public", Class.forName(nom_package+".EquipementPublic"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Equipement routier", Class.forName(nom_package+".EquipementRoutier"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Acces", Class.forName(nom_package+".Acces"),true); + this.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package); + } + } + + public IPopulation getPopEquipementsPublics() {return this.getPopulation("Equipement public");} + public IPopulation getPopEquipementsRoutiers() {return this.getPopulation("Equipement routier");} + public IPopulation getPopAcces() {return this.getPopulation("Acces");} + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/CarrefourComplexe.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/CarrefourComplexe.java new file mode 100644 index 0000000..daf3620 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/CarrefourComplexe.java @@ -0,0 +1,26 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.routier; + +import fr.ign.cogit.appli.commun.schema.structure.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_Polygon; + +public abstract class CarrefourComplexe extends ElementGeoroute { + + + //////////////// GEOMETRIE ////////////////// + // private GM_Polygon geometrie = null; + /** Renvoie le GM_Polygon qui définit la géométrie de self */ + public GM_Polygon getGeometrie() {return (GM_Polygon)this.geom;} + /** Définit le GM_Polygon qui définit la géométrie de self */ + public void setGeometrie(GM_Polygon geometrie) {this.geom = geometrie;} + + + public String nature; + public String getNature() {return nature;} + public void setNature(String nature) {this.nature = nature;} + + public String nom; + public String getNom() {return nom;} + public void setNom(String nom) {this.nom = nom;} + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/NoeudRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/NoeudRoutier.java new file mode 100644 index 0000000..af3a65d --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/NoeudRoutier.java @@ -0,0 +1,290 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.georoute.ElementGeoroute; +import fr.ign.cogit.appli.commun.schema.structure.georoute.destination.Acces; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +/** + * Noeud du réseau routier. + *
Type : + * Objet simple + *
Localisation : + * Ponctuelle. + *
Liens : + * //Compose (lien inverse) "Route numerotée ou nommée" + *
Définition : + * Un noeud du réseau routier correspond à une extrémité de tronçon de route. Il traduit une modification des + * conditions de circulation. + * Pour les objets dans la partie interurbaine, les critères de sélection sont ceux de la BDCARTO V2 (cf. + * "Spécifications de contenu BDCARTO v2.3"). + */ + + + +public abstract class NoeudRoutier extends ElementGeoroute { + + // private GM_Point geometrie = null; + /** Renvoie la géométrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Définit la géométrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + /** Nature de l'intersection. + *
Définition : + * Nature de l'intersection. + *
Type : + * Chaîne de caractères. + *
Valeurs : + * - intersection simple : Endroit de l'espace routier où les routes se rejoignent ou se coupent au + * même niveau. On place également des intersections simples dans les extrémités d'impasses. + * Toute portion de l'espace routier symbolisant un choix d'au moins trois directions et de diamètre inférieur à 30 mètres lorsqu'on l'assimile à un + * cercle. + * - rond-point simple : Endroit de l'espace routier où les routes se rejoignent au même niveau, de + * forme non exclusivement circulaire, possédant un terre-plein central infranchissable et ceinturé par une chaussée à sens unique. Les véhicules ne + * s'y croisent pas. + * - barrière de péage : Lieu où l'on acquitte un droit de passage sur une voie publique ou un pont. + * - Changement d'attribut : élément signifiant un changement de valeur d'attribut (et notamment de + * commune) sur un tronçon de route. Il s'agit d'un objet virtuel. On prend en compte les attributs suivants : classement physique, niveau au + * franchissement, restriction d'accès, position par rapport au sol, nombres de + * voies, INSEE commune gauche et droite ainsi que nom rue droite et + * gauche. Les autre attributs ne changent de valeur qu'à une intersection.. Un + * noeud ayant cette nature est appelé NCVA (voir glossaire) + * - noeud d'accès : Objet virtuel utilisé pour mettre en relation un équipement (thème + * destination) avec le réseau routier lorsqu'il n'existe pas d'autres Noeuds du + * Réseau Routier à l'emplacement de l'accès. Les bornes postales au niveau + * - franchissement : - en urbain - Un aménagement routier est considéré comme ponctuel si sa longueur + * est inférieure à 50 mètres. L'objet ponctuel "franchissement" est placé à + * l'endroit du franchissement. Pour les aménagements de plus de 50 mètres, + * on place un objet ponctuel "franchissement" à l'emplacement réel du + * franchissement (cf. attribut "position par rapport au sol" de la classe + * "tronçon de route"). Dans le cas d'une intersection simple sur un + * franchissement, on place seulement un franchissement sur le carrefour : + * On saisit également les franchissements sur les voies ferrées et l'hydrographie. On place alors simplement un franchissement entre deux + * tronçons de route, les tronçons portant le niveau 0 (pas d'information sur le fait qu'on passe sur de l'hydro ou une voie ferrée) : rivière + * - en interurbain - Un aménagement routier est considéré comme ponctuel si sa longueur est + * inférieure à 200 mètres. On ne saisit pas les franchissements sur les voies ferrées ou sur l'hydrographie. + */ + public String nature; + public String getNature() {return nature;} + public void setNature(String nature) {this.nature = nature;} + + /** Toponyme. + *
Définition : + * Dénomination usuelle du carrefour ou du franchissement. Il est composé d'un terme générique (rond-point de, place de, à) et d'un ou plusieurs + * noms propres ou communs. Il est écrit en majuscules et sans accent. Les abréviations utilisées pour le terme générique sont standardisées + * Il peut prendre les valeurs suivantes :
    + *
  • - sans objet : sur NCVA et Noeuds d'Accès
  • + *
  • - inconnu
  • + *
  • - "" : l'intersection ne porte pas de nom
  • + *
+ *
Type : + * Chaîne de caractères. + */ + public String nom; + public String getNom() {return nom;} + public void setNom(String nom) {this.nom = nom;} + + + + /** Liste (non ordonnée) des arcs sortants de self + *
Définition : + * 1 objet Noeud est en relation "sortants" avec n objets TronconRoutier. + * 1 objet TronconRoutier est en relation "ini" avec 1 objet Noeud. + * + * Les méthodes get (sans indice) et set sont nécessaires au mapping. + * Les autres méthodes sont là seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant à la gestion de la logique de parcours du réseau routier : + * Elle précise le noeud routier initial d'un troncon de route. + *
Type des éléments de la liste : + * TronconRoute. + */ + protected List sortants = new ArrayList(); + + /** Récupère la liste des arcs sortants. */ + public List getSortants() {return sortants ; } + /** Définit la liste des arcs sortants, et met à jour la relation inverse Ini. */ + public void setSortants(List L) { + List old = new ArrayList(sortants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconRoute O = it1.next(); + O.setNoeudIni(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconRoute O = it2.next(); + O.setNoeudIni(this); + } + } + /** Récupère le ième élément de la liste des arcs sortants. */ + public TronconRoute getSortant(int i) {return sortants.get(i) ; } + /** Ajoute un objet à la liste des arcs sortants, et met à jour la relation inverse Ini. */ + public void addSortant(TronconRoute O) { + if ( O == null ) return; + sortants.add(O) ; + O.setNoeudIni(this) ; + } + /** Enlève un élèment de la liste des arcs sortants, et met à jour la relation inverse Ini. */ + public void removeSortant(TronconRoute O) { + if ( O == null ) return; + sortants.remove(O) ; + O.setNoeudIni(null); + } + /** Vide la liste des arcs sortants, et met à jour la relation inverse Ini. */ + public void emptySortants() { + List old = new ArrayList(sortants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconRoute O = it.next(); + O.setNoeudIni(null); + } + } + + + /** Liste (non ordonnée) des arcs entrants de self + *
Définition : + * 1 objet Noeud est en relation "entrants" avec n objets TronconRoutier. + * 1 objet TronconRoutier est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont là seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant à la gestion de la logique de parcours du réseau routier : + * Elle précise lengthnoeud routier initial d'un tronçon de route. + *
Type des éléments de la liste : + * TronconRoute. + */ + protected List entrants = new ArrayList(); + + /** Récupere la liste des arcs entrants. */ + public List getEntrants() {return entrants ; } + /** Definit la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void setEntrants(List L) { + List old = new ArrayList(entrants); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + TronconRoute O = it1.next(); + O.setNoeudFin(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + TronconRoute O = it2.next(); + O.setNoeudFin(this); + } + } + /** Recupere le ieme element de la liste des arcs entrants. */ + public TronconRoute getEntrant(int i) {return entrants.get(i) ; } + /** Ajoute un objet a la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void addEntrant(TronconRoute O) { + if ( O == null ) return; + entrants.add(O) ; + O.setNoeudFin(this) ; + } + /** Enleve un element de la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void removeEntrant(TronconRoute O) { + if ( O == null ) return; + entrants.remove(O) ; + O.setNoeudFin(null); + } + /** Vide la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void emptyEntrants() { + List old = new ArrayList(entrants); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + TronconRoute O = it.next(); + O.setNoeudFin(null); + } + } + + + + /** Liste (non ordonnee) des non communication concernees par self + *
definition : + * 1 objet Noeud est en relation "entrants" avec n objets TronconRoutier. + * 1 objet TronconRoutier est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type des elements de la liste : + * TronconRoute. + */ + protected List nonCommunications = new ArrayList(); + + /** Recupere la liste des nonCommunications. */ + public List getNonCommunications() {return nonCommunications ; } + /** Definit la liste des nonCommunication, et met a jour la relation inverse. */ + public void setNonCommunications(List L) { + List old = new ArrayList(nonCommunications); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + NonCommunication O = it1.next(); + O.setNoeud(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + NonCommunication O = it2.next(); + O.setNoeud(this); + } + } + /** Recupere le ieme element de la liste des nonCommunications. */ + public NonCommunication getNonCommunication(int i) {return nonCommunications.get(i) ; } + /** Ajoute un objet à la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void addNonCommunication(NonCommunication O) { + if ( O == null ) return; + nonCommunications.add(O) ; + O.setNoeud(this) ; + } + /** Enleve un element de la liste des nonCommunications, et met a jour la relation inverse NoeudFin. */ + public void removeNonCommunication(NonCommunication O) { + if ( O == null ) return; + nonCommunications.remove(O) ; + O.setNoeud(null); + } + /** Vide la liste des nonCommunications, et met a jour la relation inverse NoeudFin. */ + public void emptyNonCommunications() { + List old = new ArrayList(nonCommunications); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + NonCommunication O = it.next(); + O.setNoeud(null); + } + } + + + protected Acces acces; + /** Recupere l'acces en relation */ + public Acces getAcces() {return acces;} + /** Definit l'acces en relation, et met a jour la relation inverse. */ + public void setAcces(Acces O) { + Acces old = acces; + acces = O; + if ( old != null ) old.setNoeud(null); + if ( O != null ) { + accesID = O.getId(); + if ( O.getNoeud() != this ) O.setNoeud(this); + } else accesID = 0; + } + protected int accesID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getAccesID() {return accesID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setAccesID (int I) {accesID = I;} + + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/NonCommunication.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/NonCommunication.java new file mode 100644 index 0000000..fb283c5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/NonCommunication.java @@ -0,0 +1,95 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.routier; + +import fr.ign.cogit.appli.commun.schema.structure.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Point; + +public abstract class NonCommunication extends ElementGeoroute { + + // private GM_Point geometrie = null; + /** Renvoie la geometrie de self */ + public GM_Point getGeometrie() {return (GM_Point)geom;} + /** Definit la geometrie de self */ + public void setGeometrie(GM_Point geometrie) {this.geom = geometrie;} + + + /** Un troncon entrant concerne une non communication. + * 1 objet NonCommunication est en relation avec 1 troncon entrant. + * 1 objet Troncon entrant est en relation avec 0 ou 1 objet NonCommunication. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + public TronconRoute tronconEntrant; + public TronconRoute getTronconEntrant() {return tronconEntrant;} + public void setTronconEntrant(TronconRoute O) { + TronconRoute old = tronconEntrant; + tronconEntrant = O; + if ( old != null ) old.getNonCommInis().remove(this); + if ( O != null ) { + tronconEntrantID = O.getId(); + if ( !(O.getNonCommInis().contains(this)) ) O.getNonCommInis().add(this); + } else tronconEntrantID = 0; + } + protected int tronconEntrantID; + public int getTronconEntrantID() {return tronconEntrantID;} + public void setTronconEntrantID (int I) {tronconEntrantID = I;} + + + /** Un troncon sortant concerne une non communication. + * 1 objet NonCommunication est en relation avec 1 troncon sortant. + * 1 objet Troncon sortant est en relation avec 0 ou 1 objet NonCommunication. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + public TronconRoute tronconSortant; + public TronconRoute getTronconSortant() {return tronconSortant;} + public void setTronconSortant(TronconRoute O) { + TronconRoute old = tronconSortant; + tronconSortant = O; + if ( old != null ) old.getNonCommFins().remove(this); + if ( O != null ) { + tronconSortantID = O.getId(); + if ( !(O.getNonCommFins().contains(this)) ) O.getNonCommFins().add(this); + } else tronconSortantID = 0; + } + protected int tronconSortantID; + public int getTronconSortantID() {return tronconSortantID;} + public void setTronconSortantID (int I) {tronconSortantID = I;} + + + /** Un noeud concerne une non communication. + * 1 objet NonCommunication est en relation avec 1 Noeud. + * 1 objet Noeud est en relation avec 0 ou 1 objet NonCommunication. + * + * Les methodes ...ID sont utiles uniquement au mapping et ne doivent pas etre utilisees + * + * NB : si il n'y a pas d'objet en relation, getObjet renvoie null. + * Pour casser une relation: faire setObjet(null); + */ + protected NoeudRoutier noeud; + /** Recupere le noeud routier en relation */ + public NoeudRoutier getNoeud() {return noeud;} + /** Definit le noeud routier en relation, et met a jour la relation inverse. */ + public void setNoeud(NoeudRoutier O) { + NoeudRoutier old = noeud; + noeud = O; + if ( old != null ) old.getNonCommunications().remove(this); + if ( O != null ) { + noeudID = O.getId(); + if ( !(O.getNonCommunications().contains(this)) ) O.getNonCommunications().add(this); + } else noeudID = 0; + } + protected int noeudID; + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public int getNoeudID() {return noeudID;} + /** Ne pas utiliser, necessaire au mapping OJB dans le cas d'un lien 1-1 */ + public void setNoeudID (int I) {noeudID = I;} + + + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/ThemeRoutier.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/ThemeRoutier.java new file mode 100644 index 0000000..929de82 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/ThemeRoutier.java @@ -0,0 +1,47 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.routier; + +import fr.ign.cogit.geoxygene.api.feature.IPopulation; +import fr.ign.cogit.geoxygene.feature.DataSet; +import fr.ign.cogit.geoxygene.feature.Population; + + +public class ThemeRoutier extends DataSet { + + /** Constructeur par defaut */ + public ThemeRoutier() {this.ojbConcreteClass = this.getClass().getName();} + + /** Constructeur d'un theme routier de Georoute au format structure : + * - ce theme contient les populations "troncons de route"... : + * - ces populations ont des noms par defaut a ne pas changer. + * - leurs elements se realisent dans des classes contretes du package nom_package. + * - un theme peut etre persistant ou non + * - un theme a un nom logique (utile pour naviguer entre themes). + */ + public ThemeRoutier(boolean persistance, String nom_package, DataSet DS) { + super(DS); + this.setTypeBD("Theme routier de Georoute"); + Population pop; + this.ojbConcreteClass = this.getClass().getName(); // necessaire pour ojb + this.setNom("routier"); + if (persistance) DataSet.db.makePersistent(this); + try{ + pop = new Population(persistance, "Carrefour complexe", Class.forName(nom_package+".CarrefourComplexe"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Non communication", Class.forName(nom_package+".NonCommunication"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Noeud routier", Class.forName(nom_package+".NoeudRoutier"),true); + this.addPopulation(pop); + pop = new Population(persistance, "Troncon de route", Class.forName(nom_package+".TronconRoute"),true); + this.addPopulation(pop); + } + catch (Exception e) { + System.out.println("Probleme de nom de package : "+nom_package); + } + } + + public IPopulation getPopCarrefoursComplexes() {return this.getPopulation("Carrefour complexe");} + public IPopulation getPopNonCommunications() {return this.getPopulation("Non communication");} + public IPopulation getPopNoeuds() {return this.getPopulation("Noeud routier");} + public IPopulation getPopTroncons() {return this.getPopulation("Troncon de route");} + +} diff --git a/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/TronconRoute.java b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/TronconRoute.java new file mode 100644 index 0000000..aa9aa40 --- /dev/null +++ b/src/main/java/fr/ign/cogit/appli/commun/schema/structure/georoute/routier/TronconRoute.java @@ -0,0 +1,342 @@ +package fr.ign.cogit.appli.commun.schema.structure.georoute.routier; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.appli.commun.schema.structure.georoute.ElementGeoroute; +import fr.ign.cogit.geoxygene.spatial.coordgeom.GM_LineString; + +public abstract class TronconRoute extends ElementGeoroute { + + + //////////////// GEOMETRIE ////////////////// + // private GM_LineString geometrie = null; + /** Renvoie la geometrie de self */ + public GM_LineString getGeometrie() {return (GM_LineString)geom;} + /** Definit la geometrie de self */ + public void setGeometrie(GM_LineString G) {this.geom = G;} + + public String classementPhysique; + public String getClassementPhysique() {return classementPhysique;} + public void setClassementPhysique(String classementPhysique) { + this.classementPhysique = classementPhysique; + } + + public String classementFonctionnel; + public String getClassementFonctionnel() {return classementFonctionnel;} + public void setClassementFonctionnel(String classementFonctionnel) { + this.classementFonctionnel = classementFonctionnel; + } + + public String limiteAdministrative; + public String getLimiteAdministrative() {return limiteAdministrative;} + public void setLimiteAdministrative(String limite) {this.limiteAdministrative = limite;} + + + public String dateMiseEnService; + public String getDateMiseEnService() {return dateMiseEnService;} + public void setDateMiseEnService(String dateMiseEnService) { + this.dateMiseEnService = dateMiseEnService; + } + + public String positionSol; + public String getPositionSol() {return positionSol;} + public void setPositionSol(String positionSol) {this.positionSol = positionSol;} + + + public String niveauFranchissement; + public String getNiveauFranchissement() {return niveauFranchissement;} + public void setNiveauFranchissement(String niveau) {this.niveauFranchissement = niveau;} + + + public String sensCirculation; + public String getSensCirculation() {return sensCirculation;} + public void setSensCirculation(String sens) {this.sensCirculation = sens;} + + + public String nbVoies; + public String getNbVoies() {return nbVoies;} + public void setNbVoies(String S) {this.nbVoies = S;} + + + public String restrictionAcces; + public String getRestrictionAcces() {return restrictionAcces;} + public void setRestrictionAcces(String acces) {this.restrictionAcces = acces;} + + + public String voieDeBus; + public String getVoieDeBus() {return voieDeBus;} + public void setVoieDeBus(String voieDeBus) {this.voieDeBus = voieDeBus;} + + + public String interditMatiereDanger; + public String getInterditMatiereDanger() {return interditMatiereDanger;} + public void setInterditMatiereDanger(String interditMD) {this.interditMatiereDanger = interditMD;} + + + public String horaireLivraison; + public String getHoraireLivraison() {return horaireLivraison;} + public void setHoraireLivraison(String horaireLivraison) {this.horaireLivraison = horaireLivraison;} + + + public String horaireInterditCirculation; + public String getHoraireInterditCirculation() {return horaireInterditCirculation;} + public void setHoraireInterditCirculation(String horaireCircu) {this.horaireInterditCirculation = horaireCircu;} + + + public String restrictionMarchandise; + public String getRestrictionMarchandise() {return restrictionMarchandise;} + public void setRestrictionMarchandise(String restrictionMarchandise) {this.restrictionMarchandise = restrictionMarchandise;} + + + public String restrictionPoids; + public String getRestrictionPoids() {return restrictionPoids;} + public void setRestrictionPoids(String restrictionPoids) {this.restrictionPoids = restrictionPoids;} + + + public String restrictionHauteur; + public String getRestrictionHauteur() {return restrictionHauteur;} + public void setRestrictionHauteur(String restrictionHauteur) {this.restrictionHauteur = restrictionHauteur;} + + + public String restrictionLongueur; + public String getRestrictionLongueur() {return restrictionLongueur;} + public void setRestrictionLongueur(String restrictionLongueur) {this.restrictionLongueur = restrictionLongueur;} + + + public String restrictionLargeur; + public String getRestrictionLargeur() {return restrictionLargeur;} + public void setRestrictionLargeur(String restrictionLargeur) {this.restrictionLargeur = restrictionLargeur;} + + + public String borneDebGauche; + public String getBorneDebGauche() {return borneDebGauche;} + public void setBorneDebGauche(String borneDebGauche) {this.borneDebGauche = borneDebGauche;} + + + public String borneDebDroite; + public String getBorneDebDroite() {return borneDebDroite;} + public void setBorneDebDroite(String borneDebDroite) {this.borneDebDroite = borneDebDroite;} + + + public String borneFinGauche; + public String getBorneFinGauche() {return borneFinGauche;} + public void setBorneFinGauche(String borneFinGauche) {this.borneFinGauche = borneFinGauche;} + + + public String borneFinDroite; + public String getBorneFinDroite() {return borneFinDroite;} + public void setBorneFinDroite(String borneFinDroite) {this.borneFinDroite = borneFinDroite;} + + + public String typeAdressage; + public String getTypeAdressage() {return typeAdressage;} + public void setTypeAdressage(String typeA) {this.typeAdressage = typeA;} + + + public String nomRueGauche; + public String getNomRueGauche() {return nomRueGauche;} + public void setNomRueGauche(String nomRueGauche) {this.nomRueGauche = nomRueGauche;} + + + public String inseeCommuneGauche; + public String getInseeCommuneGauche() {return inseeCommuneGauche;} + public void setInseeCommuneGauche(String inseeCommuneGauche) { + this.inseeCommuneGauche = inseeCommuneGauche; + } + + + public String nomRueDroite; + public String getNomRueDroite() {return nomRueDroite;} + public void setNomRueDroite(String nomRueDroite) { + this.nomRueDroite = nomRueDroite; + } + + + public String inseeCommuneDroite; + public String getInseeCommuneDroite() {return inseeCommuneDroite;} + public void setInseeCommuneDroite(String inseeCommuneDroite) { + this.inseeCommuneDroite = inseeCommuneDroite; + } + + public String itineraireVert; + public String getItineraireVert() {return itineraireVert;} + public void setItineraireVert(String itineraireVert) {this.itineraireVert = itineraireVert;} + + + public String nomItineraire; + public String getNomItineraire() {return nomItineraire;} + public void setNomItineraire(String toponymeItineraire) {this.nomItineraire = toponymeItineraire;} + + + public String numeroRoute; + public String getNumeroRoute() {return numeroRoute;} + public void setNumeroRoute(String numeroRoute) {this.numeroRoute = numeroRoute;} + + + protected NoeudRoutier noeudIni; + /** Recupere le noeud initial. */ + public NoeudRoutier getNoeudIni() {return noeudIni;} + /** Definit le noeud initial, et met a jour la relation inverse. */ + public void setNoeudIni(NoeudRoutier O) { + NoeudRoutier old = noeudIni; + noeudIni = O; + if ( old != null ) old.getSortants().remove(this); + if ( O != null ) { + noeudIniID = O.getId(); + if ( !(O.getSortants().contains(this)) ) O.getSortants().add(this); + } else noeudIniID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int noeudIniID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setNoeudIniID(int I) {noeudIniID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getNoeudIniID() {return noeudIniID;} + + + + /** Noeud final du troncon. + *
Definition : + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise le noeud routier initial d'un troncon de route. + *
Type : + * NoeudRoutier. + */ + protected NoeudRoutier noeudFin; + /** Recupere le noeud final. */ + public NoeudRoutier getNoeudFin() {return noeudFin;} + /** Definit le noeud final, et met a jour la relation inverse. */ + public void setNoeudFin(NoeudRoutier O) { + NoeudRoutier old = noeudFin; + noeudFin = O; + if ( old != null ) old.getEntrants().remove(this); + if ( O != null ) { + noeudFinID = O.getId(); + if ( !(O.getEntrants().contains(this)) ) O.getEntrants().add(this); + } else noeudFinID = 0; + } + /** Pour le mapping avec OJB, dans le cas d'une relation 1-n, du cote 1 de la relation */ + protected int noeudFinID; + /** Ne pas utiliser, necessaire au mapping*/ + public void setNoeudFinID(int I) {noeudFinID = I;} + /** Ne pas utiliser, necessaire au mapping*/ + public int getNoeudFinID() {return noeudFinID;} + + + /** Liste (non ordonnee) des non communication INI concernees par self + *
Definition : + * 1 objet Noeud est en relation "entrants" avec n objets TronconRoutier. + * 1 objet TronconRoutier est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type des elements de la liste : + * TronconRoute. + */ + protected List nonCommInis = new ArrayList(); + + /** Recupere la liste des nonCommInis. */ + public List getNonCommInis() {return nonCommInis ; } + /** Definit la liste des nonCommunication, et met a jour la relation inverse. */ + public void setNonCommInis(List L) { + List old = new ArrayList(nonCommInis); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + NonCommunication O = it1.next(); + O.setTronconEntrant(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + NonCommunication O = it2.next(); + O.setTronconEntrant(this); + } + } + /** Recupere le ieme element de la liste des nonCommInis. */ + public NonCommunication getNonCommIni(int i) {return nonCommInis.get(i) ; } + /** Ajoute un objet a la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void addNonCommIni(NonCommunication O) { + if ( O == null ) return; + nonCommInis.add(O) ; + O.setTronconEntrant(this) ; + } + /** Enleve un element de la liste des nonCommInis, et met a jour la relation inverse NoeudFin. */ + public void removeNonCommIni(NonCommunication O) { + if ( O == null ) return; + nonCommInis.remove(O) ; + O.setTronconEntrant(null); + } + /** Vide la liste des nonCommInis, et met a jour la relation inverse NoeudFin. */ + public void emptyNonCommInis() { + List old = new ArrayList(nonCommInis); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + NonCommunication O = it.next(); + O.setTronconEntrant(null); + } + } + + /** Liste (non ordonnee) des non communication FIN concernees par self + *
Definition : + * 1 objet Noeud est en relation "entrants" avec n objets TronconRoutier. + * 1 objet TronconRoutier est en relation "fin" avec 1 objet Noeud. + * + * Les methodes get (sans indice) et set sont necessaires au mapping. + * Les autres methodes sont la seulement pour faciliter l'utilisation de la relation. + * ATTENTION: Pour assurer la bidirection, il faut modifier les listes uniquement avec ces methodes. + * NB: si il n'y a pas d'objet en relation, la liste est vide mais n'est pas "null". + * Pour casser toutes les relations, faire setListe(new ArrayList()) ou emptyListe(). + * Relation topologique participant a la gestion de la logique de parcours du reseau routier : + * Elle precise lengthnoeud routier initial d'un troncon de route. + *
Type des elements de la liste : + * TronconRoute. + */ + protected List nonCommFins = new ArrayList(); + + /** Recupere la liste des nonCommFins. */ + public List getNonCommFins() {return nonCommFins ; } + /** Definit la liste des nonCommunication, et met a jour la relation inverse. */ + public void setNonCommFins(List L) { + List old = new ArrayList(nonCommFins); + Iterator it1 = old.iterator(); + while ( it1.hasNext() ) { + NonCommunication O = it1.next(); + O.setTronconSortant(null); + } + Iterator it2 = L.iterator(); + while ( it2.hasNext() ) { + NonCommunication O = it2.next(); + O.setTronconSortant(this); + } + } + /** Recupere le ieme element de la liste des nonCommFins. */ + public NonCommunication getNonCommFin(int i) {return nonCommFins.get(i) ; } + /** Ajoute un objet a la liste des arcs entrants, et met a jour la relation inverse NoeudFin. */ + public void addNonCommFin(NonCommunication O) { + if ( O == null ) return; + nonCommFins.add(O) ; + O.setTronconSortant(this) ; + } + /** Enleve un element de la liste des nonCommFins, et met a jour la relation inverse NoeudFin. */ + public void removeNonCommFin(NonCommunication O) { + if ( O == null ) return; + nonCommFins.remove(O) ; + O.setTronconSortant(null); + } + /** Vide la liste des nonCommFins, et met a jour la relation inverse NoeudFin. */ + public void emptyNonCommFins() { + List old = new ArrayList(nonCommFins); + Iterator it = old.iterator(); + while ( it.hasNext() ) { + NonCommunication O = it.next(); + O.setTronconSortant(null); + } + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/activite/PointRepresentatifActiviteInteret.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/activite/PointRepresentatifActiviteInteret.java new file mode 100644 index 0000000..6ac4be2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/activite/PointRepresentatifActiviteInteret.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.activite; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Micro; + +/** + * + * point d'activite ou d'interet, lieu dit habite ou non, toponyme divers, zone + * d'habitat, d'activite, etablissement + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface PointRepresentatifActiviteInteret extends Micro { + + /** + * @return le nom de l'objet + */ + public String getNom(); + + public void setNom(String nom); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/activite/ZoneActiviteInteret.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/activite/ZoneActiviteInteret.java new file mode 100644 index 0000000..668e69b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/activite/ZoneActiviteInteret.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.activite; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Micro; + +/** + * + * surface activite, terrain de sport (?), cimetiere, piste aerodrome, zone + * reglementee touristique, enceinte, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface ZoneActiviteInteret extends Micro { + + /** + * @return le nom de l'objet + */ + public String getNom(); + + public void setNom(String nom); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/ChefLieu.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/ChefLieu.java new file mode 100644 index 0000000..c25cb33 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/ChefLieu.java @@ -0,0 +1,48 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.administratif; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; + +/** + * + * chef lieu d'unite administrative + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface ChefLieu extends IFeature { + + /** + * @return le nom de l'objet + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return l'unite administrative dont l'objet est chef-lieu + */ + public UniteAdministrative getUniteAdministrative(); + + public void setUniteAdministrative(UniteAdministrative uniteAdministrative); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/LimiteAdministrative.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/LimiteAdministrative.java new file mode 100644 index 0000000..dc9d26f --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/LimiteAdministrative.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Limite; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface LimiteAdministrative extends Limite { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrative.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrative.java new file mode 100644 index 0000000..7876c97 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrative.java @@ -0,0 +1,52 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Zone; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface UniteAdministrative extends Zone { + + /** + * @return le nom de l'objet + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return le code de l'objet + */ + public String getCode(); + + public void setCode(String Code); + + /** + * @return le chef-lieu de l'unite administrative + */ + public ChefLieu getChefLieu(); + + public void setChefLieu(ChefLieu chefLieu); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrativeComposite.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrativeComposite.java new file mode 100644 index 0000000..2a4278f --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrativeComposite.java @@ -0,0 +1,34 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.ZoneComposite; + +/** + * zone administrative composite (arrondissement, departement, canton, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface UniteAdministrativeComposite extends ZoneComposite, + UniteAdministrative { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrativeElementaire.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrativeElementaire.java new file mode 100644 index 0000000..591d6c8 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/administratif/UniteAdministrativeElementaire.java @@ -0,0 +1,33 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.ZoneElementaire; + +/** + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface UniteAdministrativeElementaire extends ZoneElementaire, + UniteAdministrative { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Alignement.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Alignement.java new file mode 100644 index 0000000..89004d4 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Alignement.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.bati; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Meso; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public interface Alignement extends Meso { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/AutreConstruction.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/AutreConstruction.java new file mode 100644 index 0000000..0cbc2a6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/AutreConstruction.java @@ -0,0 +1,33 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.bati; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Micro; + +/** + * toute autre construction qui n'est pas un batiment + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface AutreConstruction extends Micro { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Batiment.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Batiment.java new file mode 100644 index 0000000..c6f6fe3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Batiment.java @@ -0,0 +1,59 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.bati; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Micro; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Batiment extends Micro { + + /** + * @return l'altitude maximale de l'objet + */ + public double getZMax(); + + public void setZMax(double zMax); + + /** + * @return l'altitude minimale de l'objet + */ + public double getZMin(); + + public void setZMin(double zMin); + + /** + * @return la hauteur de l'objet + */ + public double getHauteur(); + + public void setHauteur(double hauteur); + + /** + * @return la nature de l'objet + */ + public String getNature(); + + public void setNature(String nature); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Ilot.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Ilot.java new file mode 100644 index 0000000..598be3c --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Ilot.java @@ -0,0 +1,39 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.bati; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Meso; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public interface Ilot extends Meso { + + /** + * @return les arcs de reseau limitrophes ou contenus dans l'ilot + */ + public Collection getArcsReseaux(); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Quartier.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Quartier.java new file mode 100644 index 0000000..aaca7c8 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Quartier.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.bati; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Meso; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public interface Quartier extends Meso { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Ville.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Ville.java new file mode 100644 index 0000000..aea9033 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/bati/Ville.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.bati; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Meso; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public interface Ville extends Meso { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/AireTriage.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/AireTriage.java new file mode 100644 index 0000000..969eb4d --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/AireTriage.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementZonalReseau; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface AireTriage extends ElementZonalReseau { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/LigneDeCheminDeFer.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/LigneDeCheminDeFer.java new file mode 100644 index 0000000..1a4c21d --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/LigneDeCheminDeFer.java @@ -0,0 +1,48 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.AgregatReseau; + +/** + * ligne de chemin de fer (exemple: le train des pigne, la petite ceinture, + * ligne Marseille - Vintimille, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface LigneDeCheminDeFer extends AgregatReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return le caractere touristique de l'objet + */ + public boolean isTouristique(); + + public void setTouristique(boolean touristique); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/NoeudFerre.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/NoeudFerre.java new file mode 100644 index 0000000..4b401c0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/NoeudFerre.java @@ -0,0 +1,38 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.NoeudReseau; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface NoeudFerre extends NoeudReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/TronconCable.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/TronconCable.java new file mode 100644 index 0000000..776b5ab --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/TronconCable.java @@ -0,0 +1,61 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; + +/** + * telepherique, remontee mecanique, funiculaire, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface TronconCable extends ArcReseau { + + /** + * @return l'altitude maximale de l'objet + */ + public double getZMax(); + + public void setZMax(double zMax); + + /** + * @return l'altitude minimale de l'objet + */ + public double getZMin(); + + public void setZMin(double zMin); + + /** + * @return l'altitude initiale de l'objet + */ + public double getZIni(); + + public void setZIni(double zIni); + + /** + * @return l'altitude finale de l'objet + */ + public double getZFin(); + + public void setZFin(double zFin); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/TronconFerre.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/TronconFerre.java new file mode 100644 index 0000000..30e86e7 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/ferre/TronconFerre.java @@ -0,0 +1,87 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface TronconFerre extends ArcReseau { + + /** + * @return l'energie + */ + public String getEnergie(); + + public void setEnergie(String energie); + + /** + * @return le nombre de voie + */ + public int getNombreVoies(); + + public void setNombreVoies(int nombreVoies); + + /** + * @return la largeur de voie + */ + public String getLargeurVoie(); + + public void setLargeurVoie(String largeurVoie); + + /** + * @return la position par rapport au sol + */ + public int getPositionParRapportAuSol(); + + public void setPositionParRapportAuSol(int positionParRapportAuSol); + + /** + * @return le classement de l'objet + */ + public String getClassement(); + + public void setClassement(String classement); + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return l'altitude initiale de l'objet + */ + public double getZIni(); + + public void setZIni(double zIni); + + /** + * @return l'altitude finale de l'objet + */ + public double getZFin(); + + public void setZFin(double zFin); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/CoursDEau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/CoursDEau.java new file mode 100644 index 0000000..d27ec56 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/CoursDEau.java @@ -0,0 +1,38 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.hydro; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.AgregatReseau; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface CoursDEau extends AgregatReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/NoeudHydrographique.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/NoeudHydrographique.java new file mode 100644 index 0000000..e91489a --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/NoeudHydrographique.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.hydro; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.NoeudReseau; + +/** + * Noeud du reseau routier + certains points d'eau (sources, pertes, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface NoeudHydrographique extends NoeudReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return la cote + */ + public double getCote(); + + public void setCote(double cote); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/PointDEau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/PointDEau.java new file mode 100644 index 0000000..2ccbf7a --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/PointDEau.java @@ -0,0 +1,61 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.hydro; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementPonctuelReseau; + +/** + * point d'eau, reservoir (?), point d'eau isole, toponyme de surface hydro (?) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface PointDEau extends ElementPonctuelReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return l'altitude maximale de l'objet + */ + public double getZMax(); + + public void setZMax(double zMax); + + /** + * @return l'altitude minimale de l'objet + */ + public double getZMin(); + + public void setZMin(double zMin); + + /** + * @return la hauteur de l'objet + */ + public double getHauteur(); + + public void setHauteur(double hauteur); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/Regime.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/Regime.java new file mode 100644 index 0000000..472fe6c --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/Regime.java @@ -0,0 +1,28 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package fr.ign.cogit.geoxygene.schemageo.api.hydro; + +/** + * un regime d'objet hydrographique qui veut maigrir (ahahahahah) + * @author JGaffuri 21 octobre 2009 + * + */ +public enum Regime { + PERMANENT, INTERMITTENT, CANAL_A_SEC, INCONNU +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/SurfaceDEau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/SurfaceDEau.java new file mode 100644 index 0000000..1b59fdc --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/SurfaceDEau.java @@ -0,0 +1,54 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.hydro; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementZonalReseau; + +/** + * lacs, etendues d'eau diverses representees sous forme surfacique + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface SurfaceDEau extends ElementZonalReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return l'altitude moyenne de l'objet + */ + public double getZMoy(); + + public void setZMoy(double zMoy); + + /** + * @return le regime + */ + public Regime getRegime(); + + public void setRegime(Regime regime); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/TronconHydrographique.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/TronconHydrographique.java new file mode 100644 index 0000000..7dd2873 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/TronconHydrographique.java @@ -0,0 +1,80 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.hydro; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface TronconHydrographique extends ArcReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return le caractere artificiel de l'objet + */ + public boolean isArtificiel(); + + public void setArtificiel(boolean artificiel); + + /** + * @return la position par rapport au sol + */ + public int getPositionParRapportAuSol(); + + public void setPositionParRapportAuSol(int positionParRapportAuSol); + + /** + * @return le regime + */ + public Regime getRegime(); + + public void setRegime(Regime regime); + + /** + * @return l'altitude initiale de l'objet + */ + public double getZIni(); + + public void setZIni(double zIni); + + /** + * @return l'altitude finale de l'objet + */ + public double getZFin(); + + public void setZFin(double zFin); + + /** + * @return la largeur + */ + public double getLargeur(); + + public void setLargeur(double largeur); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/TronconLaisse.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/TronconLaisse.java new file mode 100644 index 0000000..df15ca0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/hydro/TronconLaisse.java @@ -0,0 +1,32 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author G. Touya 14 janvier 2013 + */ +package fr.ign.cogit.geoxygene.schemageo.api.hydro; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; + +public interface TronconLaisse extends ArcReseau { + + public enum HauteurLaisse { + HAUTE_MER, BASSE_MER + } + + public HauteurLaisse getHauteur(); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/occSol/ElementIsole.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/occSol/ElementIsole.java new file mode 100644 index 0000000..e5f76d2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/occSol/ElementIsole.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.occSol; + +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.ElementIndependant; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface ElementIsole extends ElementIndependant { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/occSol/ZoneOccSol.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/occSol/ZoneOccSol.java new file mode 100644 index 0000000..c7c3198 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/occSol/ZoneOccSol.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.occSol; + +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Zone; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface ZoneOccSol extends Zone { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/CourbeDeNiveau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/CourbeDeNiveau.java new file mode 100644 index 0000000..bc93681 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/CourbeDeNiveau.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.relief; + +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.Isoligne; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface CourbeDeNiveau extends Isoligne { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/ElementCaracteristiqueDuRelief.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/ElementCaracteristiqueDuRelief.java new file mode 100644 index 0000000..984078f --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/ElementCaracteristiqueDuRelief.java @@ -0,0 +1,33 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.relief; + +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ElementCaracteristique; + +/** + * ligne orographique, oronyme, point cote, talus, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface ElementCaracteristiqueDuRelief extends ElementCaracteristique { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/MNT.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/MNT.java new file mode 100644 index 0000000..40239e6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/MNT.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.relief; + +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampContinu; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface MNT extends ChampContinu { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/PointDuRelief.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/PointDuRelief.java new file mode 100644 index 0000000..12b80a9 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/relief/PointDuRelief.java @@ -0,0 +1,29 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package fr.ign.cogit.geoxygene.schemageo.api.relief; + +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.PointCote; + +/** + * @author JGaffuri + * + */ +public interface PointDuRelief extends PointCote { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/CarrefourComplexe.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/CarrefourComplexe.java new file mode 100644 index 0000000..5d2c4c1 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/CarrefourComplexe.java @@ -0,0 +1,58 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.routier; + +import java.util.HashSet; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.AgregatReseau; + +/** + * carrefour complexe du reseau routier (rond-point, echangeur, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface CarrefourComplexe extends AgregatReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * les tronçons de route situés à l'intérieur du carrefour complexe + * @return + */ + public HashSet getRoutesInternes(); + + public void setRoutesInternes(HashSet routesInternes); + + /** + * les tronçons de route qui connectent le carrefour complexe au reste du + * réseau + * @return + */ + public HashSet getRoutesExternes(); + + public void setRoutesExternes(HashSet routesExternes); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/EquipementRoutier.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/EquipementRoutier.java new file mode 100644 index 0000000..93dcfcf --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/EquipementRoutier.java @@ -0,0 +1,40 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.routier; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementPonctuelReseau; + +/** + * element ponctuel de reseau routier + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface EquipementRoutier extends ElementPonctuelReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/NoeudRoutier.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/NoeudRoutier.java new file mode 100644 index 0000000..89fcb2d --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/NoeudRoutier.java @@ -0,0 +1,36 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.routier; + +import java.util.Set; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.NoeudReseau; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface NoeudRoutier extends NoeudReseau { + + public int getDegre(); + + public Set getRoutes(); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/RouteItineraire.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/RouteItineraire.java new file mode 100644 index 0000000..40f52c1 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/RouteItineraire.java @@ -0,0 +1,42 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.routier; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.AgregatReseau; + +/** + * + * Itineraire routier (exemple: paris - marseille) ou route nommee (exemple: la + * route des vins d'aix, la route Napoleon, la route des cretes, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface RouteItineraire extends AgregatReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/SurfaceRoute.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/SurfaceRoute.java new file mode 100644 index 0000000..6499573 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/SurfaceRoute.java @@ -0,0 +1,40 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.routier; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementZonalReseau; + +/** + * surface de route, peage, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface SurfaceRoute extends ElementZonalReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/TronconDeRoute.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/TronconDeRoute.java new file mode 100644 index 0000000..6cd53ca --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/routier/TronconDeRoute.java @@ -0,0 +1,83 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.routier; + +import java.util.Date; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; + +/** + * troncon de transport routier (route, chemin, GR, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public interface TronconDeRoute extends ArcReseau { + + /** + * @return le nombre de voies + */ + public int getNombreDeVoies(); + + public void setNombreDeVoies(int nombreDeVoies); + + /** + * @return le date de mise en service + */ + public Date getDateMiseEnService(); + + public void setDateMiseEnService(Date dateMiseEnService); + + /** + * @return l'etat physique + */ + public String getEtatPhysique(); + + public void setEtatPhysique(String etatPhysique); + + /** + * @return l'acces + */ + public String getAcces(); + + public void setAcces(String acces); + + /** + * @return l'altitude initiale + */ + public double getzIni(); + + public void setzIni(double zIni); + + /** + * @return l'altitude finale + */ + public double getzFin(); + + public void setzFin(double zFin); + + /** + * @return le nom de l'itineraire eventuel + */ + public String getNomItineraire(); + + public void setNomItineraire(String nomItineraire); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampContinu.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampContinu.java new file mode 100644 index 0000000..9422307 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampContinu.java @@ -0,0 +1,67 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.champContinu; + +import java.util.Collection; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ChampContinu { + + /** + * @return le nom de l'objet + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return l'identifiant de l'objet + */ + public int getId(); + + public void setId(int id); + + /** + * @return les isolignes de l'objet + */ + public Collection getIsolignes(); + + public void setIsolignes(Collection isolignes); + + /** + * @return les points cotes de l'objet + */ + public Collection getPointsCotes(); + + public void setPointsCotes(Collection pointsCotes); + + /** + * @return les elements caracteristiques de l'objet + */ + public Collection getElementsCaracteristiques(); + + public void setElementsCaracteristiques( + Collection elementsCaracteristiques); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampGrille.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampGrille.java new file mode 100644 index 0000000..efad3d0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampGrille.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.champContinu; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IGriddedSurface; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ChampGrille { + + /** + * @return la geometrie grille de l'objet + */ + public IGriddedSurface getGeom(); + + /** + * @param griddedSurface la geometrie grille de l'objet + */ + public void setGeom(IGriddedSurface griddedSurface); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampTIN.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampTIN.java new file mode 100644 index 0000000..24c5a40 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ChampTIN.java @@ -0,0 +1,40 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.champContinu; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.ITin; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ChampTIN extends ChampContinu { + + /** + * @return le TIN de l'objet + */ + public ITin getGeom(); + + /** + * @param tin le TIN de l'objet + */ + public void setGeom(ITin tin); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ElementCaracteristique.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ElementCaracteristique.java new file mode 100644 index 0000000..963b432 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/ElementCaracteristique.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.champContinu; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ElementCaracteristique extends IFeature { + + /** + * @return le champ continu auquel l'objet appartient + */ + public ChampContinu getChampContinu(); + + /** + * @param champContinu le champ continu auquel l'objet appartient + */ + public void setChampContinu(ChampContinu champContinu); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/Isoligne.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/Isoligne.java new file mode 100644 index 0000000..f01f8c7 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/Isoligne.java @@ -0,0 +1,55 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.champContinu; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Isoligne extends IFeature { + + /** + * @return la valeur de l'isoligne + */ + public double getValeur(); + + /** + * @param valeur la valeur de l'isoligne + */ + public void setValeur(double valeur); + + /** + * @return le champ continu de l'isoligne + */ + public ChampContinu getChampContinu(); + + /** + * @param champContinu le champ continu de l'isoligne + */ + public void setChampContinu(ChampContinu champContinu); + + @Override + public ICurve getGeom(); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/PointCote.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/PointCote.java new file mode 100644 index 0000000..3836d4a --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/champContinu/PointCote.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.champContinu; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; + +/** + * @author julien Gaffuri 21 octobre 2009 + * + */ +public interface PointCote extends IFeature { + + /** + * @return la valeur du point cote + */ + public double getValeur(); + + public void setValeur(double valeur); + + @Override + public IPoint getGeom(); + + /** + * @return le champ continu du point cote + */ + public ChampContinu getChampContinu(); + + public void setChampContinu(ChampContinu champContinu); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/ElementIndependant.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/ElementIndependant.java new file mode 100644 index 0000000..9b4a829 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/ElementIndependant.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ElementIndependant extends IFeature { + + /** + * @return le meso (eventuel) dont l'objet est composant + */ + public Meso getMeso(); + + /** + * @param meso le meso dont l'objet est composant + */ + public void setMeso(Meso meso); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/Meso.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/Meso.java new file mode 100644 index 0000000..1db6dc5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/Meso.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants; + +import java.util.Collection; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Meso extends ElementIndependant { + + /** + * @return les composants + */ + public Collection getComposants(); + + /** + * @param composants les composants a affecter a l'objet + */ + public void setComposants(Collection composants); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/Micro.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/Micro.java new file mode 100644 index 0000000..8449bfa --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/elementsIndependants/Micro.java @@ -0,0 +1,29 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Micro extends ElementIndependant { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Limite.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Limite.java new file mode 100644 index 0000000..6b04093 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Limite.java @@ -0,0 +1,42 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.partition; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.ILineString; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Limite extends IFeature { + + /** + * @return les zones dont l'objet est limite + */ + public Collection getZones(); + + @Override + public ILineString getGeom(); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Partition.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Partition.java new file mode 100644 index 0000000..3f832ca --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Partition.java @@ -0,0 +1,49 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.partition; + +import java.util.Collection; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Partition { + + /** + * @return l'identifiant de l'objet + */ + public int getId(); + + public void setId(int id); + + /** + * @return le nom de l'objet + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return les zones de la partition + */ + public Collection getZones(); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Zone.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Zone.java new file mode 100644 index 0000000..7653fe6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/Zone.java @@ -0,0 +1,68 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.partition; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; +import fr.ign.cogit.geoxygene.api.spatial.geomaggr.IMultiSurface; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Zone extends IFeature { + + /** + * @return la partition a laquelle la zone appartient + */ + public Partition getPartition(); + + /** + * @param partition la partition a laquelle la zone appartient + */ + public void setPartition(Partition partition); + + /** + * @return les limites sur lesquelles s'appuie la zone + */ + public Collection getLimites(); + + /** + * @param limites les limites sur lesquelles s'appuie la zone + */ + public void setLimites(Collection limites); + + /** + * @return les zones composees auxquelles la zone appartient eventuellement + */ + public Collection getZonesComposees(); + + /** + * @param zonesComposees les zones composees aquelles la zone appartient + * eventuellement + */ + public void setZonesComposees(Collection zonesComposees); + + @Override + public IMultiSurface getGeom(); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/ZoneComposite.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/ZoneComposite.java new file mode 100644 index 0000000..04f93e5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/ZoneComposite.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.partition; + +import java.util.Collection; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ZoneComposite extends Zone { + + /** + * @return les zones composant l'objet + */ + public Collection getZones(); + + /** + * @param zones les zones composant l'objet + */ + public void setZones(Collection zones); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/ZoneElementaire.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/ZoneElementaire.java new file mode 100644 index 0000000..a8ee5ea --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/partition/ZoneElementaire.java @@ -0,0 +1,29 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.partition; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ZoneElementaire extends Zone { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/AgregatReseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/AgregatReseau.java new file mode 100644 index 0000000..9f13f5e --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/AgregatReseau.java @@ -0,0 +1,63 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; + +/** + * agregat d'elements du reseau (ex: itineraire, riviere, echangeur, rond-point, + * etc.) + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface AgregatReseau extends IFeature { + + /** + * @return les noeuds de l'agregat + */ + public Collection getNoeuds(); + + public void setNoeuds(Collection noeuds); + + /** + * @return les arcs de l'agregat + */ + public Collection getArcs(); + + public void setArcs(Collection arcs); + + /** + * @return les "passe par" de l'agregat + */ + public Collection getPassepar(); + + public void setPassePar(Collection passePar); + + /** + * @return les franchissements de l'agregat + */ + public Collection getFranchissements(); + + public void setFranchissements(Collection franchissement); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ArcReseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ArcReseau.java new file mode 100644 index 0000000..480cd26 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ArcReseau.java @@ -0,0 +1,75 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ArcReseau extends ElementDuReseau { + + /** + * @return + */ + public boolean isFictif(); + + public void setFictif(boolean fictif); + + @Override + public ICurve getGeom(); + + /** + * @return la direction du troncon + */ + public Direction getDirection(); + + public void setDirection(Direction direction); + + /** + * @return la direction du troncon + */ + public int getImportance(); + + public void setImportance(int importance); + + /** + * @return le noeud initial de l'arc + */ + public NoeudReseau getNoeudInitial(); + + public void setNoeudInitial(NoeudReseau noeud); + + /** + * @return le noeud final de l'arc + */ + public NoeudReseau getNoeudFinal(); + + public void setNoeudFinal(NoeudReseau noeud); + + /** + * @return + */ + public Collection getPassePar(); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ArcReseauFlagPair.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ArcReseauFlagPair.java new file mode 100644 index 0000000..4b27e08 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ArcReseauFlagPair.java @@ -0,0 +1,34 @@ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +/** + * + * @author JTeulade-Denantes + * + */ +public interface ArcReseauFlagPair { + + /** + * + * @return l'arcReseau + */ + public ArcReseau getArcReseau() ; + + /** + * + * @param arcReseau + */ + public void setArcReseau(ArcReseau arcReseau) ; + + /** + * + * @return le flag + */ + public boolean getFlag(); + + /** + * + * @param flag + */ + public void setFlag(boolean flag); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Direction.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Direction.java new file mode 100644 index 0000000..27b6023 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Direction.java @@ -0,0 +1,9 @@ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at providing an open framework which implements OGC/ISO specifications for the development and deployment of geographic (GIS) applications. It is a open source contribution of the COGIT laboratory at the Institut Géographique National (the French National Mapping Agency). See: http://oxygene-project.sourceforge.net + * Copyright (C) 2005 Institut Géographique National + * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library (see file LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +public enum Direction { + DIRECT, INDIRECT, BIDIRECTIONNEL, INCONNU +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementDuReseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementDuReseau.java new file mode 100644 index 0000000..08e65f0 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementDuReseau.java @@ -0,0 +1,55 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ElementDuReseau extends IFeature { + + /** + * @return elements non topologiques lies a l'objet + */ + public Collection getElementsLies(); + + /** + * @return les agregats auquels l'element appartient + */ + public Collection getAgregats(); + + /** + * @return le reseau auquel appartient l'element + */ + public Reseau getReseau(); + + public void setReseau(Reseau reseau); + + /** + * @return elements non topologiques lies a l'objet + */ + public Collection getElementsLiesAuReseau(); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementLieAuReseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementLieAuReseau.java new file mode 100644 index 0000000..98481ca --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementLieAuReseau.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.feature.IFeature; + +/** + * represente les elements lies thematiquement au reseau mais sans incidence sur + * la topologie + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ElementLieAuReseau extends IFeature { + + /** + * @return le reseau + */ + public Reseau getReseau(); + + public void setReseau(Reseau reseau); + + /** + * @return elements topologiques du reseau lies a l'objet + */ + public Collection getElementsDuReseau(); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementPonctuelReseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementPonctuelReseau.java new file mode 100644 index 0000000..06814b3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementPonctuelReseau.java @@ -0,0 +1,36 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; + +/** + * exemple: equipement le long d'une route, point de captage hydro, etc. + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ElementPonctuelReseau extends ElementLieAuReseau { + + @Override + public IPoint getGeom(); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementZonalReseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementZonalReseau.java new file mode 100644 index 0000000..9574510 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/ElementZonalReseau.java @@ -0,0 +1,35 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IPolygon; + +/** + * exemple: aire de peage, riviere large, etc. + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface ElementZonalReseau extends ElementLieAuReseau { + + @Override + public IPolygon getGeom(); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Franchissement.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Franchissement.java new file mode 100644 index 0000000..e4506be --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Franchissement.java @@ -0,0 +1,42 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; + +/** + * permet de modeliser les franchissements sans noeud (comme dans la BD carto) + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface Franchissement extends ElementDuReseau { + + @Override + public IPoint getGeom(); + + /** + * @return + */ + public Collection getPassePar(); +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/NoeudReseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/NoeudReseau.java new file mode 100644 index 0000000..d091c1d --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/NoeudReseau.java @@ -0,0 +1,67 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import java.util.Collection; +import java.util.List; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; + +/** + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface NoeudReseau extends ElementDuReseau { + + @Override + public IPoint getGeom(); + + /** + * @return les arcs entrant sur le noeud + */ + public Collection getArcsEntrants(); + + /** + * @return les arcs sortant du noeud + */ + public Collection getArcsSortants(); + + /** + * @author JTeulade-Denantes + * + * this function takes all the arcs related to the node in order to sort them in a clockwise direction + * @return the list node arcs in a clockwise direction + */ + public List getClockwiseArcs(); + + /** + * @author JTeulade-Denantes + * + * this function returns the arcs included between two arcs in a clockwise or counterclockwise direction + * @param firstArc + * @param secondArc + * @param clockwise + * @return the list of arcs + */ + public List clockwiseSelectedArcs(ArcReseau firstArc, ArcReseau secondArc, boolean clockwise); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/PassePar.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/PassePar.java new file mode 100644 index 0000000..801cc0b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/PassePar.java @@ -0,0 +1,57 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; + +/** + * (peut-etre inutile sous forme de classe; a voir a l'usage) + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public interface PassePar extends ElementDuReseau { + + /** + * @return niveau du passage + */ + public int getNiveau(); + + public void setNiveau(int niveau); + + @Override + public IPoint getGeom(); + + /** + * @return l'arc concerne + */ + public ArcReseau getArc(); + + public void setArc(ArcReseau arc); + + /** + * @return le franchissement concerne + */ + public Franchissement getFranchissement(); + + public void setFranchissement(Franchissement franchissement); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Reseau.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Reseau.java new file mode 100644 index 0000000..a8484ac --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/api/support/reseau/Reseau.java @@ -0,0 +1,46 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.api.support.reseau; + +import java.util.Collection; + +/** + * un objet reseau (qui est un agregat particulier, qui contient tous les + * elements d'un meme reseau) + * + * @author julien Gaffuri 20 juil. 2009 + * + */ +public interface Reseau extends AgregatReseau { + + /** + * @return le nom + */ + public String getNom(); + + public void setNom(String nom); + + /** + * @return elements non topologiques lies au reseau + */ + public Collection getElementsLiesAuReseau(); + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/activite/PointRepresentatifActiviteInteretImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/activite/PointRepresentatifActiviteInteretImpl.java new file mode 100644 index 0000000..a82d684 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/activite/PointRepresentatifActiviteInteretImpl.java @@ -0,0 +1,57 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.activite; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.activite.PointRepresentatifActiviteInteret; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MicroImpl; + +/** + * + * point d'activite ou d'interet, lieu dit habite ou non, toponyme divers, zone + * d'habitat, d'activite, etablissement + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class PointRepresentatifActiviteInteretImpl extends MicroImpl implements + PointRepresentatifActiviteInteret { + + public PointRepresentatifActiviteInteretImpl(IGeometry geom) { + super(geom); + } + + /** + * le nom de l'objet + */ + private String nom = null; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/activite/ZoneActiviteInteretImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/activite/ZoneActiviteInteretImpl.java new file mode 100644 index 0000000..27f0366 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/activite/ZoneActiviteInteretImpl.java @@ -0,0 +1,57 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.activite; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.activite.ZoneActiviteInteret; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MicroImpl; + +/** + * + * surface activite, terrain de sport (?), cimetiere, piste aerodrome, zone + * reglementee touristique, enceinte, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class ZoneActiviteInteretImpl extends MicroImpl implements + ZoneActiviteInteret { + + public ZoneActiviteInteretImpl(IGeometry geom) { + super(geom); + } + + /** + * le nom de l'objet + */ + private String nom = null; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/ChefLieuImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/ChefLieuImpl.java new file mode 100644 index 0000000..2513fc5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/ChefLieuImpl.java @@ -0,0 +1,66 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.administratif; + +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.schemageo.api.administratif.ChefLieu; +import fr.ign.cogit.geoxygene.schemageo.api.administratif.UniteAdministrative; + +/** + * + * chef lieu d'unite administrative + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class ChefLieuImpl extends DefaultFeature implements ChefLieu { + + /** + * le nom de l'objet + */ + private String nom = null; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * l'uniteAdministrative de l'objet + */ + private UniteAdministrative uniteAdministrative = null; + + @Override + public UniteAdministrative getUniteAdministrative() { + return this.uniteAdministrative; + } + + @Override + public void setUniteAdministrative(UniteAdministrative uniteAdministrative) { + this.uniteAdministrative = uniteAdministrative; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/LimiteAdministrativeImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/LimiteAdministrativeImpl.java new file mode 100644 index 0000000..b45a97f --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/LimiteAdministrativeImpl.java @@ -0,0 +1,32 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.administratif.LimiteAdministrative; +import fr.ign.cogit.geoxygene.schemageo.impl.support.partition.LimiteImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class LimiteAdministrativeImpl extends LimiteImpl implements + LimiteAdministrative { +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeCompositeImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeCompositeImpl.java new file mode 100644 index 0000000..d1ebf66 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeCompositeImpl.java @@ -0,0 +1,77 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package fr.ign.cogit.geoxygene.schemageo.impl.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.administratif.ChefLieu; +import fr.ign.cogit.geoxygene.schemageo.api.administratif.UniteAdministrativeComposite; +import fr.ign.cogit.geoxygene.schemageo.impl.support.partition.ZoneCompositeImpl; + +/** + * @author JGaffuri 21 octobre 2009 + * + */ +public class UniteAdministrativeCompositeImpl extends ZoneCompositeImpl + implements UniteAdministrativeComposite { + + /** + * le chef lieu eventuel de l'objet + */ + private ChefLieu chefLieu = null; + + @Override + public ChefLieu getChefLieu() { + return this.chefLieu; + } + + @Override + public void setChefLieu(ChefLieu chefLieu) { + this.chefLieu = chefLieu; + } + + /** + * le code de l'objet + */ + private String code = null; + + @Override + public String getCode() { + return this.code; + } + + @Override + public void setCode(String code) { + this.code = code; + } + + /** + * le nom de l'objet + */ + private String nom = null; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeElementaireImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeElementaireImpl.java new file mode 100644 index 0000000..01e7d6b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeElementaireImpl.java @@ -0,0 +1,30 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package fr.ign.cogit.geoxygene.schemageo.impl.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.administratif.UniteAdministrativeElementaire; + +/** + * @author JGaffuri 21 octobre 2009 + * + */ +public class UniteAdministrativeElementaireImpl extends UniteAdministrativeImpl + implements UniteAdministrativeElementaire { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeImpl.java new file mode 100644 index 0000000..bd8c34a --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/administratif/UniteAdministrativeImpl.java @@ -0,0 +1,79 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.administratif; + +import fr.ign.cogit.geoxygene.schemageo.api.administratif.ChefLieu; +import fr.ign.cogit.geoxygene.schemageo.api.administratif.UniteAdministrative; +import fr.ign.cogit.geoxygene.schemageo.impl.support.partition.ZoneImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class UniteAdministrativeImpl extends ZoneImpl implements + UniteAdministrative { + + /** + * le chef lieu eventuel de l'objet + */ + private ChefLieu chefLieu = null; + + @Override + public ChefLieu getChefLieu() { + return this.chefLieu; + } + + @Override + public void setChefLieu(ChefLieu chefLieu) { + this.chefLieu = chefLieu; + } + + /** + * le code de l'objet + */ + private String code = null; + + @Override + public String getCode() { + return this.code; + } + + @Override + public void setCode(String code) { + this.code = code; + } + + /** + * le nom de l'objet + */ + private String nom = null; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/AlignementImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/AlignementImpl.java new file mode 100644 index 0000000..3f8e9ee --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/AlignementImpl.java @@ -0,0 +1,43 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.bati; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Alignement; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Ilot; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MesoImpl; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public class AlignementImpl extends MesoImpl implements Alignement { + + public AlignementImpl(IGeometry geom) { + super(geom); + } + + @Override + public Ilot getMeso() { + return (Ilot) super.getMeso(); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/AutreConstructionImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/AutreConstructionImpl.java new file mode 100644 index 0000000..3ed8a1f --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/AutreConstructionImpl.java @@ -0,0 +1,40 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.bati; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.bati.AutreConstruction; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MicroImpl; + +/** + * toute autre construction qui n'est pas un batiment + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class AutreConstructionImpl extends MicroImpl implements + AutreConstruction { + + public AutreConstructionImpl(IGeometry geom) { + super(geom); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/BatimentImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/BatimentImpl.java new file mode 100644 index 0000000..05da2f5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/BatimentImpl.java @@ -0,0 +1,112 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.bati; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IPolygon; +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Batiment; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MicroImpl; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class BatimentImpl extends MicroImpl implements Batiment { + + /** + * Constructeur simple avec seulement la géométrie + * @param geom + */ + public BatimentImpl(IGeometry geom) { + super(geom); + } + + /** + * Constructeur à partir des caractaréristiques du bâtiment (nature et + * hauteur) et de sa géométrie. + * @param geom + * @param nature + * @param hauteur + */ + public BatimentImpl(IPolygon geom, String nature, double hauteur) { + super(geom); + } + + /** + * l'altitude maximale de l'objet + */ + private double zMax; + + @Override + public double getZMax() { + return this.zMax; + } + + @Override + public void setZMax(double zMax) { + this.zMax = zMax; + } + + /** + * l'altitude minimale de l'objet + */ + private double zMin; + + @Override + public double getZMin() { + return this.zMin; + } + + @Override + public void setZMin(double zMin) { + this.zMin = zMin; + } + + /** + * la hauteur de l'objet + */ + private double hauteur; + + @Override + public double getHauteur() { + return this.hauteur; + } + + @Override + public void setHauteur(double hauteur) { + this.hauteur = hauteur; + } + + /** + * la nature du bâtiment + */ + private String nature; + + @Override + public String getNature() { + return this.nature; + } + + @Override + public void setNature(String n) { + this.nature = n; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/IlotImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/IlotImpl.java new file mode 100644 index 0000000..cab725b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/IlotImpl.java @@ -0,0 +1,58 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.bati; + +import java.util.Collection; +import java.util.HashSet; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Ilot; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Quartier; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MesoImpl; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public class IlotImpl extends MesoImpl implements Ilot { + + public IlotImpl(IGeometry geom) { + super(geom); + this.arcsReseaux = new HashSet(); + } + + @Override + public Quartier getMeso() { + return (Quartier) super.getMeso(); + } + + /** + * les arcs de reseau limitrophes ou contenus dans l'ilot + */ + private Collection arcsReseaux; + + @Override + public Collection getArcsReseaux() { + return this.arcsReseaux; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/QuartierImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/QuartierImpl.java new file mode 100644 index 0000000..295cb41 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/QuartierImpl.java @@ -0,0 +1,43 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.bati; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Quartier; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Ville; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MesoImpl; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public class QuartierImpl extends MesoImpl implements Quartier { + + public QuartierImpl(IGeometry geom) { + super(geom); + } + + @Override + public Ville getMeso() { + return (Ville) super.getMeso(); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/VilleImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/VilleImpl.java new file mode 100644 index 0000000..a859487 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/bati/VilleImpl.java @@ -0,0 +1,37 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.bati; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.bati.Ville; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.MesoImpl; + +/** + * @author JGaffuri 20 juil. 2009 + * + */ +public class VilleImpl extends MesoImpl implements Ville { + + public VilleImpl(IGeometry geom) { + super(geom); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/AireTriageImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/AireTriageImpl.java new file mode 100644 index 0000000..9b4194c --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/AireTriageImpl.java @@ -0,0 +1,33 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.ferre.AireTriage; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ElementZonalReseauImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class AireTriageImpl extends ElementZonalReseauImpl implements + AireTriage { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/LigneDeCheminDeFerImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/LigneDeCheminDeFerImpl.java new file mode 100644 index 0000000..9e34f46 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/LigneDeCheminDeFerImpl.java @@ -0,0 +1,66 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.ferre.LigneDeCheminDeFer; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.AgregatReseauImpl; + +/** + * ligne de chemin de fer (exemple: le train des pigne, la petite ceinture, + * ligne Marseille - Vintimille, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class LigneDeCheminDeFerImpl extends AgregatReseauImpl implements + LigneDeCheminDeFer { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * le caractere touristique de l'objet + */ + private boolean touristique = false; + + @Override + public boolean isTouristique() { + return this.touristique; + } + + @Override + public void setTouristique(boolean touristique) { + this.touristique = touristique; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/NoeudFerreImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/NoeudFerreImpl.java new file mode 100644 index 0000000..0ea9cc6 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/NoeudFerreImpl.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.ferre.NoeudFerre; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.NoeudReseauImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class NoeudFerreImpl extends NoeudReseauImpl implements NoeudFerre { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/TronconCableImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/TronconCableImpl.java new file mode 100644 index 0000000..d681957 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/TronconCableImpl.java @@ -0,0 +1,88 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.ferre; + +import fr.ign.cogit.geoxygene.schemageo.api.ferre.TronconCable; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ArcReseauImpl; + +/** + * telepherique, remontee mecanique, funiculaire, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class TronconCableImpl extends ArcReseauImpl implements TronconCable { + + /** + * l'altitude maximale de l'objet + */ + private double zMax; + + @Override + public double getZMax() { + return this.zMax; + } + + @Override + public void setZMax(double zMax) { + this.zMax = zMax; + } + + /** + * l'altitude minimale de l'objet + */ + private double zMin; + + @Override + public double getZMin() { + return this.zMin; + } + + @Override + public void setZMin(double zMin) { + this.zMin = zMin; + } + + private double zIni = 0; + + @Override + public double getZIni() { + return this.zIni; + } + + @Override + public void setZIni(double zIni) { + this.zIni = zIni; + } + + private double zFin = 0; + + @Override + public double getZFin() { + return this.zFin; + } + + @Override + public void setZFin(double zFin) { + this.zFin = zFin; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/TronconFerreImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/TronconFerreImpl.java new file mode 100644 index 0000000..0ee1909 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/ferre/TronconFerreImpl.java @@ -0,0 +1,135 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.ferre; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; +import fr.ign.cogit.geoxygene.schemageo.api.ferre.TronconFerre; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ArcReseauImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class TronconFerreImpl extends ArcReseauImpl implements TronconFerre { + + public TronconFerreImpl(Reseau res, boolean estFictif, ICurve geom, + int importance) { + super(res, estFictif, geom, importance); + } + + private String energie = ""; + + @Override + public String getEnergie() { + return this.energie; + } + + @Override + public void setEnergie(String energie) { + this.energie = energie; + } + + private int nombreVoies = 0; + + @Override + public int getNombreVoies() { + return this.nombreVoies; + } + + @Override + public void setNombreVoies(int nombreVoies) { + this.nombreVoies = nombreVoies; + } + + private String largeurVoie = ""; + + @Override + public String getLargeurVoie() { + return this.largeurVoie; + } + + @Override + public void setLargeurVoie(String largeurVoie) { + this.largeurVoie = largeurVoie; + } + + private int positionParRapportAuSol = 0; + + @Override + public int getPositionParRapportAuSol() { + return this.positionParRapportAuSol; + } + + @Override + public void setPositionParRapportAuSol(int positionParRapportAuSol) { + this.positionParRapportAuSol = positionParRapportAuSol; + } + + private String classement = ""; + + @Override + public String getClassement() { + return this.classement; + } + + @Override + public void setClassement(String classement) { + this.classement = classement; + } + + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + private double zIni = 0; + + @Override + public double getZIni() { + return this.zIni; + } + + @Override + public void setZIni(double zIni) { + this.zIni = zIni; + } + + private double zFin = 0; + + @Override + public double getZFin() { + return this.zFin; + } + + @Override + public void setZFin(double zFin) { + this.zFin = zFin; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/CoursDEauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/CoursDEauImpl.java new file mode 100644 index 0000000..5ee8c9d --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/CoursDEauImpl.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.hydro; + +import fr.ign.cogit.geoxygene.schemageo.api.hydro.CoursDEau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.AgregatReseauImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class CoursDEauImpl extends AgregatReseauImpl implements CoursDEau { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/NoeudHydrographiqueImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/NoeudHydrographiqueImpl.java new file mode 100644 index 0000000..ab19adc --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/NoeudHydrographiqueImpl.java @@ -0,0 +1,78 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.hydro; + +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOJeu.FeatureType; +import fr.ign.cogit.geoxygene.schemageo.api.hydro.NoeudHydrographique; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.NoeudReseauImpl; + +/** + * Noeud du reseau routier + certains points d'eau (sources, pertes, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class NoeudHydrographiqueImpl extends NoeudReseauImpl implements + NoeudHydrographique { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * le type + */ + private FeatureType type; + + public FeatureType getType() { + return this.type; + } + + public void setType(FeatureType type) { + this.type = type; + } + + /** + * la cote + */ + private double cote = 0; + + @Override + public double getCote() { + return this.cote; + } + + @Override + public void setCote(double cote) { + this.cote = cote; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/PointDEauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/PointDEauImpl.java new file mode 100644 index 0000000..801ce99 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/PointDEauImpl.java @@ -0,0 +1,108 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.hydro; + +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOJeu.FeatureType; +import fr.ign.cogit.geoxygene.schemageo.api.hydro.PointDEau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ElementPonctuelReseauImpl; + +/** + * point d'eau, reservoir (?), point d'eau isole, toponyme de surface hydro (?) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class PointDEauImpl extends ElementPonctuelReseauImpl implements + PointDEau { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * le type + */ + private FeatureType type; + + public FeatureType getType() { + return this.type; + } + + public void setType(FeatureType type) { + this.type = type; + } + + /** + * l'altitude maximale de l'objet + */ + private double zMax; + + @Override + public double getZMax() { + return this.zMax; + } + + @Override + public void setZMax(double zMax) { + this.zMax = zMax; + } + + /** + * l'altitude minimale de l'objet + */ + private double zMin; + + @Override + public double getZMin() { + return this.zMin; + } + + @Override + public void setZMin(double zMin) { + this.zMin = zMin; + } + + /** + * la hauteur de l'objet + */ + private double hauteur; + + @Override + public double getHauteur() { + return this.hauteur; + } + + @Override + public void setHauteur(double hauteur) { + this.hauteur = hauteur; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/SurfaceDEauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/SurfaceDEauImpl.java new file mode 100644 index 0000000..7147c4e --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/SurfaceDEauImpl.java @@ -0,0 +1,107 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.hydro; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IPolygon; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOJeu.FeatureType; +import fr.ign.cogit.geoxygene.schemageo.api.hydro.Regime; +import fr.ign.cogit.geoxygene.schemageo.api.hydro.SurfaceDEau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ElementZonalReseauImpl; + +/** + * lacs, etendues d'eau diverses representees sous forme surfacique + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class SurfaceDEauImpl extends ElementZonalReseauImpl implements + SurfaceDEau { + + public SurfaceDEauImpl() { + super(); + } + + public SurfaceDEauImpl(Reseau res, IPolygon geom) { + this(); + this.setReseau(res); + this.setGeom(geom); + } + + /** + * le type + */ + private FeatureType type; + + public FeatureType getType() { + return this.type; + } + + public void setType(FeatureType type) { + this.type = type; + } + + /** + * le nom + */ + private String nom = ""; //$NON-NLS-1$ + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * l'altitude moyenne de l'objet + */ + private double zMoy; + + @Override + public double getZMoy() { + return this.zMoy; + } + + @Override + public void setZMoy(double zMoy) { + this.zMoy = zMoy; + } + + /** + * le regime + */ + private Regime regime; + + @Override + public Regime getRegime() { + return this.regime; + } + + @Override + public void setRegime(Regime regime) { + this.regime = regime; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/TronconHydrographiqueImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/TronconHydrographiqueImpl.java new file mode 100644 index 0000000..5442176 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/TronconHydrographiqueImpl.java @@ -0,0 +1,141 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.hydro; + +import javax.persistence.Entity; +import javax.persistence.Table; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; +import fr.ign.cogit.geoxygene.schemageo.api.hydro.Regime; +import fr.ign.cogit.geoxygene.schemageo.api.hydro.TronconHydrographique; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ArcReseauImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +@Entity +@Table(name = "troncon_hydrographique") +public class TronconHydrographiqueImpl extends ArcReseauImpl + implements TronconHydrographique { + + /** + * @param res + * @param estFictif + */ + public TronconHydrographiqueImpl(Reseau res, boolean estFictif, ICurve geom, + int importance) { + super(res, estFictif, geom, importance); + } + + public TronconHydrographiqueImpl() { + super(); + } + + /** + * le nom + */ + private String nom = ""; //$NON-NLS-1$ + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + private boolean artificiel = false; + + @Override + public boolean isArtificiel() { + return this.artificiel; + } + + @Override + public void setArtificiel(boolean artificiel) { + this.artificiel = artificiel; + } + + private int positionParRapportAuSol = 0; + + @Override + public int getPositionParRapportAuSol() { + return this.positionParRapportAuSol; + } + + @Override + public void setPositionParRapportAuSol(int positionParRapportAuSol) { + this.positionParRapportAuSol = positionParRapportAuSol; + } + + private Regime regime; + + @Override + public Regime getRegime() { + return this.regime; + } + + @Override + public void setRegime(Regime regime) { + this.regime = regime; + } + + private double zIni = 0; + + @Override + public double getZIni() { + return this.zIni; + } + + @Override + public void setZIni(double zIni) { + this.zIni = zIni; + } + + private double zFin = 0; + + @Override + public double getZFin() { + return this.zFin; + } + + @Override + public void setZFin(double zFin) { + this.zFin = zFin; + } + + private double largeur = 0; + + @Override + public double getLargeur() { + return this.largeur; + } + + @Override + public void setLargeur(double largeur) { + this.largeur = largeur; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/TronconLaisseImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/TronconLaisseImpl.java new file mode 100644 index 0000000..56f1883 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/hydro/TronconLaisseImpl.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author G. Touya 14 janvier 2013 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.hydro; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; +import fr.ign.cogit.geoxygene.schemageo.api.hydro.TronconLaisse; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ArcReseauImpl; + +public class TronconLaisseImpl extends ArcReseauImpl implements TronconLaisse { + + private HauteurLaisse hauteur = HauteurLaisse.HAUTE_MER; + + public void setHauteur(HauteurLaisse hauteur) { + this.hauteur = hauteur; + } + + @Override + public HauteurLaisse getHauteur() { + return hauteur; + } + + public TronconLaisseImpl(Reseau res, boolean fictif, ICurve geom, + int importance, HauteurLaisse hauteur) { + super(res, fictif, geom, importance); + this.hauteur = hauteur; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/occSol/ElementIsoleImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/occSol/ElementIsoleImpl.java new file mode 100644 index 0000000..71a3115 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/occSol/ElementIsoleImpl.java @@ -0,0 +1,33 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.occSol; + +import fr.ign.cogit.geoxygene.schemageo.api.occSol.ElementIsole; +import fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants.ElementIndependantImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class ElementIsoleImpl extends ElementIndependantImpl implements + ElementIsole { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/occSol/ZoneOccSolImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/occSol/ZoneOccSolImpl.java new file mode 100644 index 0000000..104952b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/occSol/ZoneOccSolImpl.java @@ -0,0 +1,32 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.occSol; + +import fr.ign.cogit.geoxygene.schemageo.api.occSol.ZoneOccSol; +import fr.ign.cogit.geoxygene.schemageo.impl.support.partition.ZoneImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class ZoneOccSolImpl extends ZoneImpl implements ZoneOccSol { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/CourbeDeNiveauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/CourbeDeNiveauImpl.java new file mode 100644 index 0000000..3ce005b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/CourbeDeNiveauImpl.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.relief; + +import javax.persistence.Entity; +import javax.persistence.Table; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; +import fr.ign.cogit.geoxygene.schemageo.api.relief.CourbeDeNiveau; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampContinu; +import fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu.IsoligneImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +@Entity +@Table(name = "courbe_de_niveau") +public class CourbeDeNiveauImpl extends IsoligneImpl implements CourbeDeNiveau { + + public CourbeDeNiveauImpl(ChampContinu champContinu, double valeur, + ICurve geom) { + super(champContinu, valeur, geom); + } + + public CourbeDeNiveauImpl() { + super(); + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/ElementCaracteristiqueDuReliefImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/ElementCaracteristiqueDuReliefImpl.java new file mode 100644 index 0000000..09de3b8 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/ElementCaracteristiqueDuReliefImpl.java @@ -0,0 +1,42 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.relief; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.relief.ElementCaracteristiqueDuRelief; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampContinu; +import fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu.ElementCaracteristiqueImpl; + +/** + * ligne orographique, oronyme, point cote, talus, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class ElementCaracteristiqueDuReliefImpl extends + ElementCaracteristiqueImpl implements ElementCaracteristiqueDuRelief { + + public ElementCaracteristiqueDuReliefImpl(ChampContinu champContinu, + IGeometry geom) { + super(champContinu, geom); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/MNTImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/MNTImpl.java new file mode 100644 index 0000000..bdb628e --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/MNTImpl.java @@ -0,0 +1,32 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.relief; + +import fr.ign.cogit.geoxygene.schemageo.api.relief.MNT; +import fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu.ChampContinuImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class MNTImpl extends ChampContinuImpl implements MNT { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/PointDuReliefImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/PointDuReliefImpl.java new file mode 100644 index 0000000..827a020 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/relief/PointDuReliefImpl.java @@ -0,0 +1,30 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package fr.ign.cogit.geoxygene.schemageo.impl.relief; + +import fr.ign.cogit.geoxygene.schemageo.api.relief.PointDuRelief; +import fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu.PointCoteImpl; + +/** + * @author JGaffuri + * + */ +public class PointDuReliefImpl extends PointCoteImpl implements PointDuRelief { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/CarrefourComplexeImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/CarrefourComplexeImpl.java new file mode 100644 index 0000000..eca682b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/CarrefourComplexeImpl.java @@ -0,0 +1,75 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.routier; + +import java.util.HashSet; + +import fr.ign.cogit.geoxygene.schemageo.api.routier.CarrefourComplexe; +import fr.ign.cogit.geoxygene.schemageo.api.routier.TronconDeRoute; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.AgregatReseauImpl; + +/** + * carrefour complexe du reseau routier (rond-point, echangeur, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class CarrefourComplexeImpl extends AgregatReseauImpl implements + CarrefourComplexe { + + /** + * le nom + */ + private String nom = ""; //$NON-NLS-1$ + private HashSet routesInternes; + private HashSet routesExternes; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + @Override + public HashSet getRoutesExternes() { + return routesInternes; + } + + @Override + public HashSet getRoutesInternes() { + return routesExternes; + } + + @Override + public void setRoutesExternes(HashSet routesExternes) { + this.routesExternes = routesExternes; + } + + @Override + public void setRoutesInternes(HashSet routesInternes) { + this.routesInternes = routesInternes; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/EquipementRoutierImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/EquipementRoutierImpl.java new file mode 100644 index 0000000..f5131cd --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/EquipementRoutierImpl.java @@ -0,0 +1,50 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.routier; + +import fr.ign.cogit.geoxygene.schemageo.api.routier.EquipementRoutier; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ElementPonctuelReseauImpl; + +/** + * element ponctuel de reseau routier + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class EquipementRoutierImpl extends ElementPonctuelReseauImpl implements + EquipementRoutier { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/NoeudRoutierImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/NoeudRoutierImpl.java new file mode 100644 index 0000000..f80c34b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/NoeudRoutierImpl.java @@ -0,0 +1,62 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.routier; + +import java.util.HashSet; +import java.util.Set; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; +import fr.ign.cogit.geoxygene.schemageo.api.routier.NoeudRoutier; +import fr.ign.cogit.geoxygene.schemageo.api.routier.TronconDeRoute; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.NoeudReseauImpl; + +/** + * @author julien Gaffuri 26 juin 2009 + * + */ +public class NoeudRoutierImpl extends NoeudReseauImpl implements NoeudRoutier { + + public NoeudRoutierImpl(Reseau res, IPoint geom) { + this.setReseau(res); + this.setGeom(geom); + } + + public NoeudRoutierImpl() { + super(); + } + + @Override + public int getDegre() { + return this.getArcsEntrants().size() + this.getArcsSortants().size(); + } + + @Override + public Set getRoutes() { + HashSet routes = new HashSet(); + for (ArcReseau troncon : this.getArcsEntrants()) + routes.add((TronconDeRoute) troncon); + for (ArcReseau troncon : this.getArcsSortants()) + routes.add((TronconDeRoute) troncon); + return routes; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/RouteItineraireImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/RouteItineraireImpl.java new file mode 100644 index 0000000..4e6c1f9 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/RouteItineraireImpl.java @@ -0,0 +1,52 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.routier; + +import fr.ign.cogit.geoxygene.schemageo.api.routier.RouteItineraire; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.AgregatReseauImpl; + +/** + * + * Itineraire routier (exemple: paris - marseille) ou route nommee (exemple: la + * route des vins d'aix, la route Napoleon, la route des cretes, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class RouteItineraireImpl extends AgregatReseauImpl implements + RouteItineraire { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/SurfaceRouteImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/SurfaceRouteImpl.java new file mode 100644 index 0000000..74602d7 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/SurfaceRouteImpl.java @@ -0,0 +1,54 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.routier; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IPolygon; +import fr.ign.cogit.geoxygene.schemageo.api.routier.SurfaceRoute; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ElementZonalReseauImpl; + +/** + * surface de route, peage, etc. + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class SurfaceRouteImpl extends ElementZonalReseauImpl implements + SurfaceRoute { + + /** + * le nom + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + public SurfaceRouteImpl(IPolygon polygon) { + this.geom = polygon; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/TronconDeRouteImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/TronconDeRouteImpl.java new file mode 100644 index 0000000..d7bd36e --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/routier/TronconDeRouteImpl.java @@ -0,0 +1,133 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 26 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.routier; + +import java.util.Date; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; +import fr.ign.cogit.geoxygene.schemageo.api.routier.TronconDeRoute; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; +import fr.ign.cogit.geoxygene.schemageo.impl.support.reseau.ArcReseauImpl; + +/** + * troncon de transport routier (route, chemin, GR, etc.) + * + * @author julien Gaffuri 26 juin 2009 + * + */ +public class TronconDeRouteImpl extends ArcReseauImpl + implements TronconDeRoute { + + public TronconDeRouteImpl(Reseau res, boolean estFictif, ICurve geom, + int importance) { + super(res, estFictif, geom, importance); + } + + private int nombreDeVoies = 0; + + @Override + public int getNombreDeVoies() { + return this.nombreDeVoies; + } + + @Override + public void setNombreDeVoies(int nombreDeVoies) { + this.nombreDeVoies = nombreDeVoies; + } + + private Date dateMiseEnService = null; + + @Override + public Date getDateMiseEnService() { + return this.dateMiseEnService; + } + + @Override + public void setDateMiseEnService(Date dateMiseEnService) { + this.dateMiseEnService = dateMiseEnService; + } + + private String etatPhysique = ""; + + @Override + public String getEtatPhysique() { + return this.etatPhysique; + } + + @Override + public void setEtatPhysique(String etatPhysique) { + this.etatPhysique = etatPhysique; + } + + private String acces = ""; + + @Override + public String getAcces() { + return this.acces; + } + + @Override + public void setAcces(String acces) { + this.acces = acces; + } + + private double zIni = 0; + + @Override + public double getzIni() { + return this.zIni; + } + + @Override + public void setzIni(double zIni) { + this.zIni = zIni; + } + + private double zFin = 0; + + @Override + public double getzFin() { + return this.zFin; + } + + @Override + public void setzFin(double zFin) { + this.zFin = zFin; + } + + private String nomItineraire = ""; + + @Override + public String getNomItineraire() { + return this.nomItineraire; + } + + @Override + public void setNomItineraire(String nomItineraire) { + this.nomItineraire = nomItineraire; + } + + @Override + public int getImportance() { + return super.getImportance(); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampContinuImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampContinuImpl.java new file mode 100644 index 0000000..fa04467 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampContinuImpl.java @@ -0,0 +1,128 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu; + +import java.util.Collection; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Transient; + +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampContinu; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ElementCaracteristique; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.Isoligne; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.PointCote; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +@Entity +@Table(name = "champ_continu") +public class ChampContinuImpl implements ChampContinu { + + /** + * l'id de l'objet + */ + private int id = 0; + + @Override + @Id + @GeneratedValue + public int getId() { + return this.id; + } + + @Override + public void setId(int id) { + this.id = id; + } + + /** + * le nom de l'objet + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * les elements caracteristiques de l'objet + */ + @Transient + private Collection elementsCaracteristiques = new FT_FeatureCollection(); + + // @Override + @Override + @Transient + public Collection getElementsCaracteristiques() { + return this.elementsCaracteristiques; + } + + @Override + public void setElementsCaracteristiques( + Collection elementsCaracteristiques) { + this.elementsCaracteristiques = elementsCaracteristiques; + } + + /** + * les isolignes de l'objet + */ + private Collection isolignes = new FT_FeatureCollection(); + + @Override + @OneToMany(mappedBy = "champContinu", targetEntity = IsoligneImpl.class) + public Collection getIsolignes() { + return this.isolignes; + } + + @Override + public void setIsolignes(Collection isolignes) { + this.isolignes = isolignes; + } + + /** + * les points cotes de l'objet + */ + private Collection pointsCotes = new FT_FeatureCollection(); + + @Override + public Collection getPointsCotes() { + return this.pointsCotes; + } + + @Override + public void setPointsCotes(Collection pointsCotes) { + this.pointsCotes = pointsCotes; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampGrilleImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampGrilleImpl.java new file mode 100644 index 0000000..03384ea --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampGrilleImpl.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IGriddedSurface; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampGrille; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ChampGrilleImpl extends ChampContinuImpl implements ChampGrille { + + /** + * la geometrie grille de l'objet + */ + private IGriddedSurface griddedSurface = null; + + @Override + public IGriddedSurface getGeom() { + return this.griddedSurface; + } + + @Override + public void setGeom(IGriddedSurface griddedSurface) { + this.griddedSurface = griddedSurface; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampTINImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampTINImpl.java new file mode 100644 index 0000000..e7c2500 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ChampTINImpl.java @@ -0,0 +1,47 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.ITin; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampTIN; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ChampTINImpl extends ChampContinuImpl implements ChampTIN { + + /** + * la geometrie TIN de l'objet + */ + private ITin tin = null; + + @Override + public ITin getGeom() { + return this.tin; + } + + @Override + public void setGeom(ITin tin) { + this.tin = tin; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ElementCaracteristiqueImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ElementCaracteristiqueImpl.java new file mode 100644 index 0000000..3759a51 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/ElementCaracteristiqueImpl.java @@ -0,0 +1,61 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampContinu; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ElementCaracteristique; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ElementCaracteristiqueImpl extends DefaultFeature implements + ElementCaracteristique { + + /** + * le constructeur par defaut + * + * @param champContinu + * @param geom + */ + public ElementCaracteristiqueImpl(ChampContinu champContinu, IGeometry geom) { + this.setChampContinu(champContinu); + this.setGeom(geom); + } + + /** + * le champ continu auquel l'objet appartient + */ + private ChampContinu champContinu = null; + + @Override + public ChampContinu getChampContinu() { + return this.champContinu; + } + + @Override + public void setChampContinu(ChampContinu champContinu) { + this.champContinu = champContinu; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/IsoligneImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/IsoligneImpl.java new file mode 100644 index 0000000..5bb4efb --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/IsoligneImpl.java @@ -0,0 +1,106 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import org.hibernate.annotations.Type; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampContinu; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.Isoligne; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +@Entity +@Table(name = "isoligne") +public class IsoligneImpl extends DefaultFeature implements Isoligne { + + /** + * constructeur + * + * @param champContinu + * @param valeur + * @param geom + */ + public IsoligneImpl(ChampContinu champContinu, double valeur, ICurve geom) { + this(); + this.setChampContinu(champContinu); + this.setValeur(valeur); + this.setGeom(geom); + } + + public IsoligneImpl() { + super(); + } + + /** + * la valeur de l'objet + */ + private double valeur = 0; + + @Override + public double getValeur() { + return this.valeur; + } + + @Override + public void setValeur(double valeur) { + this.valeur = valeur; + } + + /** + * le champ continu de l'objet + */ + private ChampContinu champContinu = null; + + @Override + @ManyToOne(targetEntity = ChampContinuImpl.class) + public ChampContinu getChampContinu() { + return this.champContinu; + } + + @Override + public void setChampContinu(ChampContinu champContinu) { + this.champContinu = champContinu; + } + + @Override + @Type(type = "fr.ign.cogit.geoxygene.datatools.hibernate.GeOxygeneGeometryUserType") + public ICurve getGeom() { + return (ICurve) super.getGeom(); + } + + @Override + @Id + @GeneratedValue + public int getId() { + return super.getId(); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/PointCoteImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/PointCoteImpl.java new file mode 100644 index 0000000..6e3aeb2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/champContinu/PointCoteImpl.java @@ -0,0 +1,77 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.champContinu; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.ChampContinu; +import fr.ign.cogit.geoxygene.schemageo.api.support.champContinu.PointCote; + +/** + * @author julien Gaffuri 21 octobre 2009 + * + */ +public class PointCoteImpl extends DefaultFeature implements PointCote { + + public PointCoteImpl(ChampContinu champContinu, double valeur, IPoint geom) { + this(); + this.setChampContinu(champContinu); + this.setValeur(valeur); + this.setGeom(geom); + } + + public PointCoteImpl() { + super(); + } + + @Override + public IPoint getGeom() { + return (IPoint) super.getGeom(); + } + + /** + * le champ continu de l'objet + */ + private ChampContinu champContinu = null; + + @Override + public ChampContinu getChampContinu() { + return this.champContinu; + } + + @Override + public void setChampContinu(ChampContinu champContinu) { + this.champContinu = champContinu; + } + + /** + * la valeur de l'objet + */ + private double valeur = 0; + + @Override + public double getValeur() { + return this.valeur; + } + + @Override + public void setValeur(double valeur) { + this.valeur = valeur; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/ElementIndependantImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/ElementIndependantImpl.java new file mode 100644 index 0000000..8b57ec3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/ElementIndependantImpl.java @@ -0,0 +1,49 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants; + +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.ElementIndependant; +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Meso; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public abstract class ElementIndependantImpl extends DefaultFeature implements + ElementIndependant { + + /** + * le meso (eventuel) dont l'objet est composant + */ + private Meso meso = null; + + @Override + public Meso getMeso() { + return this.meso; + } + + @Override + public void setMeso(Meso meso) { + this.meso = meso; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/MesoImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/MesoImpl.java new file mode 100644 index 0000000..1890d5a --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/MesoImpl.java @@ -0,0 +1,69 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.ElementIndependant; +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Meso; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class MesoImpl extends ElementIndependantImpl implements Meso { + + /** + * constructeur par defaut + * + * @param geom + */ + public MesoImpl(IGeometry geom) { + this(geom, new FT_FeatureCollection()); + } + + /** + * @param geom + * @param composants + */ + public MesoImpl(IGeometry geom, Collection composants) { + this.setGeom(geom); + this.setComposants(composants); + } + + /** + * les composants de l'objet + */ + private Collection composants = null; + + @Override + public Collection getComposants() { + return this.composants; + } + + @Override + public void setComposants(Collection composants) { + this.composants = composants; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/MicroImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/MicroImpl.java new file mode 100644 index 0000000..4e5b947 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/elementsIndependants/MicroImpl.java @@ -0,0 +1,41 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.elementsIndependants; + +import fr.ign.cogit.geoxygene.api.spatial.geomroot.IGeometry; +import fr.ign.cogit.geoxygene.schemageo.api.support.elementsIndependants.Micro; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class MicroImpl extends ElementIndependantImpl implements Micro { + + /** + * constructeur par defaut + * + * @param geom + */ + public MicroImpl(IGeometry geom) { + this.setGeom(geom); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/LimiteImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/LimiteImpl.java new file mode 100644 index 0000000..6d4b28b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/LimiteImpl.java @@ -0,0 +1,52 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.partition; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.ILineString; +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Limite; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Zone; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class LimiteImpl extends DefaultFeature implements Limite { + + /** + * les zones dont l'objet est limite + */ + private Collection zones = new FT_FeatureCollection(); + + @Override + public Collection getZones() { + return this.zones; + } + + @Override + public ILineString getGeom() { + return (ILineString) super.getGeom(); + }; + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/PartitionImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/PartitionImpl.java new file mode 100644 index 0000000..b4d0f59 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/PartitionImpl.java @@ -0,0 +1,75 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.partition; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Partition; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Zone; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class PartitionImpl implements Partition { + + /** + * l'id de l'objet + */ + private int id = 0; + + @Override + public int getId() { + return this.id; + } + + @Override + public void setId(int id) { + this.id = id; + } + + /** + * le nom de l'objet + */ + private String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * les zones de la partition + */ + private Collection zones = new FT_FeatureCollection(); + + @Override + public Collection getZones() { + return this.zones; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneCompositeImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneCompositeImpl.java new file mode 100644 index 0000000..f0063e8 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneCompositeImpl.java @@ -0,0 +1,49 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.partition; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Zone; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.ZoneComposite; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ZoneCompositeImpl extends ZoneImpl implements ZoneComposite { + + /** + * les zones composant l'objet + */ + private Collection zones = new FT_FeatureCollection(); + + @Override + public Collection getZones() { + return this.zones; + } + + @Override + public void setZones(Collection zones) { + this.zones = zones; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneElementaireImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneElementaireImpl.java new file mode 100644 index 0000000..4aee9b3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneElementaireImpl.java @@ -0,0 +1,31 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.partition; + +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.ZoneElementaire; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ZoneElementaireImpl extends ZoneImpl implements ZoneElementaire { + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneImpl.java new file mode 100644 index 0000000..c956856 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/partition/ZoneImpl.java @@ -0,0 +1,89 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.partition; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.spatial.geomaggr.IMultiSurface; +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Limite; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Partition; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.Zone; +import fr.ign.cogit.geoxygene.schemageo.api.support.partition.ZoneComposite; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +public abstract class ZoneImpl extends DefaultFeature implements Zone { + + /** + * la partition a laquelle l'objet appartient + */ + private Partition partition = null; + + @Override + public Partition getPartition() { + return this.partition; + } + + @Override + public void setPartition(Partition partition) { + this.partition = partition; + } + + /** + * les limites de la zone + */ + Collection limites = new FT_FeatureCollection(); + + @Override + public Collection getLimites() { + return this.limites; + } + + @Override + public void setLimites(Collection limites) { + this.limites = limites; + } + + /** + * les zones composees auxquelles la zone appartient eventuellement + */ + private Collection zonesComposees = new FT_FeatureCollection(); + + @Override + public Collection getZonesComposees() { + return this.zonesComposees; + } + + @Override + public void setZonesComposees(Collection zonesComposees) { + this.zonesComposees = zonesComposees; + } + + @Override + public IMultiSurface getGeom() { + return (IMultiSurface) super.getGeom(); + }; + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/AgregatReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/AgregatReseauImpl.java new file mode 100644 index 0000000..5d3ea1c --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/AgregatReseauImpl.java @@ -0,0 +1,102 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.AgregatReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Franchissement; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.NoeudReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.PassePar; + +/** + * agregat d'elements du reseau (ex: itineraire, riviere, echangeur, rond-point, + * etc.) + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public class AgregatReseauImpl extends DefaultFeature implements AgregatReseau { + + /** + * les noeuds de l'agregat + */ + private Collection noeuds = new FT_FeatureCollection(); + + @Override + public Collection getNoeuds() { + return this.noeuds; + } + + @Override + public void setNoeuds(Collection noeuds) { + this.noeuds = noeuds; + } + + /** + * les arcs de l'agregat + */ + private Collection arcs = new FT_FeatureCollection(); + + @Override + public Collection getArcs() { + return this.arcs; + } + + @Override + public void setArcs(Collection arcs) { + this.arcs = arcs; + } + + /** + * les franchissements de l'agregat + */ + private Collection franchissements = new FT_FeatureCollection(); + + @Override + public Collection getFranchissements() { + return this.franchissements; + } + + @Override + public void setFranchissements(Collection franchissements) { + this.franchissements = franchissements; + } + + /** + * les passages de l'agregat + */ + private Collection passePar = new FT_FeatureCollection(); + + @Override + public Collection getPassepar() { + return this.passePar; + } + + @Override + public void setPassePar(Collection passePar) { + this.passePar = passePar; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ArcReseauFlagPairImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ArcReseauFlagPairImpl.java new file mode 100644 index 0000000..63c5151 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ArcReseauFlagPairImpl.java @@ -0,0 +1,42 @@ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseauFlagPair; + +/** + * @author JTeulade-Denantes + * + * This class allows to have a flag related to an arcReseau + * It's used in Stroke class to get arcReseau direction into the stroke + */ +public class ArcReseauFlagPairImpl implements ArcReseauFlagPair { + + public ArcReseauFlagPairImpl(ArcReseau arcReseau, boolean flag) { + super(); + this.arcReseau = arcReseau; + this.flag = flag; + } + + public ArcReseauFlagPairImpl(ArcReseau arcReseau) { + super(); + this.arcReseau = arcReseau; + this.flag = true; + } + + private ArcReseau arcReseau; + private boolean flag; + + public ArcReseau getArcReseau() { + return arcReseau; + } + public void setArcReseau(ArcReseau arcReseau) { + this.arcReseau = arcReseau; + } + public boolean getFlag() { + return flag; + } + public void setFlag(boolean flag) { + this.flag = flag; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ArcReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ArcReseauImpl.java new file mode 100644 index 0000000..5a8db83 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ArcReseauImpl.java @@ -0,0 +1,159 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import java.util.Collection; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import org.hibernate.annotations.Type; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.ICurve; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Direction; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.NoeudReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.PassePar; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +@Entity +@Table(name = "arc_reseau") +public class ArcReseauImpl extends ElementDuReseauImpl implements ArcReseau { + + /** + * constructeur par defaut + * + * @param res + * @param fictif + */ + public ArcReseauImpl(Reseau res, boolean fictif, ICurve geom, + int importance) { + this(); + this.setReseau(res); + this.setFictif(fictif); + this.setGeom(geom); + this.setImportance(importance); + } + + public ArcReseauImpl() { + super(); + } + + @Override + @Type(type = "fr.ign.cogit.geoxygene.datatools.hibernate.GeOxygeneGeometryUserType") + public ICurve getGeom() { + return (ICurve) super.getGeom(); + } + + /** + * indique si l'arc est fictif ou non + */ + private boolean fictif = false; + + @Override + public boolean isFictif() { + return this.fictif; + } + + @Override + public void setFictif(boolean fictif) { + this.fictif = fictif; + } + + /** + * donne la direction de l'arc + */ + private Direction direction = Direction.INCONNU; + + @Override + public Direction getDirection() { + return this.direction; + } + + @Override + public void setDirection(Direction direction) { + this.direction = direction; + } + + /** + * le noeud final de l'arc + */ + private NoeudReseau noeudFinal = null; + + @Override + public NoeudReseau getNoeudFinal() { + return this.noeudFinal; + } + + @Override + public void setNoeudFinal(NoeudReseau noeudFinal) { + this.noeudFinal = noeudFinal; + } + + /** + * le noeud initial de l'arc + */ + private NoeudReseau noeudInitial = null; + + @Override + public NoeudReseau getNoeudInitial() { + return this.noeudInitial; + } + + @Override + public void setNoeudInitial(NoeudReseau noeudInitial) { + this.noeudInitial = noeudInitial; + } + + /** + * + */ + private Collection passePar = new FT_FeatureCollection(); + + @Override + public Collection getPassePar() { + return this.passePar; + } + + @Override + @ManyToOne(targetEntity = ReseauImpl.class) + public Reseau getReseau() { + return super.getReseau(); + } + + private int importance = 0; + + @Override + public int getImportance() { + return importance; + } + + @Override + public void setImportance(int importance) { + this.importance = importance; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementDuReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementDuReseauImpl.java new file mode 100644 index 0000000..c40043b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementDuReseauImpl.java @@ -0,0 +1,89 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import java.util.ArrayList; +import java.util.Collection; + +import javax.persistence.Entity; +import javax.persistence.Table; + +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.AgregatReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementDuReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementLieAuReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; + +/** + * @author julien Gaffuri 25 juin 2009 + * + */ +@Entity +@Table(name = "element_reseau") +public abstract class ElementDuReseauImpl extends DefaultFeature implements + ElementDuReseau { + + /** + * les elements de reseau lies a l'objet + */ + private Collection elementsLies = new FT_FeatureCollection(); + + @Override + public Collection getElementsLies() { + return this.elementsLies; + } + + /** + * les agregats que composent l'objet + */ + private Collection agregats = new ArrayList(); + + @Override + public Collection getAgregats() { + return this.agregats; + } + + /** + * le reseau auquel appartient l'objet + */ + private Reseau reseau; + + @Override + public Reseau getReseau() { + return this.reseau; + } + + @Override + public void setReseau(Reseau reseau) { + this.reseau = reseau; + } + + /** + * elements non topologiques lies a l'objet + */ + private Collection elementLieAuReseau; + + @Override + public Collection getElementsLiesAuReseau() { + return this.elementLieAuReseau; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementLieAuReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementLieAuReseauImpl.java new file mode 100644 index 0000000..949e5e3 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementLieAuReseauImpl.java @@ -0,0 +1,66 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.feature.DefaultFeature; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementDuReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementLieAuReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; + +/** + * represente les elements lies thematiquement au reseau mais sans incidence sur + * la topologie + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ElementLieAuReseauImpl extends DefaultFeature implements + ElementLieAuReseau { + + /** + * le reseau + */ + Reseau reseau = null; + + @Override + public Reseau getReseau() { + return this.reseau; + } + + @Override + public void setReseau(Reseau reseau) { + this.reseau = reseau; + } + + /** + * les elements topologiques du reseau auxquel l'objet est lie + */ + Collection elementsDuReseau = new FT_FeatureCollection(); + + @Override + public Collection getElementsDuReseau() { + return this.elementsDuReseau; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementPonctuelReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementPonctuelReseauImpl.java new file mode 100644 index 0000000..fd33dc2 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementPonctuelReseauImpl.java @@ -0,0 +1,40 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementPonctuelReseau; + +/** + * exemple: equipement le long d'une route, point de captage hydro, etc. + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ElementPonctuelReseauImpl extends ElementLieAuReseauImpl implements + ElementPonctuelReseau { + + @Override + public IPoint getGeom() { + return (IPoint) super.getGeom(); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementZonalReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementZonalReseauImpl.java new file mode 100644 index 0000000..8690f1b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ElementZonalReseauImpl.java @@ -0,0 +1,40 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IPolygon; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementZonalReseau; + +/** + * exemple: aire de peage, riviere large, etc. + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public class ElementZonalReseauImpl extends ElementLieAuReseauImpl implements + ElementZonalReseau { + + @Override + public IPolygon getGeom() { + return (IPolygon) super.getGeom(); + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/FranchissementImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/FranchissementImpl.java new file mode 100644 index 0000000..cb99da5 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/FranchissementImpl.java @@ -0,0 +1,54 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import java.util.Collection; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Franchissement; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.PassePar; + +/** + * permet de modeliser les franchissements sans noeud (comme dans la BD carto) + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public class FranchissementImpl extends ElementDuReseauImpl implements + Franchissement { + + @Override + public IPoint getGeom() { + return (IPoint) super.getGeom(); + }; + + /** + * les objets passage + */ + Collection passePar = new FT_FeatureCollection(); + + @Override + public Collection getPassePar() { + return this.passePar; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/NoeudReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/NoeudReseauImpl.java new file mode 100644 index 0000000..6a083ba --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/NoeudReseauImpl.java @@ -0,0 +1,194 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import fr.ign.cogit.geoxygene.api.spatial.coordgeom.IDirectPosition; +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.NoeudReseau; + +/** + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public class NoeudReseauImpl extends ElementDuReseauImpl implements NoeudReseau { + + @Override + public IPoint getGeom() { + return (IPoint) super.getGeom(); + } + + /** + * les arcs entrants du noeud + */ + private Collection arcsEntrants = new FT_FeatureCollection(); + + @Override + public Collection getArcsEntrants() { + return this.arcsEntrants; + } + + /** + * les arcs sortants du noeud + */ + private Collection arcsSortants = new FT_FeatureCollection(); + + @Override + public Collection getArcsSortants() { + return this.arcsSortants; + } + + /** + * @author JTeulade-Denantes + * + * this function takes all the arcs related to the node in order to sort them in a clockwise direction + * @return the list node arcs in a clockwise direction + */ + public List getClockwiseArcs() { + + IDirectPosition positionNode = this.getGeom().getPosition(); + //the position of each node arc + IDirectPosition positionArc; + List> comparatorList = new ArrayList>(); + + for (ArcReseau arc : this.getArcsEntrants()) { + //for arcs going in the node, the last point is the node itself, that's why we need the second last one + positionArc = arc.getGeom().coord().get(arc.getGeom().coord().size()-2); + //we add the orientation between the two positions to the comparatorList + comparatorList.add(new Pair(arc,positionArc.orientation(positionNode))); + } + + for (ArcReseau arc : this.getArcsSortants()) { + //for arcs going out the node, the first point is the node itself, that's why we need the second one + positionArc = arc.getGeom().coord().get(1); + comparatorList.add(new Pair(arc,positionArc.orientation(positionNode))); + } + + //we sort the list according to the angles + Collections.sort(comparatorList, new Comparator>(){ + public int compare(Pair p1, Pair p2) { + return -p1.second().compareTo(p2.second()); + } + }); + + //we return only the arcs without the angle related + List arcReseauList = new ArrayList(); + for (Pair arcReseauPair : comparatorList) { + arcReseauList.add(arcReseauPair.first()); + } + return arcReseauList; + + } + + + /** + * @author JTeulade-Denantes + * + * this function returns the arcs included between two arcs in a clockwise or counterclockwise direction + * @param firstArc + * @param secondArc + * @param clockwise + * @return the list of arcs + */ + public List clockwiseSelectedArcs(ArcReseau firstArc, ArcReseau secondArc, boolean clockwise) { + //we get back sorted list + List clockwiseArcs = this.getClockwiseArcs(); + + //we find the indexes of firstArc and secondArc in clockwiseArcs + int firstArcIndex = clockwiseArcs.indexOf(firstArc); + int secondArcIndex = clockwiseArcs.indexOf(secondArc); + + //we check whether firstArc and secondArc have been found in clockwiseArcs + if (firstArcIndex==-1 || secondArcIndex==-1) { + logger.info("error in clockwiseArcsCount function: one of the arcs doesn't belong to the current node"); + return new ArrayList(); + } + + if (secondArcIndex > firstArcIndex) { + if (clockwise) { + clockwiseArcs = clockwiseArcs.subList(firstArcIndex+1, secondArcIndex); + } else { + clockwiseArcs.removeAll(clockwiseArcs.subList(firstArcIndex, secondArcIndex+1)); + } + } else if (secondArcIndex < firstArcIndex) { + if (clockwise) { + clockwiseArcs.removeAll(clockwiseArcs.subList(secondArcIndex, firstArcIndex+1)); + } else { + clockwiseArcs = clockwiseArcs.subList(secondArcIndex+1, firstArcIndex); + } + } + return clockwiseArcs; + } + + /** + * + * @author JTeulade-Denantes + * + * @param + * @param + */ + private class Pair + { + private A element1; + + private B element2; + + public Pair(){} + + public Pair(A element1, B element2) + { + this.element1 = element1; + this.element2 = element2; + } + + public A first() + { + return element1; + } + + public B second() + { + return element2; + } + public String toString() + { + return "(" + element1 + "," + element2 + ")"; + } + + public void set1(A element1) + { + this.element1 = element1; + } + + public void set2(B element2) + { + this.element2 = element2; + } + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/PasseParImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/PasseParImpl.java new file mode 100644 index 0000000..834aade --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/PasseParImpl.java @@ -0,0 +1,87 @@ +/* + * + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 25 juin 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import fr.ign.cogit.geoxygene.api.spatial.geomprim.IPoint; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ArcReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Franchissement; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.PassePar; + +/** + * (peut-etre inutile sous forme de classe; a voir a l'usage) + * + * @author julien Gaffuri 25 juin 2009 + * + */ +public class PasseParImpl extends ElementDuReseauImpl implements PassePar { + + @Override + public IPoint getGeom() { + return this.getFranchissement().getGeom(); + } + + /** + * l'arc concerne pas la relation passe par + */ + private ArcReseau arc = null; + + @Override + public ArcReseau getArc() { + return this.arc; + } + + @Override + public void setArc(ArcReseau arc) { + this.arc = arc; + } + + /** + * le franchissement concerne pas la relation passe par + */ + private Franchissement franchissement = null; + + @Override + public Franchissement getFranchissement() { + return this.franchissement; + } + + @Override + public void setFranchissement(Franchissement franchissement) { + this.franchissement = franchissement; + } + + /** + * le niveau + */ + private int niveau = 0; + + @Override + public int getNiveau() { + return this.niveau; + } + + @Override + public void setNiveau(int niveau) { + this.niveau = niveau; + } + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ReseauImpl.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ReseauImpl.java new file mode 100644 index 0000000..a1233fe --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/impl/support/reseau/ReseauImpl.java @@ -0,0 +1,64 @@ +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at + * providing an open framework which implements OGC/ISO specifications for the + * development and deployment of geographic (GIS) applications. It is a open + * source contribution of the COGIT laboratory at the Institut Géographique + * National (the French National Mapping Agency). See: + * http://oxygene-project.sourceforge.net Copyright (C) 2005 Institut + * Géographique National This library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the License, + * or any later version. This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser + * General Public License for more details. You should have received a copy of + * the GNU Lesser General Public License along with this library (see file + * LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 + * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @author julien Gaffuri 20 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.impl.support.reseau; + +import java.util.Collection; + +import javax.persistence.Entity; +import javax.persistence.Table; + +import fr.ign.cogit.geoxygene.feature.FT_FeatureCollection; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.ElementLieAuReseau; +import fr.ign.cogit.geoxygene.schemageo.api.support.reseau.Reseau; + +/** + * @author julien Gaffuri 20 juil. 2009 + * + */ +@Entity +@Table(name = "reseau") +public class ReseauImpl extends AgregatReseauImpl implements Reseau { + + /** + * le nom de l'objet + */ + String nom = ""; + + @Override + public String getNom() { + return this.nom; + } + + @Override + public void setNom(String nom) { + this.nom = nom; + } + + /** + * elements non topologiques lies au reseau + */ + Collection elementsLiesAuReseau = new FT_FeatureCollection(); + + @Override + public Collection getElementsLiesAuReseau() { + return this.elementsLiesAuReseau; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/SchemaGeoxygene.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/SchemaGeoxygene.java new file mode 100644 index 0000000..e2c616b --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/SchemaGeoxygene.java @@ -0,0 +1,67 @@ +/** + * @author julien Gaffuri 8 juil. 2009 + */ +package fr.ign.cogit.geoxygene.schemageo.schema; + +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOJeu.AttributeType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOJeu.FeatureType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOJeu.SchemaConceptuelJeu; + +/** + * @author julien Gaffuri 8 juil. 2009 + * + */ +public class SchemaGeoxygene { + + private static SchemaConceptuelJeu schGeox = null; + + public static SchemaConceptuelJeu getSchemaGeoxygene() { + if (SchemaGeoxygene.schGeox == null) { + SchemaGeoxygene.schGeox = new SchemaConceptuelJeu(); + SchemaGeoxygene.schGeox.setDefinition("Schema generique de GeOxygene"); + SchemaGeoxygene.schGeox.setNomSchema("Schema GeOxygene"); + + SchemaGeoxygene.schGeox.createFeatureType("TronconDeRoute"); + FeatureType tronconDeRoute = (SchemaGeoxygene.schGeox + .getFeatureTypeByName("TronconDeRoute")); + tronconDeRoute + .setDefinition("Portion de voie de communication destinée aux automobiles, homogène pour l'ensemble des attributs et des relations qui la concernent. Représente uniquement la chaussée, délimitée par les bas-côtés ou les trottoirs."); + tronconDeRoute.setIsAbstract(false); + + // Attribut Nature + SchemaGeoxygene.schGeox.createFeatureAttribute(tronconDeRoute, "Nature", + "string", true); + AttributeType nature1 = tronconDeRoute + .getFeatureAttributeByName("Nature"); + nature1 + .setDefinition("Hiérarchiqation du réseau routier basée sur l'importance des tronçons de route pour le trafic routier."); + SchemaGeoxygene.schGeox.createFeatureAttributeValue(nature1, + "Autoroutière"); + SchemaGeoxygene.schGeox + .createFeatureAttributeValue(nature1, "Principale"); + SchemaGeoxygene.schGeox.createFeatureAttributeValue(nature1, "Régionale"); + + } + return SchemaGeoxygene.schGeox; + } + + /* + * public static void main(String[] args) { creeSchemaPostGIS(); } + * + * public static void creeSchemaPostGIS() { DataSet.db = new + * GeodatabaseOjbPostgis(); DataSet.db.begin(); + * + * //creation d’un dataset DataSet dataset1 = new DataSet(); + * dataset1.setAppartientA(null); dataset1.setDate("07/2009"); + * dataset1.setId(1); dataset1.setNom("Jeu de données test "); + * dataset1.setPersistant(true); dataset1.setProduit(new Produit()); + * dataset1.setTypeBD("BD GeOxygene"); dataset1.setModele("Structuré"); + * + * dataset1.setSchemaConceptuel(getSchemaGeoxygene()); + * getSchemaGeoxygene().setDataset(dataset1); + * + * DataSet.db.makePersistent(getSchemaGeoxygene()); + * DataSet.db.makePersistent(dataset1); DataSet.db.commit(); } + */ + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/ContexteSchemasSingleton.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/ContexteSchemasSingleton.java new file mode 100644 index 0000000..f444e88 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/ContexteSchemasSingleton.java @@ -0,0 +1,114 @@ +package fr.ign.cogit.geoxygene.schemageo.schema.exnathalie; +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at providing an open framework which implements OGC/ISO specifications for the development and deployment of geographic (GIS) applications. It is a open source contribution of the COGIT laboratory at the Institut Géographique National (the French National Mapping Agency). See: http://oxygene-project.sourceforge.net + * Copyright (C) 2005 Institut Géographique National + * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library (see file LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import fr.ign.cogit.geoxygene.api.schema.ConceptualSchema; + +public class ContexteSchemasSingleton { + + // Instance unique de la classe + private static ContexteSchemasSingleton contexteSchemas; + + /** Méthode qui renvoie notre instance de classe "ContexteSchemasSingleton" */ + public static synchronized ContexteSchemasSingleton getContexteSchemaSingleton() { + if (ContexteSchemasSingleton.contexteSchemas == null) { + ContexteSchemasSingleton.contexteSchemas = new ContexteSchemasSingleton(); + } + return ContexteSchemasSingleton.contexteSchemas; + } + + // Méthode qui empêche le clonage de cette classe + @Override + public Object clone() throws CloneNotSupportedException { + throw new CloneNotSupportedException(); + } + + // Constructeur privé + private ContexteSchemasSingleton() { + this.schemasDisponibles = new ArrayList>(); + this.schemasDisponibles.clear(); + /* + * this.modelisationsSchemaRef = new ArrayList(); + * this.modelisationsSchemaRef.clear(); this.modelisationsSchemaApp = new + * ArrayList(); this.modelisationsSchemaApp.clear(); + */ + } + + /** Liste des schémas disponibles */ + private List> schemasDisponibles; + + public void setSchemasDisponibles(List> s) { + this.schemasDisponibles = s; + } + + public void addSchemaDisponible(ConceptualSchema s) { + if (!this.schemasDisponibles.contains(s)) { + this.schemasDisponibles.add(s); + } else { + return; + } + } + + public void removeSchemaDisponible(ConceptualSchema s) { + if (this.schemasDisponibles.contains(s)) { + this.schemasDisponibles.remove(s); + } else { + return; + } + } + + public List> getSchemaDisponibles() { + return this.schemasDisponibles; + } + + /** Renvoie un schéma défini par son nom */ + public ConceptualSchema getSchemaDisponibleParNom(String nom) { + ConceptualSchema s = null; + Iterator> it = this.schemasDisponibles.iterator(); + while (it.hasNext()) { + ConceptualSchema schema = it.next(); + if (schema.getNomSchema() == nom) { + s = schema; + } else { + continue; + } + } + return s; + } + + /** + * Liste des procedures de représentation disponibles pour le schéma de + * référence + */ + /* + * private List modelisationsSchemaRef; public void + * setModelisationsSchemaRef(List + * m){this.modelisationsSchemaRef=m;} public void + * addModelisationsSchemaRef(Modelisation m){ if + * (!this.modelisationsSchemaRef. + * contains(m)){this.modelisationsSchemaRef.add(m);} else{return;}} public + * List getModelisationsSchemaRef(){return + * this.modelisationsSchemaRef;} + */ + /** + * Liste des procedures de représentation disponibles pour le schéma à + * apparier + */ + /* + * private List modelisationsSchemaApp; public void + * setModelisationsSchemaApp(List + * m){this.modelisationsSchemaApp=m;} public void + * addModelisationsSchemaApp(Modelisation m){ if + * (!this.modelisationsSchemaApp. + * contains(m)){this.modelisationsSchemaApp.add(m);} else{return;}} public + * List getModelisationsSchemaApp(){return + * this.modelisationsSchemaApp;} + */ + +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/SchemaBDCarto3Nat.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/SchemaBDCarto3Nat.java new file mode 100644 index 0000000..fd06270 --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/SchemaBDCarto3Nat.java @@ -0,0 +1,2554 @@ +package fr.ign.cogit.geoxygene.schemageo.schema.exnathalie; +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at providing an open framework which implements OGC/ISO specifications for the development and deployment of geographic (GIS) applications. It is a open source contribution of the COGIT laboratory at the Institut Géographique National (the French National Mapping Agency). See: http://oxygene-project.sourceforge.net + * Copyright (C) 2005 Institut Géographique National + * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library (see file LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +import java.util.List; + +import fr.ign.cogit.geoxygene.api.feature.type.FC_FeatureAttributeValue; +import fr.ign.cogit.geoxygene.api.feature.type.GF_AttributeType; +import fr.ign.cogit.geoxygene.api.feature.type.GF_FeatureType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOProduit.AttributeType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOProduit.FeatureType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOProduit.SchemaConceptuelProduit; + +public class SchemaBDCarto3Nat { + + /** + * Crée le schéma de la BDCarto. + * @return le schéma de produit de la BDCarto selon le modèle ISO + */ + public static SchemaConceptuelProduit creeSchemaBDCarto3() { + + /*************************************************************************** + * Creation du catalogue de la base de données * + ************************************************************************/ + SchemaConceptuelProduit sProduit = new SchemaConceptuelProduit(); + sProduit.setNomSchema("Catalogue BDCARTO"); + sProduit.setBD("BDCARTO V3"); + sProduit.setTagBD(1); + sProduit.setDate("juin 2005"); + sProduit.setVersion("3"); + sProduit.setSource("Photogrammétrie"); + sProduit.setSujet("Composante topographique du RGE"); + + /*************************************************************************** + * Ajout du thème "Bâtiments, sites touristiques" * + ************************************************************************/ + + // Classe Zone d'habitat/////////////////////////////////////////////////// + + sProduit.createFeatureType("Zone d'habitat"); + FeatureType zoneDHabitat = (FeatureType) (sProduit + .getFeatureTypeByName("Zone d'habitat")); + zoneDHabitat.setDefinition(""); + zoneDHabitat.setIsAbstract(false); + // Attribut Importance + sProduit.createFeatureAttribute(zoneDHabitat, "Importance", "string", true); + AttributeType importance1 = zoneDHabitat + .getFeatureAttributeByName("Importance"); + importance1.setDefinition(""); + sProduit.createFeatureAttributeValue(importance1, "Sans objet"); + sProduit.createFeatureAttributeValue(importance1, "Chef-lieu de commune"); + sProduit.createFeatureAttributeValue(importance1, "Quartier de ville"); + sProduit.createFeatureAttributeValue(importance1, "Hameau"); + + // Attribut Présence d'un office de tourisme + sProduit.createFeatureAttribute(zoneDHabitat, + "Présence d'un office de tourisme", "string", true); + AttributeType presenceDUnOfficeDeTourisme = zoneDHabitat + .getFeatureAttributeByName("Présence d'un office de tourisme"); + presenceDUnOfficeDeTourisme.setDefinition(""); + sProduit.createFeatureAttributeValue(presenceDUnOfficeDeTourisme, + "Sans objet"); + sProduit.createFeatureAttributeValue(presenceDUnOfficeDeTourisme, "Oui"); + sProduit.createFeatureAttributeValue(presenceDUnOfficeDeTourisme, "Non"); + + // Attribut Activités culturelles + sProduit.createFeatureAttribute(zoneDHabitat, "Activités culturelles", + "string", true); + AttributeType activitesCulturelles = zoneDHabitat + .getFeatureAttributeByName("Activités culturelles"); + activitesCulturelles.setDefinition(""); + sProduit.createFeatureAttributeValue(activitesCulturelles, "Sans objet"); + sProduit.createFeatureAttributeValue(activitesCulturelles, "Pas de musée"); + sProduit.createFeatureAttributeValue(activitesCulturelles, + "Présence d'un ou plusieurs musées hors ville d'art"); + sProduit.createFeatureAttributeValue(activitesCulturelles, "Ville d'art"); + + // Attribut Station thermale + sProduit.createFeatureAttribute(zoneDHabitat, "Station thermale", "string", + true); + AttributeType stationThermale = zoneDHabitat + .getFeatureAttributeByName("Station thermale"); + stationThermale.setDefinition(""); + sProduit.createFeatureAttributeValue(stationThermale, "Sans objet"); + sProduit.createFeatureAttributeValue(stationThermale, "Oui"); + sProduit.createFeatureAttributeValue(stationThermale, "Non"); + + // Attribut Station verte + sProduit.createFeatureAttribute(zoneDHabitat, "Station verte", "string", + true); + AttributeType stationVerte = zoneDHabitat + .getFeatureAttributeByName("Station verte"); + stationVerte.setDefinition(""); + sProduit.createFeatureAttributeValue(stationVerte, "Sans objet"); + sProduit.createFeatureAttributeValue(stationVerte, "Oui"); + sProduit.createFeatureAttributeValue(stationVerte, "Non"); + + // Attribut Station balnéaire + sProduit.createFeatureAttribute(zoneDHabitat, "Station balnéaire", + "string", true); + AttributeType stationBalneaire = zoneDHabitat + .getFeatureAttributeByName("Station balnéaire"); + stationBalneaire.setDefinition(""); + sProduit.createFeatureAttributeValue(stationBalneaire, "Sans objet"); + sProduit.createFeatureAttributeValue(stationBalneaire, "Oui"); + sProduit.createFeatureAttributeValue(stationBalneaire, "Non"); + + // Attribut Station de sports d'hiver + sProduit.createFeatureAttribute(zoneDHabitat, "Station de sports d'hiver", + "string", true); + AttributeType stationDeSportsDHiver = zoneDHabitat + .getFeatureAttributeByName("Station de sports d'hiver"); + stationDeSportsDHiver.setDefinition(""); + sProduit.createFeatureAttributeValue(stationDeSportsDHiver, "Sans objet"); + sProduit.createFeatureAttributeValue(stationDeSportsDHiver, "Ski alpin"); + sProduit.createFeatureAttributeValue(stationDeSportsDHiver, "Ski de fond"); + sProduit.createFeatureAttributeValue(stationDeSportsDHiver, + "Ski alpin et ski de fond"); + sProduit.createFeatureAttributeValue(stationDeSportsDHiver, "Non"); + + // Attribut Patrimoine architectural + sProduit.createFeatureAttribute(zoneDHabitat, "Patrimoine architectural", + "string", true); + AttributeType patrimoineArchitectural = zoneDHabitat + .getFeatureAttributeByName("Patrimoine architectural"); + patrimoineArchitectural.setDefinition(""); + sProduit.createFeatureAttributeValue(patrimoineArchitectural, "Sans objet"); + sProduit.createFeatureAttributeValue(patrimoineArchitectural, "Oui"); + sProduit.createFeatureAttributeValue(patrimoineArchitectural, "Non"); + + // Attribut Importance touristique + sProduit.createFeatureAttribute(zoneDHabitat, "Importance touristique", + "string", true); + AttributeType importanceTouristique = zoneDHabitat + .getFeatureAttributeByName("Importance touristique"); + importanceTouristique.setDefinition(""); + sProduit.createFeatureAttributeValue(importanceTouristique, "Sans objet"); + sProduit.createFeatureAttributeValue(importanceTouristique, + "Sans interêt touristique"); + sProduit.createFeatureAttributeValue(importanceTouristique, + "Importance locale"); + sProduit.createFeatureAttributeValue(importanceTouristique, + "Importance régionale"); + sProduit.createFeatureAttributeValue(importanceTouristique, + "Importance nationale"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(zoneDHabitat, "Toponyme", "string", false); + AttributeType toponyme = zoneDHabitat.getFeatureAttributeByName("Toponyme"); + toponyme.setDefinition(""); + + // Attribut Classification + sProduit.createFeatureAttribute(zoneDHabitat, "Classification", "string", + true); + AttributeType classification = zoneDHabitat + .getFeatureAttributeByName("Classification"); + classification.setDefinition(""); + sProduit.createFeatureAttributeValue(classification, "Plus de 99950 hab"); + sProduit + .createFeatureAttributeValue(classification, "De 24950 à 99949 hab"); + sProduit.createFeatureAttributeValue(classification, "De 4950 à 24949 hab"); + sProduit.createFeatureAttributeValue(classification, "De 950 à 4949 hab"); + sProduit.createFeatureAttributeValue(classification, "De 175 à 949 hab"); + sProduit.createFeatureAttributeValue(classification, + "Moins de 174hab quartiers de plus de 20 bâtiments"); + sProduit.createFeatureAttributeValue(classification, + "Groupes d'habitations de 4 à 10 feux ou quartier de 8 à 20 bâtiments"); + sProduit.createFeatureAttributeValue(classification, + "Groupes d'habitations de 2 à 3 feux ou quartier de 4 à 7 bâtiments"); + + // Classe Zone d'activités + + sProduit.createFeatureType("Zone d'activité"); + FeatureType zoneDActivites = (FeatureType) (sProduit + .getFeatureTypeByName("Zone d'activité")); + zoneDActivites.setDefinition(""); + zoneDActivites.setIsAbstract(false); + // Attribut Toponyme + sProduit + .createFeatureAttribute(zoneDActivites, "Toponyme", "string", false); + AttributeType toponyme2 = zoneDActivites + .getFeatureAttributeByName("Toponyme"); + toponyme2.setDefinition(""); + + // Classe Etablissement administratif ou + // public/////////////////////////////////////////////////// + + sProduit.createFeatureType("Etablissement administratif ou public"); + FeatureType etablissementAdministratifOuPublic = (FeatureType) (sProduit + .getFeatureTypeByName("Etablissement administratif ou public")); + etablissementAdministratifOuPublic.setDefinition(""); + etablissementAdministratifOuPublic.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(etablissementAdministratifOuPublic, + "Nature", "string", true); + AttributeType nature1 = etablissementAdministratifOuPublic + .getFeatureAttributeByName("Nature"); + nature1.setDefinition(""); + sProduit.createFeatureAttributeValue(nature1, "Préfecture"); + sProduit.createFeatureAttributeValue(nature1, "Hôtel départemental"); + sProduit.createFeatureAttributeValue(nature1, "Hôtel régional"); + sProduit.createFeatureAttributeValue(nature1, "Hôpital"); + sProduit + .createFeatureAttributeValue(nature1, "Etablisement d'enseignement"); + sProduit.createFeatureAttributeValue(nature1, "Aérogare"); + sProduit.createFeatureAttributeValue(nature1, "Office du tourisme"); + sProduit.createFeatureAttributeValue(nature1, "Mairie"); + sProduit.createFeatureAttributeValue(nature1, "Palais de justice"); + + // Attribut Monument historique + sProduit.createFeatureAttribute(etablissementAdministratifOuPublic, + "Monument historique", "string", true); + AttributeType monumentHistorique = etablissementAdministratifOuPublic + .getFeatureAttributeByName("Monument historique"); + monumentHistorique.setDefinition(""); + sProduit.createFeatureAttributeValue(monumentHistorique, "Non classé"); + sProduit.createFeatureAttributeValue(monumentHistorique, "Inscrit"); + sProduit.createFeatureAttributeValue(monumentHistorique, "Classé"); + + // Attribut Présence d'un musée + sProduit.createFeatureAttribute(etablissementAdministratifOuPublic, + "Présence d'un musée", "string", true); + AttributeType presenceDUnMusee = etablissementAdministratifOuPublic + .getFeatureAttributeByName("Présence d'un musée"); + presenceDUnMusee.setDefinition(""); + sProduit.createFeatureAttributeValue(presenceDUnMusee, "Oui"); + sProduit.createFeatureAttributeValue(presenceDUnMusee, "Non"); + + // Attribut Importance touristique + sProduit.createFeatureAttribute(etablissementAdministratifOuPublic, + "Importance touristique", "string", true); + AttributeType importanceTouristique2 = etablissementAdministratifOuPublic + .getFeatureAttributeByName("Importance touristique"); + importanceTouristique2.setDefinition(""); + sProduit.createFeatureAttributeValue(importanceTouristique2, "Sans objet"); + sProduit.createFeatureAttributeValue(importanceTouristique2, + "Sans interêt touristique"); + sProduit.createFeatureAttributeValue(importanceTouristique2, + "Importance locale"); + sProduit.createFeatureAttributeValue(importanceTouristique2, + "Importance régionale"); + sProduit.createFeatureAttributeValue(importanceTouristique2, + "Importance nationale"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(etablissementAdministratifOuPublic, + "Toponyme", "string", false); + AttributeType toponyme3 = etablissementAdministratifOuPublic + .getFeatureAttributeByName("Toponyme"); + toponyme3.setDefinition(""); + + // Classe Bâtiments remarquables à vocation relgieuse ou touristique + + sProduit + .createFeatureType("Bâtiments remarquables à vocation relgieuse ou touristique"); + FeatureType batimentsRemarquablesAVocationRelgieuseOuTouristique = (FeatureType) (sProduit + .getFeatureTypeByName("Bâtiments remarquables à vocation relgieuse ou touristique")); + batimentsRemarquablesAVocationRelgieuseOuTouristique.setDefinition(""); + batimentsRemarquablesAVocationRelgieuseOuTouristique.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute( + batimentsRemarquablesAVocationRelgieuseOuTouristique, "Nature", + "string", true); + AttributeType nature2 = batimentsRemarquablesAVocationRelgieuseOuTouristique + .getFeatureAttributeByName("Nature"); + nature2.setDefinition(""); + sProduit.createFeatureAttributeValue(nature2, "Edifice religieux chrétien"); + sProduit.createFeatureAttributeValue(nature2, "Mosquée"); + sProduit.createFeatureAttributeValue(nature2, "Synagogue"); + sProduit.createFeatureAttributeValue(nature2, + "Edifice religieux d'autre confession"); + sProduit.createFeatureAttributeValue(nature2, "Phare"); + sProduit.createFeatureAttributeValue(nature2, "Château"); + sProduit.createFeatureAttributeValue(nature2, "Musée"); + sProduit.createFeatureAttributeValue(nature2, + "Autre bâtiment d'importance touristique"); + sProduit.createFeatureAttributeValue(nature2, "Maison du parc"); + + // Attribut Orientation + sProduit.createFeatureAttribute( + batimentsRemarquablesAVocationRelgieuseOuTouristique, "Orientation", + "string", false); + AttributeType orientation = batimentsRemarquablesAVocationRelgieuseOuTouristique + .getFeatureAttributeByName("Orientation"); + orientation.setDefinition(""); + + // Attribut Importance touristique + sProduit.createFeatureAttribute( + batimentsRemarquablesAVocationRelgieuseOuTouristique, + "Importance touristique", "string", true); + AttributeType importanceTouristique3 = batimentsRemarquablesAVocationRelgieuseOuTouristique + .getFeatureAttributeByName("Importance touristique"); + importanceTouristique3.setDefinition(""); + sProduit.createFeatureAttributeValue(importanceTouristique3, "Sans objet"); + sProduit.createFeatureAttributeValue(importanceTouristique3, + "Sans interêt touristique"); + sProduit.createFeatureAttributeValue(importanceTouristique3, + "Importance locale"); + sProduit.createFeatureAttributeValue(importanceTouristique3, + "Importance régionale"); + sProduit.createFeatureAttributeValue(importanceTouristique3, + "Importance nationale"); + + // Attribut Monument historique + sProduit.createFeatureAttribute( + batimentsRemarquablesAVocationRelgieuseOuTouristique, + "Monument historique", "string", true); + AttributeType monumentHistorique1 = batimentsRemarquablesAVocationRelgieuseOuTouristique + .getFeatureAttributeByName("Monument historique"); + monumentHistorique1.setDefinition(""); + sProduit.createFeatureAttributeValue(monumentHistorique1, "Non classé"); + sProduit.createFeatureAttributeValue(monumentHistorique1, "Inscrit"); + sProduit.createFeatureAttributeValue(monumentHistorique1, "Classé"); + + // Attribut Accès + sProduit.createFeatureAttribute( + batimentsRemarquablesAVocationRelgieuseOuTouristique, "Accès", + "string", true); + AttributeType acces = batimentsRemarquablesAVocationRelgieuseOuTouristique + .getFeatureAttributeByName("Accès"); + acces.setDefinition(""); + sProduit.createFeatureAttributeValue(acces, "Sans objet"); + sProduit.createFeatureAttributeValue(acces, "Ouvert au public"); + sProduit.createFeatureAttributeValue(acces, "Non ouvert au public"); + + // Attribut Présence d'un musée + sProduit.createFeatureAttribute( + batimentsRemarquablesAVocationRelgieuseOuTouristique, + "Présence d'un musée", "string", true); + AttributeType presenceDUnMusee1 = batimentsRemarquablesAVocationRelgieuseOuTouristique + .getFeatureAttributeByName("Présence d'un musée"); + presenceDUnMusee1.setDefinition(""); + sProduit.createFeatureAttributeValue(presenceDUnMusee1, "Oui"); + sProduit.createFeatureAttributeValue(presenceDUnMusee1, "Non"); + + // Attribut Toponyme + sProduit.createFeatureAttribute( + batimentsRemarquablesAVocationRelgieuseOuTouristique, "Toponyme", + "string", false); + AttributeType toponyme4 = batimentsRemarquablesAVocationRelgieuseOuTouristique + .getFeatureAttributeByName("Toponyme"); + toponyme4.setDefinition(""); + + // Classe Refuge gardé, gîte d'étape + + sProduit.createFeatureType("Refuge gardé, gîte d'étape"); + FeatureType refugeGardeGiteDEtape = (FeatureType) (sProduit + .getFeatureTypeByName("Refuge gardé, gîte d'étape")); + refugeGardeGiteDEtape.setDefinition(""); + refugeGardeGiteDEtape.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(refugeGardeGiteDEtape, "Nature", "string", + true); + AttributeType nature3 = refugeGardeGiteDEtape + .getFeatureAttributeByName("Nature"); + nature3.setDefinition(""); + sProduit.createFeatureAttributeValue(nature3, "Refuge"); + sProduit.createFeatureAttributeValue(nature3, "Gîte d'étape"); + sProduit.createFeatureAttributeValue(nature3, "Hôtel de montagne"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(refugeGardeGiteDEtape, "Toponyme", + "string", false); + AttributeType toponyme5 = refugeGardeGiteDEtape + .getFeatureAttributeByName("Toponyme"); + toponyme5.setDefinition(""); + + // Classe Equipement de loisirs + + sProduit.createFeatureType("Equipement de loisirs"); + FeatureType equipementDeLoisirs = (FeatureType) (sProduit + .getFeatureTypeByName("Equipement de loisirs")); + equipementDeLoisirs.setDefinition(""); + equipementDeLoisirs.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(equipementDeLoisirs, "Nature", "string", + true); + AttributeType nature4 = equipementDeLoisirs + .getFeatureAttributeByName("Nature"); + nature2.setDefinition(""); + sProduit.createFeatureAttributeValue(nature4, "Parc de loisirs"); + sProduit.createFeatureAttributeValue(nature4, "Terrain de golf"); + sProduit.createFeatureAttributeValue(nature4, "Parc ou jardin"); + sProduit.createFeatureAttributeValue(nature4, "Stade"); + sProduit.createFeatureAttributeValue(nature4, "Hippodrome"); + sProduit.createFeatureAttributeValue(nature4, "Circuit automobile"); + sProduit.createFeatureAttributeValue(nature4, "Port de plaisance"); + + // Attribut Importance touristique + sProduit.createFeatureAttribute(equipementDeLoisirs, + "Importance touristique", "string", true); + AttributeType importanceTouristique4 = equipementDeLoisirs + .getFeatureAttributeByName("Importance touristique"); + importanceTouristique4.setDefinition(""); + sProduit.createFeatureAttributeValue(importanceTouristique4, "Sans objet"); + sProduit.createFeatureAttributeValue(importanceTouristique4, + "Importance locale"); + sProduit.createFeatureAttributeValue(importanceTouristique4, + "Importance régionale"); + sProduit.createFeatureAttributeValue(importanceTouristique4, + "Importance nationale"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(equipementDeLoisirs, "Toponyme", "string", + false); + AttributeType toponyme6 = equipementDeLoisirs + .getFeatureAttributeByName("Toponyme"); + toponyme6.setDefinition(""); + + // Classe Table d'orientation//////////////////////////////////////////// + sProduit.createFeatureType("Table d'orientation"); + FeatureType tableDOrientation = (FeatureType) (sProduit + .getFeatureTypeByName("Table d'orientation")); + tableDOrientation.setDefinition(""); + tableDOrientation.setIsAbstract(false); + + // Classe Site et curiosité touristique////////////////////////////////// + sProduit.createFeatureType("Site et curiosité touristique"); + FeatureType siteEtCuriositeTouristique = (FeatureType) (sProduit + .getFeatureTypeByName("Site et curiosité touristique")); + siteEtCuriositeTouristique.setDefinition(""); + siteEtCuriositeTouristique.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(siteEtCuriositeTouristique, "Nature", + "string", true); + AttributeType nature5 = siteEtCuriositeTouristique + .getFeatureAttributeByName("Nature"); + nature5.setDefinition(""); + sProduit.createFeatureAttributeValue(nature5, "Grotte, goufre aménagés"); + sProduit.createFeatureAttributeValue(nature5, + "Monument mégalithique ou préhistorique"); + sProduit.createFeatureAttributeValue(nature5, "Vestige antique"); + sProduit.createFeatureAttributeValue(nature5, + "Ruine d'époque médiévale ou postérieure"); + sProduit.createFeatureAttributeValue(nature5, "Autre curiosité"); + + // Attribut Importance touristique + sProduit.createFeatureAttribute(siteEtCuriositeTouristique, + "Importance touristique", "string", true); + AttributeType importanceTouristique5 = siteEtCuriositeTouristique + .getFeatureAttributeByName("Importance touristique"); + importanceTouristique5.setDefinition(""); + sProduit.createFeatureAttributeValue(importanceTouristique5, + "Sans interêt touristique"); + sProduit.createFeatureAttributeValue(importanceTouristique5, + "Importance locale"); + sProduit.createFeatureAttributeValue(importanceTouristique5, + "Importance régionale"); + sProduit.createFeatureAttributeValue(importanceTouristique5, + "Importance nationale"); + + // Attribut Monument historique + sProduit.createFeatureAttribute(siteEtCuriositeTouristique, + "Monument historique", "string", true); + AttributeType monumentHistorique2 = siteEtCuriositeTouristique + .getFeatureAttributeByName("Monument historique"); + monumentHistorique2.setDefinition(""); + sProduit.createFeatureAttributeValue(monumentHistorique2, "Non classé"); + sProduit.createFeatureAttributeValue(monumentHistorique2, "Inscrit"); + sProduit.createFeatureAttributeValue(monumentHistorique2, "Classé"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(siteEtCuriositeTouristique, "Toponyme", + "string", false); + AttributeType toponyme7 = siteEtCuriositeTouristique + .getFeatureAttributeByName("Toponyme"); + toponyme7.setDefinition(""); + + // Classe Site sportif/////////////////////////////////////////////////// + + sProduit.createFeatureType("Site sportif"); + FeatureType siteSportif = (FeatureType) (sProduit + .getFeatureTypeByName("Site sportif")); + siteSportif.setDefinition(""); + siteSportif.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(siteSportif, "Nature", "string", true); + AttributeType nature6 = siteSportif.getFeatureAttributeByName("Nature"); + nature6.setDefinition(""); + sProduit.createFeatureAttributeValue(nature6, "Escalade"); + sProduit.createFeatureAttributeValue(nature6, "Vol libre"); + + // Attribut Importance + sProduit.createFeatureAttribute(siteSportif, "Importance", "string", true); + AttributeType importance2 = siteSportif + .getFeatureAttributeByName("Importance"); + importance2.setDefinition(""); + sProduit.createFeatureAttributeValue(importance2, "Importance locale"); + sProduit.createFeatureAttributeValue(importance2, "Importance régionale"); + sProduit.createFeatureAttributeValue(importance2, "Importance nationale"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(siteSportif, "Toponyme", "string", false); + AttributeType toponyme8 = siteSportif.getFeatureAttributeByName("Toponyme"); + toponyme8.setDefinition(""); + + // Classe Zone règlementée d'interêt touristique + + sProduit.createFeatureType("Zone règlementée d'interêt touristique"); + FeatureType zoneReglementeeDInteretTouristique = (FeatureType) (sProduit + .getFeatureTypeByName("Zone règlementée d'interêt touristique")); + zoneReglementeeDInteretTouristique.setDefinition(""); + zoneReglementeeDInteretTouristique.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(zoneReglementeeDInteretTouristique, + "Nature", "string", true); + AttributeType nature7 = zoneReglementeeDInteretTouristique + .getFeatureAttributeByName("Nature"); + nature7.setDefinition(""); + sProduit.createFeatureAttributeValue(nature7, "Parc national"); + sProduit.createFeatureAttributeValue(nature7, + "Parc national (zone périphérique)"); + sProduit.createFeatureAttributeValue(nature7, "Parc naturel régional"); + sProduit.createFeatureAttributeValue(nature7, "Forêt domaniale"); + sProduit.createFeatureAttributeValue(nature7, "Reserve naturelle"); + sProduit + .createFeatureAttributeValue(nature7, "Reserve nationale de chasse"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(zoneReglementeeDInteretTouristique, + "Toponyme", "string", false); + AttributeType toponyme9 = zoneReglementeeDInteretTouristique + .getFeatureAttributeByName("Toponyme"); + toponyme9.setDefinition(""); + + // Classe Musée non localisé + + sProduit.createFeatureType("Musée non localisé"); + FeatureType museeNonLocalise = (FeatureType) (sProduit + .getFeatureTypeByName("Musée non localisé")); + museeNonLocalise.setDefinition(""); + museeNonLocalise.setIsAbstract(false); + + // Attribut Toponyme + sProduit.createFeatureAttribute(museeNonLocalise, "Toponyme", "string", + false); + AttributeType toponyme10 = museeNonLocalise + .getFeatureAttributeByName("Toponyme"); + toponyme10.setDefinition(""); + + // Attribut Description + sProduit.createFeatureAttribute(museeNonLocalise, "Description", "string", + false); + AttributeType description = museeNonLocalise + .getFeatureAttributeByName("Description"); + description.setDefinition(""); + + // Attribut Adresse + sProduit.createFeatureAttribute(museeNonLocalise, "Adresse", "string", + false); + AttributeType adresse = museeNonLocalise + .getFeatureAttributeByName("Adresse"); + adresse.setDefinition(""); + + // Attribut Toponyme d'un objet localisé + sProduit.createFeatureAttribute(museeNonLocalise, + "Toponyme d'un objet localisé", "string", false); + AttributeType toponymeDUnObjetLocalise = museeNonLocalise + .getFeatureAttributeByName("Toponyme d'un objet localisé"); + toponymeDUnObjetLocalise.setDefinition(""); + + // Classe Fête traditionnelle et manifestation artistique + sProduit + .createFeatureType("Fête traditionnelle et manifestation artistique"); + FeatureType feteTraditionnelleEtManifestationArtistique = (FeatureType) (sProduit + .getFeatureTypeByName("Fête traditionnelle et manifestation artistique")); + feteTraditionnelleEtManifestationArtistique.setDefinition(""); + feteTraditionnelleEtManifestationArtistique.setIsAbstract(false); + + // Attribut Intitulé + sProduit.createFeatureAttribute( + feteTraditionnelleEtManifestationArtistique, "Intitulé", "string", + false); + AttributeType intitule = feteTraditionnelleEtManifestationArtistique + .getFeatureAttributeByName("Intitulé"); + intitule.setDefinition(""); + + // Attribut Description + sProduit.createFeatureAttribute( + feteTraditionnelleEtManifestationArtistique, "Description", "string", + false); + AttributeType description2 = feteTraditionnelleEtManifestationArtistique + .getFeatureAttributeByName("Description"); + description2.setDefinition(""); + + // Attribut Période + sProduit + .createFeatureAttribute(feteTraditionnelleEtManifestationArtistique, + "Période", "string", false); + AttributeType periode = feteTraditionnelleEtManifestationArtistique + .getFeatureAttributeByName("Période"); + periode.setDefinition(""); + + // Attribut Toponyme Zone d'habitat + sProduit.createFeatureAttribute( + feteTraditionnelleEtManifestationArtistique, "Toponyme Zone d'habitat", + "string", false); + AttributeType toponymeZoneDHabitat = feteTraditionnelleEtManifestationArtistique + .getFeatureAttributeByName("Toponyme Zone d'habitat"); + toponymeZoneDHabitat.setDefinition(""); + + // Attribut Commune + sProduit + .createFeatureAttribute(feteTraditionnelleEtManifestationArtistique, + "Commune", "string", false); + AttributeType commune = feteTraditionnelleEtManifestationArtistique + .getFeatureAttributeByName("Commune"); + commune.setDefinition(""); + + // relation d'association + sProduit.createFeatureAssociation("Toponyme d'un objet localisé1", + museeNonLocalise, etablissementAdministratifOuPublic, + "est localisé par", "localise"); + sProduit.createFeatureAssociation("Toponyme d'un objet localisé2", + museeNonLocalise, batimentsRemarquablesAVocationRelgieuseOuTouristique, + "est localisé par", "localise"); + sProduit.createFeatureAssociation("Toponyme d'un objet localisé3", + museeNonLocalise, siteEtCuriositeTouristique, "est localisé par", + "localise"); + sProduit.createFeatureAssociation("Toponyme d'un objet localisé4", + museeNonLocalise, zoneDHabitat, "est localisé par", "localise"); + sProduit.createFeatureAssociation("Toponyme zone d'habitat 2", + feteTraditionnelleEtManifestationArtistique, zoneDHabitat, + "est localisé par", "localise"); + + /*************************************************************************** + * Ajout du thème "Réseau routier" * + ************************************************************************/ + + // Classe Tronçon de route + + sProduit.createFeatureType("Tronçon de route"); + FeatureType tronconDeRoute = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de route")); + tronconDeRoute + .setDefinition("Cette classe comprend les tronçons de routes, chemins et sentiers. " + + "Les voies en construction sont retenues, sans raccordement au réseau existant, dans la mesure où les terrassement ont débuté sur le terrain."); + tronconDeRoute.setIsAbstract(false); + + // Attribut Vocation de liaison + sProduit.createFeatureAttribute(tronconDeRoute, "Vocation de liaison", + "string", true); + AttributeType vocationDeLiaison = tronconDeRoute + .getFeatureAttributeByName("Vocation de liaison"); + vocationDeLiaison + .setDefinition("Cet attribut matérialise une hiérarchisation du réseau routier basée non pas sur un critère administratif, " + + "mais sur l'importance des tronçons der oute pour le trafic routier. Ainsi ses 4 valeurs permettent un maillage " + + "de plus en plus dense du territoire."); + sProduit.createFeatureAttributeValue(vocationDeLiaison, "Type autoroutier"); + sProduit.createFeatureAttributeValue(vocationDeLiaison, + "Liaison principale"); + sProduit + .createFeatureAttributeValue(vocationDeLiaison, "Liaison regionale"); + sProduit.createFeatureAttributeValue(vocationDeLiaison, "Liaison locale"); + sProduit.createFeatureAttributeValue(vocationDeLiaison, "Bretelle"); + sProduit.createFeatureAttributeValue(vocationDeLiaison, "Piste cyclable"); + + // Attribut Nombre de chaussées + sProduit.createFeatureAttribute(tronconDeRoute, "Nombre de chaussées", + "string", true); + AttributeType nombreDeChaussees = tronconDeRoute + .getFeatureAttributeByName("Nombre de chaussées"); + nombreDeChaussees.setDefinition(""); + sProduit.createFeatureAttributeValue(nombreDeChaussees, "1 chaussée"); + sProduit.createFeatureAttributeValue(nombreDeChaussees, "2 chaussées"); + + // Attribut Nombre total de voies + sProduit.createFeatureAttribute(tronconDeRoute, "Nombre total de voies", + "string", true); + AttributeType nombreTotalDeVoies = tronconDeRoute + .getFeatureAttributeByName("Nombre total de voies"); + nombreTotalDeVoies.setDefinition(""); + sProduit.createFeatureAttributeValue(nombreTotalDeVoies, "sans objet"); + sProduit.createFeatureAttributeValue(nombreTotalDeVoies, "1 voie"); + sProduit + .createFeatureAttributeValue(nombreTotalDeVoies, "2 voies étroites"); + sProduit.createFeatureAttributeValue(nombreTotalDeVoies, + "3 voies (chaussée normalisée 10.50 m)"); + sProduit.createFeatureAttributeValue(nombreTotalDeVoies, "4 voies"); + sProduit.createFeatureAttributeValue(nombreTotalDeVoies, + "2 voies (chaussée normalisée 7 m)"); + sProduit.createFeatureAttributeValue(nombreTotalDeVoies, "Plus de 4 voies"); + + // Attribut Etat physique de la route + sProduit.createFeatureAttribute(tronconDeRoute, + "Etat physique de la route", "string", true); + AttributeType etatPhysiqueDeLaRoute = tronconDeRoute + .getFeatureAttributeByName("Etat physique de la route"); + etatPhysiqueDeLaRoute.setDefinition(""); + sProduit + .createFeatureAttributeValue(etatPhysiqueDeLaRoute, "Route revêtue"); + sProduit.createFeatureAttributeValue(etatPhysiqueDeLaRoute, + "Route non revêtue"); + sProduit.createFeatureAttributeValue(etatPhysiqueDeLaRoute, + "En construction"); + sProduit.createFeatureAttributeValue(etatPhysiqueDeLaRoute, + "Chemin d'exploitation"); + sProduit.createFeatureAttributeValue(etatPhysiqueDeLaRoute, "Sentier"); + + // Attribut Accès + sProduit.createFeatureAttribute(tronconDeRoute, "Accès", "string", true); + AttributeType acces2 = tronconDeRoute.getFeatureAttributeByName("Accès"); + acces2.setDefinition(""); + sProduit.createFeatureAttributeValue(acces2, "Libre"); + sProduit.createFeatureAttributeValue(acces2, "A péage"); + sProduit.createFeatureAttributeValue(acces2, "Interdit au public"); + sProduit.createFeatureAttributeValue(acces2, "Fermeture saisonnière"); + + // Attribut Position par rapport au sol + sProduit.createFeatureAttribute(tronconDeRoute, + "Position par rapport au sol", "string", true); + AttributeType positionParRapportAuSol = tronconDeRoute + .getFeatureAttributeByName("Position par rapport au sol"); + positionParRapportAuSol.setDefinition(""); + sProduit.createFeatureAttributeValue(positionParRapportAuSol, "Normal"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol, + "Sur viaduc ou sur pont"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol, + "En tunnel, souterrain, couvert ou semi-couvert"); + + // Attribut Appartenance au réseau vert + sProduit.createFeatureAttribute(tronconDeRoute, + "Appartenance au réseau vert", "string", true); + AttributeType appartenanceAuReseauVert = tronconDeRoute + .getFeatureAttributeByName("Appartenance au réseau vert"); + appartenanceAuReseauVert.setDefinition(""); + sProduit + .createFeatureAttributeValue(appartenanceAuReseauVert, "Appartient"); + sProduit.createFeatureAttributeValue(appartenanceAuReseauVert, + "N'appartient pas"); + + // Attribut Sens + sProduit.createFeatureAttribute(tronconDeRoute, "Sens", "string", true); + AttributeType sens = tronconDeRoute.getFeatureAttributeByName("Sens"); + sens.setDefinition("Le sens de circulation est géré de façon obligatoire sur les tronçons composant les voies à chaussées éloignées et sur les tronçons " + + "constituant un échangeur détaillé; dans les autres cas, le sens est géré si l'information est connue."); + sProduit.createFeatureAttributeValue(sens, "Double sens"); + sProduit.createFeatureAttributeValue(sens, "Sens unique (sens du tronçon)"); + sProduit.createFeatureAttributeValue(sens, + "Sens unique (sens inverse à celui du tronçon)"); + + // Attribut Nombre de voies chaussée montante + sProduit.createFeatureAttribute(tronconDeRoute, + "Nombre de voies chaussée montante", "string", true); + AttributeType nombreDeVoiesChausseeMontante = tronconDeRoute + .getFeatureAttributeByName("Nombre de voies chaussée montante"); + nombreDeVoiesChausseeMontante + .setDefinition("Concerne uniquement les tronçons à chaussées séparées. La chaussée montante est la chaussée dont la circulation " + + "se fait dans le sens noeud initial - noeud final."); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeMontante, + "Sans objet"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeMontante, + "1 voie"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeMontante, + "2 voies"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeMontante, + "3 voies"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeMontante, + "4 voies"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeMontante, + "Plus de 4 voies"); + + // Attribut Nombre de voies chaussée descendante + sProduit.createFeatureAttribute(tronconDeRoute, + "Nombre de voies chaussée descendante", "string", true); + AttributeType nombreDeVoiesChausseeDescendante = tronconDeRoute + .getFeatureAttributeByName("Nombre de voies chaussée descendante"); + nombreDeVoiesChausseeDescendante + .setDefinition("Concerne uniquement les tronçons à chaussées séparées. La chaussée descendante est la chaussée dont la circulation se fait " + + "dans le sens noeud final - noeud initial."); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeDescendante, + "Sans objet"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeDescendante, + "1 voie"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeDescendante, + "2 voies"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeDescendante, + "3 voies"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeDescendante, + "4 voies"); + sProduit.createFeatureAttributeValue(nombreDeVoiesChausseeDescendante, + "Plus de 4 voies"); + + // Attribut Toponyme + sProduit + .createFeatureAttribute(tronconDeRoute, "Toponyme", "string", false); + AttributeType toponyme11 = tronconDeRoute + .getFeatureAttributeByName("Toponyme"); + toponyme11 + .setDefinition("Seuls les noms de ponts, viaducs, et tunnels sont portés par les tronçons de route; les autres toponymes sont portés par les itinéraires routiers."); + + // Attribut Utilisation + sProduit.createFeatureAttribute(tronconDeRoute, "Utilisation", "string", + true); + AttributeType utilisation = tronconDeRoute + .getFeatureAttributeByName("Utilisation"); + utilisation + .setDefinition("Cet attribut permet de distinguer les tronçons en fonction de leur utilisation potentielle pour la description de la " + + "logique de communication et/ou une représentation cartographique."); + sProduit.createFeatureAttributeValue(utilisation, + "Logique et cartographique"); + sProduit.createFeatureAttributeValue(utilisation, "Logique seule"); + sProduit.createFeatureAttributeValue(utilisation, "Cartographique seule"); + + // Attribut Date de mise en service + sProduit.createFeatureAttribute(tronconDeRoute, "Date de mise en service", + "string", true); + AttributeType dateDeMiseEnService = tronconDeRoute + .getFeatureAttributeByName("Date de mise en service"); + dateDeMiseEnService + .setDefinition("Cet attribut n'est rempli que pour les tronçons en construction."); + sProduit.createFeatureAttributeValue(dateDeMiseEnService, "Sans objet"); + sProduit.createFeatureAttributeValue(dateDeMiseEnService, + "Date de mise en service"); + + // Classe Noeud du réseau routier + + sProduit.createFeatureType("Noeud du réseau routier"); + FeatureType noeudDuReseauRoutier = (FeatureType) (sProduit + .getFeatureTypeByName("Noeud du réseau routier")); + noeudDuReseauRoutier + .setDefinition("Un noeud du réseau routier correspond à une extrémité de tronçon de route ou de liaison maritime; " + + "il traduit une modification des conditions de circulation: ce peut être une intersection, un obstacle ou un changement de valeur d'attribut."); + noeudDuReseauRoutier.setIsAbstract(false); + + // Attribut Type de noeud + sProduit.createFeatureAttribute(noeudDuReseauRoutier, "Type de noeud", + "string", true); + AttributeType typeDeNoeud = noeudDuReseauRoutier + .getFeatureAttributeByName("Type de noeud"); + typeDeNoeud.setDefinition(""); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Carrefour simple, cul de sac, carrefour aménagé d'une extension inférieure à 100 m, rond-point d'un diamètre inférieur à 30 m."); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Intersection représentant un carrefour aménagé d'une extension supérieure à 100 m sans toboggan ni passage inférieur."); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Intersection représentant un rond-point (ou giratoire) d'un diamètre supérieur à 100 m d'axe à axe."); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Carrefour aménagé avec passage inférieur ou toboggan quelle que soit son extension."); + sProduit.createFeatureAttributeValue(typeDeNoeud, + "Intersection représentant un échangeur complet."); + sProduit.createFeatureAttributeValue(typeDeNoeud, + "Intersection représentant un échangeur partiel."); + sProduit.createFeatureAttributeValue(typeDeNoeud, + "Rond-point (ou giratoire) d'un diamètre compris entre 30 et 100 m."); + sProduit.createFeatureAttributeValue(typeDeNoeud, + "Embarcadère de bac ou liaison maritime."); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Embarcadère de liaison maritime situé hors du territoire BDCarto positionné de façon fictive en limite de ce territoire."); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Barrière interdisant la communication libre entre deux portions de route régulièrement ou irrégulièrement entretenue"); + sProduit.createFeatureAttributeValue(typeDeNoeud, + "Barrière de douane (hors CEE)."); + sProduit.createFeatureAttributeValue(typeDeNoeud, "Changement d'attribut."); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Noeud créé par l'intersection entre une route nationale et la limite d'un département quand il n'existe pas de noeud au lieu " + + "de l'intersection ou noeud créé pour découper des grands tronçons de route (ex: autoroute)."); + sProduit + .createFeatureAttributeValue( + typeDeNoeud, + "Noeud de communication restreinte: noeud créé quand il n'existe pas de noeud correspondant aux valeurs ci-dessus au lieu de la restriction."); + + // Attribut Toponyme + sProduit.createFeatureAttribute(noeudDuReseauRoutier, "Toponyme", "string", + false); + AttributeType toponyme12 = noeudDuReseauRoutier + .getFeatureAttributeByName("Toponyme"); + toponyme12 + .setDefinition("Un noeud du réseau routier peut porter un toponyme si l'un au moins des tronçons connectés appartient au réseau classé, " + + "et si le noeud est de type 'carrefour simple', 'rond-point' ou 'carrefour aménagé avec passage inférieur ou toboggan'. " + + "Un noeud composant un carrefour complexe ne porte généralement pas de toponyme."); + + // Attribut cote + sProduit.createFeatureAttribute(noeudDuReseauRoutier, "Cote", "entier", + false); + AttributeType cote = noeudDuReseauRoutier.getFeatureAttributeByName("Cote"); + cote.setDefinition("Nombre entier donnant l'altitude en mètres; cet attribut peut ne porter aucune valeur (inconnu). La densité des points cotés " + + "est d'environ 30 par feuille 1:50 000."); + + // Classe Equipement routier + + sProduit.createFeatureType("Equipement routier"); + FeatureType equipementRoutier = (FeatureType) (sProduit + .getFeatureTypeByName("Equipement routier")); + equipementRoutier + .setDefinition("La classe des équipements routiers regroupe: les aires de repos et les aires de service sur le réseau de type autoroutier; " + + "les tunnels routiers d'une longueur inférieure à 200m s'ils ne correspondent pas à une intersection avec d'autres tronçons du réseau " + + "routier et ferré (sinon ce sont des franchissements); les gares de péage."); + equipementRoutier.setIsAbstract(false); + + // Attribut Nature + sProduit + .createFeatureAttribute(equipementRoutier, "Nature", "string", true); + AttributeType nature8 = equipementRoutier + .getFeatureAttributeByName("Nature"); + nature8.setDefinition(""); + sProduit.createFeatureAttributeValue(nature8, "Aire de service"); + sProduit.createFeatureAttributeValue(nature8, "Aire de repos"); + sProduit.createFeatureAttributeValue(nature8, "tunnel de moins de 200 m"); + sProduit.createFeatureAttributeValue(nature8, "Gare de péage"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(equipementRoutier, "Toponyme", "string", + false); + AttributeType toponyme13 = equipementRoutier + .getFeatureAttributeByName("Toponyme"); + toponyme13.setDefinition("Un équipement porte en général un toponyme."); + + // Classe Liaison maritime ou bac + + sProduit.createFeatureType("Liaison maritime ou bac"); + FeatureType liaisonMaritimeOuBac = (FeatureType) (sProduit + .getFeatureTypeByName("Liaison maritime ou bac")); + liaisonMaritimeOuBac + .setDefinition("Liaison maritime ou ligne de bac reliant deux embarcadères."); + liaisonMaritimeOuBac.setIsAbstract(false); + + // Attribut Ouverture + sProduit.createFeatureAttribute(liaisonMaritimeOuBac, "Ouverture", + "string", true); + AttributeType ouverture = liaisonMaritimeOuBac + .getFeatureAttributeByName("Ouverture"); + ouverture.setDefinition(""); + sProduit.createFeatureAttributeValue(ouverture, "Toute l'année"); + sProduit.createFeatureAttributeValue(ouverture, "En saison seulement"); + + // Attribut Vocation + sProduit.createFeatureAttribute(liaisonMaritimeOuBac, "Vocation", "string", + true); + AttributeType vocation = liaisonMaritimeOuBac + .getFeatureAttributeByName("Vocation"); + vocation.setDefinition(""); + sProduit.createFeatureAttributeValue(vocation, "Piétons seulement"); + sProduit.createFeatureAttributeValue(vocation, "Piétons et automobiles"); + + // Attribut Durée + sProduit.createFeatureAttribute(liaisonMaritimeOuBac, "Durée", "entier", + false); + AttributeType duree = liaisonMaritimeOuBac + .getFeatureAttributeByName("Durée"); + duree + .setDefinition("Durée de la traversée en minutes, pouvant éventuellement ne porter aucune valeur (inconnu). " + + "Note: Quand il ya plusieurs temps de parcours pour une même liaison, c'est le temps le plus long qui est retenu."); + + // Attribut Toponyme + sProduit.createFeatureAttribute(liaisonMaritimeOuBac, "Toponyme", "string", + false); + AttributeType toponyme14 = liaisonMaritimeOuBac + .getFeatureAttributeByName("Toponyme"); + toponyme14 + .setDefinition("Texte d'au plus 80 caractères, pouvant éventuellement ne porter aucune valeur (inconnu), spécifiant la localisation " + + "des embarcadères de départ et d'arrivée."); + + // Classe Communication restreinte + + sProduit.createFeatureType("Communication restreinte"); + FeatureType communicationRestreinte = (FeatureType) (sProduit + .getFeatureTypeByName("Communication restreinte")); + communicationRestreinte + .setDefinition("Relation topologique participant à la logique de parcours du réseau routier: elle explicite les restrictions éventuelles " + + "au passage d'un tronçon de route à un autre via un noeud routier commun aux deux tronçons."); + communicationRestreinte.setIsAbstract(false); + + // Attribut Interdiction + sProduit.createFeatureAttribute(communicationRestreinte, "Interdiction", + "string", true); + AttributeType interdiction = communicationRestreinte + .getFeatureAttributeByName("Interdiction"); + interdiction.setDefinition(""); + sProduit.createFeatureAttributeValue(interdiction, "Totale"); + sProduit.createFeatureAttributeValue(interdiction, + "Restreinte au dépassement d'une hauteur et/ou d'un poids maximal"); + + // Attribut Restriction poids + sProduit.createFeatureAttribute(communicationRestreinte, + "Restriction poids", "entier", false); + AttributeType restrictionPoids = communicationRestreinte + .getFeatureAttributeByName("Restriction poids"); + restrictionPoids + .setDefinition("Poids maximum autorisé en tonnes (à une décimale)."); + + // Attribut Restriction taille + sProduit.createFeatureAttribute(communicationRestreinte, + "Restriction taille", "entier", false); + AttributeType restrictionTaille = communicationRestreinte + .getFeatureAttributeByName("Restriction taille"); + restrictionTaille + .setDefinition("Hauteur maximum autorisée en mètres (à deux décimales)."); + + // Classe Carrefour complexe + + sProduit.createFeatureType("Carrefour complexe"); + FeatureType carrefourComplexe = (FeatureType) (sProduit + .getFeatureTypeByName("Carrefour complexe")); + carrefourComplexe + .setDefinition("La classe des carrefours comples regroupe: les échangeurs, diffuseurs, carrefours dénivelés et 'tourne à gauche' dénivelés situés " + + "sur les tronçons de type autoroutier ou de liaison principale; les ronds-points et carrefours aménagés d'un diamètre supérieur à 100 m d'axe à axe."); + carrefourComplexe.setIsAbstract(false); + + // Attribut Numéro + sProduit.createFeatureAttribute(carrefourComplexe, "Numéro", "string", + false); + AttributeType numero1 = carrefourComplexe + .getFeatureAttributeByName("Numéro"); + numero1 + .setDefinition("Texte d'au plus 10 caractères: numérotation mise en place par la Direction de la Sécurité de la Circulation Routières. " + + "Cette numérotation concerne uniquement les échangeurs sur autoroutes, voies express aux normes, et certaines routes nationales importantes."); + + // Attribut Nature + sProduit + .createFeatureAttribute(carrefourComplexe, "Nature", "string", true); + AttributeType nature9 = carrefourComplexe + .getFeatureAttributeByName("Nature"); + nature9.setDefinition(""); + sProduit.createFeatureAttributeValue(nature9, + "Echangeur, sorties d'autoroute, diffuseurs, carrefours dénivelés"); + sProduit.createFeatureAttributeValue(nature9, "Rond-point"); + sProduit.createFeatureAttributeValue(nature9, "Carrefour aménagé"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(carrefourComplexe, "Toponyme", "string", + false); + AttributeType toponyme15 = carrefourComplexe + .getFeatureAttributeByName("Toponyme"); + toponyme15 + .setDefinition("Il s'agit du nom géographique de l'échangeur, du rond-point ou du carrefour aménagé."); + + // Classe Route + + sProduit.createFeatureType("Route"); + FeatureType route = (FeatureType) (sProduit.getFeatureTypeByName("Route")); + route + .setDefinition("Une route est un parcours classé par l'autorité administrative nationale, régionale ou départementale, " + + "reliant entre elles des villes ou des pôles d'attraction (ports, aéroports, lieux touristiques, etc.) et identifié par un numéro. " + + "Ce dernier correspond au numéro donné par l'organisme chargé de gérer la route et résulte de procédures administratives. Il peut être " + + "différent de celui présent sur le terrain qui peut ne pas être actualisé ou anticiper un classement futur. " + + "Sur le territoire national, cette classe comprend les autoroutes, les routes nationales, les routes départementales et les " + + "bretelles d'échangeur identifiés par les gestionnaires. A l'étranger, elle ne comprend que les autoroutes et les routes nationales " + + "(ou équivalent). Des routes spécifiques sont gérées et saisies sur les bretelles d'échangeurs dans la BDCarto quand l'information " + + "est données par le gestionnaires de la route ou le METLTM. En général, le numéro des bretelles d'échangeur est codé sur 7 caractères. " + + "Les autres types de classement administratif (route vicinale, forestières) ne sont pas gérés dans la BDCarto."); + route.setIsAbstract(false); + + // Attribut Numéro de la route + sProduit.createFeatureAttribute(route, "Numéro de la route", "string", + false); + AttributeType numeroDeLaRoute = route + .getFeatureAttributeByName("Numéro de la route"); + numeroDeLaRoute.setDefinition(""); + + // Attribut Classement administratif + sProduit.createFeatureAttribute(route, "Classement administratif", + "string", true); + AttributeType classementAdministratif = route + .getFeatureAttributeByName("Classement administratif"); + classementAdministratif.setDefinition(""); + sProduit.createFeatureAttributeValue(classementAdministratif, "Autoroute"); + sProduit.createFeatureAttributeValue(classementAdministratif, + "Route nationale"); + sProduit.createFeatureAttributeValue(classementAdministratif, + "Route départementale"); + + // Attribut Gestionnaire + sProduit.createFeatureAttribute(route, "Gestionnaire", "string", false); + AttributeType gestionnaire = route + .getFeatureAttributeByName("Gestionnaire"); + gestionnaire.setDefinition(""); + + // Classe Itinéraire routier + + sProduit.createFeatureType("Itinéraire routier"); + FeatureType itineraireRoutier = (FeatureType) (sProduit + .getFeatureTypeByName("Itinéraire routier")); + itineraireRoutier + .setDefinition("Un itinéraire routier est un ensemble de parcours continus empruntant des tronçons de route, " + + "chemins ou sentiers et identifié par un toponyme ou un numéro."); + itineraireRoutier.setIsAbstract(false); + + // Attribut Numéro + sProduit.createFeatureAttribute(itineraireRoutier, "Numéro", "string", + false); + AttributeType numero2 = itineraireRoutier + .getFeatureAttributeByName("Numéro"); + numero2.setDefinition(""); + + // Attribut Nature + sProduit + .createFeatureAttribute(itineraireRoutier, "Nature", "string", true); + AttributeType nature10 = itineraireRoutier + .getFeatureAttributeByName("Nature"); + nature10.setDefinition(""); + sProduit.createFeatureAttributeValue(nature10, + "Itinéraire routier portant un nom"); + sProduit.createFeatureAttributeValue(nature10, "Route européenne"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(itineraireRoutier, "Toponyme", "string", + false); + AttributeType toponyme16 = itineraireRoutier + .getFeatureAttributeByName("Toponyme"); + toponyme16.setDefinition(""); + + // Classe Début de section + + sProduit.createFeatureType("Début de section"); + FeatureType debutDeSection = (FeatureType) (sProduit + .getFeatureTypeByName("Début de section")); + debutDeSection + .setDefinition("Une section est un ensemble continu de tronçons de route ayant le même numéro et le même gestionnaire."); + debutDeSection.setIsAbstract(false); + + // Attribut Gestionnaire + sProduit.createFeatureAttribute(debutDeSection, "Gestionnaire", "string", + false); + AttributeType gestionnaire2 = debutDeSection + .getFeatureAttributeByName("Gestionnaire"); + gestionnaire2.setDefinition(""); + + // Attribut Sens + sProduit.createFeatureAttribute(debutDeSection, "Sens", "string", true); + AttributeType sens2 = debutDeSection.getFeatureAttributeByName("Sens"); + sens2.setDefinition("Sens de parcours de la section."); + sProduit.createFeatureAttributeValue(sens2, "sens du tronçon"); + sProduit.createFeatureAttributeValue(sens2, + "sens inverse à celui du tronçon"); + + // relation d'association Permet d'accéder à + sProduit.createFeatureAssociation("Permet d'accéder à", equipementRoutier, + tronconDeRoute, "est accessible par", "permet d'accéder à"); + // Attention penser à rajouter les attributs + + // relation d'association réseau routier + sProduit + .createFeatureAssociation("Réseau routier initial", tronconDeRoute, + noeudDuReseauRoutier, "a pour noeud initial", + "est le noeud initial de"); + sProduit.createFeatureAssociation("Réseau routier final", tronconDeRoute, + noeudDuReseauRoutier, "a pour noeud final", "est le noeud final de"); + + // relation d'association réseau de bac + sProduit.createFeatureAssociation("Réseau de bac initial", + liaisonMaritimeOuBac, noeudDuReseauRoutier, "a pour noeud initial", + "est le noeud initial de"); + sProduit.createFeatureAssociation("Réseau de bac final", + liaisonMaritimeOuBac, noeudDuReseauRoutier, "a pour noeud final", + "est le noeud final de"); + + // relation d'association communication restreinte + sProduit.createFeatureAssociation("Communication restreinte", + communicationRestreinte, noeudDuReseauRoutier, "concerne", + "est concernée par"); + sProduit.createFeatureAssociation( + "Communication restreinte tronçon initial", communicationRestreinte, + tronconDeRoute, "a pour tronçon initial", "est le tronçon initial de"); + sProduit.createFeatureAssociation("Communication restreinte tronçon final", + communicationRestreinte, tronconDeRoute, "a pour tronçon final", + "est le tronçon final de"); + + // relation d'association a pour successeur + sProduit.createFeatureAssociation("A pour successeur", debutDeSection, + debutDeSection, "A pour successeur", "a pour prédécesseur"); + + /*************************************************************************** + * Ajout du thème "Réseau Ferré" * + ************************************************************************/ + + // Classe Tronçon de voie ferrée + + sProduit.createFeatureType("Tronçon de voie ferrée"); + FeatureType tronconDeVoieFerree = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de voie ferrée")); + tronconDeVoieFerree.setDefinition(""); + tronconDeVoieFerree.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(tronconDeVoieFerree, "Nature", "string", + true); + AttributeType nature11 = tronconDeVoieFerree + .getFeatureAttributeByName("Nature"); + nature11.setDefinition(""); + sProduit.createFeatureAttributeValue(nature11, "Normale"); + sProduit.createFeatureAttributeValue(nature11, "Tronçon à grande vitesse"); + sProduit + .createFeatureAttributeValue( + nature11, + "Tronçon d'embranchement particulier, voie industrielle ou de service, ligne touristique"); + sProduit.createFeatureAttributeValue(nature11, + "Tronçon de voie de triage ou de garage"); + sProduit.createFeatureAttributeValue(nature11, "Train à crémaillère"); + sProduit.createFeatureAttributeValue(nature11, "Funiculaire"); + + // Attribut Energie de propulsion + sProduit.createFeatureAttribute(tronconDeVoieFerree, + "Energie de propulsion", "string", true); + AttributeType energieDePropulsion = tronconDeVoieFerree + .getFeatureAttributeByName("Energie de propulsion"); + energieDePropulsion.setDefinition(""); + sProduit.createFeatureAttributeValue(energieDePropulsion, "Electrique"); + sProduit.createFeatureAttributeValue(energieDePropulsion, + "En cours d'électrification"); + sProduit.createFeatureAttributeValue(energieDePropulsion, "Non éléctrique"); + + // Attribut Nombre de voies principales + sProduit.createFeatureAttribute(tronconDeVoieFerree, + "Nombre de voies principales", "string", true); + AttributeType nombreDeVoiesPrincipales = tronconDeVoieFerree + .getFeatureAttributeByName("Nombre de voies principales"); + nombreDeVoiesPrincipales.setDefinition(""); + sProduit.createFeatureAttributeValue(nombreDeVoiesPrincipales, "1 voie"); + sProduit.createFeatureAttributeValue(nombreDeVoiesPrincipales, + "2 voies ou plus"); + + // Attribut Ecartement des voies + sProduit.createFeatureAttribute(tronconDeVoieFerree, + "Ecartement des voies", "string", true); + AttributeType ecartementDesVoies = tronconDeVoieFerree + .getFeatureAttributeByName("Ecartement des voies"); + ecartementDesVoies.setDefinition(""); + sProduit.createFeatureAttributeValue(ecartementDesVoies, "Normal(1,44 m)"); + sProduit + .createFeatureAttributeValue(ecartementDesVoies, "Etroite(<1,44 m)"); + sProduit.createFeatureAttributeValue(ecartementDesVoies, + "Large(>1,44 m) en particulier en Espagne"); + + // Attribut Position par rapport au sol + sProduit.createFeatureAttribute(tronconDeVoieFerree, + "Position par rapport au sol", "string", true); + AttributeType positionParRapportAuSol2 = tronconDeVoieFerree + .getFeatureAttributeByName("Position par rapport au sol"); + positionParRapportAuSol2.setDefinition(""); + sProduit.createFeatureAttributeValue(positionParRapportAuSol2, "Normale"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol2, + "Sur viaduc ou sur pont"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol2, + "En tunnel, souterrain, couvert"); + + // Attribut Classement + sProduit.createFeatureAttribute(tronconDeVoieFerree, "Classement", + "string", true); + AttributeType classement = tronconDeVoieFerree + .getFeatureAttributeByName("Classement"); + classement.setDefinition(""); + sProduit.createFeatureAttributeValue(classement, "Exploité"); + sProduit.createFeatureAttributeValue(classement, "Non exploité"); + sProduit.createFeatureAttributeValue(classement, + "En construction ou en projet"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(tronconDeVoieFerree, "Toponyme", + "string générique, string article, string spécifique", false); + AttributeType toponyme17 = tronconDeVoieFerree + .getFeatureAttributeByName("Toponyme"); + toponyme17.setDefinition(""); + + // Classe Noeud du Réseau ferré + sProduit.createFeatureType("Noeud du réseau ferré"); + FeatureType noeudDuReseauferre = (FeatureType) (sProduit + .getFeatureTypeByName("Noeud du réseau ferré")); + noeudDuReseauferre.setDefinition(""); + noeudDuReseauferre.setIsAbstract(false); + + // Attribut Type de noeud + sProduit.createFeatureAttribute(noeudDuReseauferre, "Type de noeud", + "string", true); + AttributeType typeDeNoeud2 = noeudDuReseauferre + .getFeatureAttributeByName("Type de noeud"); + typeDeNoeud2.setDefinition(""); + sProduit.createFeatureAttributeValue(typeDeNoeud2, + "Gare ouverte aux voyageurs et au fret"); + sProduit.createFeatureAttributeValue(typeDeNoeud2, + "Gare non ouverte aux voyageurs (gare de fret seulement)"); + sProduit.createFeatureAttributeValue(typeDeNoeud2, + "Gare ou point d'arrêt ouvert aux voyageurs seulement"); + sProduit.createFeatureAttributeValue(typeDeNoeud2, + "Embranchement, cul de sac"); + sProduit + .createFeatureAttributeValue(typeDeNoeud2, "Changement d'attributs"); + sProduit.createFeatureAttributeValue(typeDeNoeud2, + "Noeud arbitraire créé pour couper les grands tronçons ferrés"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(noeudDuReseauferre, "Toponyme", "string", + false); + AttributeType toponyme18 = noeudDuReseauferre + .getFeatureAttributeByName("Toponyme"); + toponyme18.setDefinition(""); + + // Classe Ligne de chemin de fer + + sProduit.createFeatureType("Ligne de chemin de fer"); + FeatureType ligneDeCheminDeFer = (FeatureType) (sProduit + .getFeatureTypeByName("Ligne de chemin de fer")); + ligneDeCheminDeFer.setDefinition(""); + ligneDeCheminDeFer.setIsAbstract(false); + + // Attribut Caractère touristique + sProduit.createFeatureAttribute(ligneDeCheminDeFer, + "Caractère touristique", "string", true); + AttributeType caractereTouristique = ligneDeCheminDeFer + .getFeatureAttributeByName("Caractère touristique"); + caractereTouristique.setDefinition(""); + sProduit.createFeatureAttributeValue(caractereTouristique, + "Ligne touristique"); + sProduit.createFeatureAttributeValue(caractereTouristique, + "Ligne sans caractère touristique particulier"); + + // Toponyme + sProduit.createFeatureAttribute(ligneDeCheminDeFer, "Toponyme", "string", + false); + AttributeType toponyme20 = ligneDeCheminDeFer + .getFeatureAttributeByName("Toponyme"); + toponyme20.setDefinition(""); + + // Relation d'association Réseau ferré + sProduit.createFeatureAssociation("Réseau ferré initial", + tronconDeVoieFerree, noeudDuReseauferre, "a pour noeud initial", + "est le noeud initial de"); + sProduit.createFeatureAssociation("Réseau ferré final", ligneDeCheminDeFer, + noeudDuReseauferre, "a pour noeud final", "est le noeud final de"); + + // Relation d'association est composé de + sProduit.createFeatureAssociation("Ligne de chemin de fer", + ligneDeCheminDeFer, tronconDeVoieFerree, "est composée de", "compose"); + + // Attention il manque les relations extra-thème + + /*************************************************************************** + * Ajout du thème "Hydrographie" * + ************************************************************************/ + + // Classe Tronçon hydrographique + + sProduit.createFeatureType("Tronçon hydrographique"); + FeatureType tronconHydrographique = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon hydrographique")); + tronconHydrographique.setDefinition(""); + tronconHydrographique.setIsAbstract(false); + + // Attribut Etat + sProduit.createFeatureAttribute(tronconHydrographique, "Etat", "string", + true); + AttributeType etat = tronconHydrographique + .getFeatureAttributeByName("Etat"); + etat.setDefinition(""); + sProduit.createFeatureAttributeValue(etat, "En attente de mise à jour"); + sProduit + .createFeatureAttributeValue( + etat, + "Inconnu: l'existance d'un écoulement est certaine mais le tracé n'est pas connu avec précision"); + sProduit.createFeatureAttributeValue(etat, "Ecoulement permanent"); + sProduit.createFeatureAttributeValue(etat, "Ecoulement intermittent"); + sProduit + .createFeatureAttributeValue( + etat, + "Axe fictif: arc créé pour assurer la continuité des cours d'eau à la traversée des zones d'hydrographie ou lorsque le tracé " + + "n'est pas connu avec précision (parcours souterrain)"); + sProduit.createFeatureAttributeValue(etat, "Canal abandonné à sec"); + + // Attribut Sens + sProduit.createFeatureAttribute(tronconHydrographique, "Sens", "string", + true); + AttributeType sens3 = tronconHydrographique + .getFeatureAttributeByName("Sens"); + sens3.setDefinition(""); + sProduit.createFeatureAttributeValue(sens3, "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(sens3, "Inconnu"); + sProduit + .createFeatureAttributeValue( + sens3, + "Sens d'écoulement dans le sens de l'arc (du noeud initial vers le noeud final)"); + sProduit.createFeatureAttributeValue(sens3, + "Sens d'écoulement variable dont bief de passage"); + + // Attribut Largeur + sProduit.createFeatureAttribute(tronconHydrographique, "Largeur", "string", + true); + AttributeType largeur = tronconHydrographique + .getFeatureAttributeByName("Largeur"); + largeur.setDefinition(""); + sProduit.createFeatureAttributeValue(largeur, "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(largeur, + "Sans objet (seulement si l'état est inconnu ou fictif"); + sProduit.createFeatureAttributeValue(largeur, "Entre 0 et 15 m"); + sProduit.createFeatureAttributeValue(largeur, "Entre 15 et 50 m"); + sProduit.createFeatureAttributeValue(largeur, "Plus de 50 m"); + + // Attribut Nature + sProduit.createFeatureAttribute(tronconHydrographique, "Nature", "string", + true); + AttributeType nature12 = tronconHydrographique + .getFeatureAttributeByName("Nature"); + nature12.setDefinition(""); + sProduit.createFeatureAttributeValue(nature12, "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(nature12, + "Sans objet (seulement si l'état est inconnu ou fictif)"); + sProduit.createFeatureAttributeValue(nature12, "Cours d'eau naturel"); + sProduit.createFeatureAttributeValue(nature12, + "Canal, chenal: voie d'eau artificielle"); + sProduit + .createFeatureAttributeValue( + nature12, + "Aqueduc, conduite forcée: tuyau ou chenal artificiel conçu pour le transport de l'eau (usage hydroélectrique ou industriel)"); + sProduit.createFeatureAttributeValue(nature12, + "Estuaire: écoulement d'un cours d'eau dans la zone d'estran"); + sProduit.createFeatureAttributeValue(nature12, + "Tronçon allant de la cote zéro NGF à la laisse des plus basses eaux."); + + // Attribut Navigabilité + sProduit.createFeatureAttribute(tronconHydrographique, "Navigabilité", + "string", true); + AttributeType navigabilite = tronconHydrographique + .getFeatureAttributeByName("Navigabilité"); + navigabilite.setDefinition(""); + sProduit.createFeatureAttributeValue(navigabilite, + "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(navigabilite, "Inconnu"); + sProduit.createFeatureAttributeValue(navigabilite, + "Navigable: inscrit à la nomenclature des voies navigables"); + sProduit.createFeatureAttributeValue(navigabilite, "Non navigable"); + sProduit.createFeatureAttributeValue(navigabilite, ""); + sProduit.createFeatureAttributeValue(navigabilite, ""); + + // Attribut Gabarit + sProduit.createFeatureAttribute(tronconHydrographique, "Gabarit", "string", + true); + AttributeType gabarit = tronconHydrographique + .getFeatureAttributeByName("Gabarit"); + gabarit.setDefinition(""); + sProduit.createFeatureAttributeValue(gabarit, "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(gabarit, + "Sans objet (si la navigabilité est inconnu ou non navigable)"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 0"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 1"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 2"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 3"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 4"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 5"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 6"); + sProduit.createFeatureAttributeValue(gabarit, "Classe 7"); + + // Attribut Position par rapport au sol + sProduit.createFeatureAttribute(tronconHydrographique, + "Position par rapport au sol", "string", true); + AttributeType positionParRapportAuSol3 = tronconHydrographique + .getFeatureAttributeByName("Position par rapport au sol"); + positionParRapportAuSol3.setDefinition(""); + sProduit.createFeatureAttributeValue(positionParRapportAuSol3, + "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol3, "Inconnu"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol3, + "Au sol, à ciel ouvert"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol3, + "Elevé sur pont, arcade ou mur"); + sProduit + .createFeatureAttributeValue(positionParRapportAuSol3, "Souterrain"); + sProduit.createFeatureAttributeValue(positionParRapportAuSol3, + "Au sol (tuyau posé au sol"); + + // Attribut Code Hydrographique + sProduit.createFeatureAttribute(tronconHydrographique, + "Code Hydrographique", "string", false); + AttributeType codeHydrographique = tronconHydrographique + .getFeatureAttributeByName("Code Hydrographique"); + codeHydrographique.setDefinition(""); + + // Attribut Sous-milieu Hydrographique + sProduit.createFeatureAttribute(tronconHydrographique, + "Sous-milieu Hydrographique", "string", true); + AttributeType sousMilieuHydrographique = tronconHydrographique + .getFeatureAttributeByName("Sous-milieu Hydrographique"); + sousMilieuHydrographique.setDefinition(""); + + // Attribut Toponyme 1 + sProduit.createFeatureAttribute(tronconHydrographique, "Toponyme 1", + "string", false); + AttributeType toponyme19 = tronconHydrographique + .getFeatureAttributeByName("Toponyme 1"); + toponyme19.setDefinition(""); + + // Attribut Candidat 1 + sProduit.createFeatureAttribute(tronconHydrographique, "Candidat 1", + "string", false); + AttributeType candidat1 = tronconHydrographique + .getFeatureAttributeByName("Candidat 1"); + candidat1.setDefinition(""); + + // Attribut Toponyme 2 + sProduit.createFeatureAttribute(tronconHydrographique, "Toponyme 2", + "string", false); + AttributeType toponyme21 = tronconHydrographique + .getFeatureAttributeByName("Toponyme 2"); + toponyme21.setDefinition(""); + + // Attribut Candidat 2 + sProduit.createFeatureAttribute(tronconHydrographique, "Candidat 2", + "string", false); + AttributeType candidat2 = tronconHydrographique + .getFeatureAttributeByName("Candidat 2"); + candidat2.setDefinition(""); + + // Attribut FPKH + sProduit.createFeatureAttribute(tronconHydrographique, "FPKH", "entier", + false); + AttributeType fPKH = tronconHydrographique + .getFeatureAttributeByName("FPKH"); + fPKH.setDefinition(""); + + // Attribut TPKH + sProduit.createFeatureAttribute(tronconHydrographique, "TPKH", "entier", + false); + AttributeType tPKH = tronconHydrographique + .getFeatureAttributeByName("TPKH"); + tPKH.setDefinition(""); + + // Classe Noeud hydrographique//////////////////////////////////////////// + + sProduit.createFeatureType("Noeud hydrographique"); + FeatureType noeudHydrographique = (FeatureType) (sProduit + .getFeatureTypeByName("Noeud hydrographique")); + noeudHydrographique.setDefinition(""); + noeudHydrographique.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(noeudHydrographique, "Nature", "string", + true); + AttributeType nature13 = noeudHydrographique + .getFeatureAttributeByName("Nature"); + nature13.setDefinition(""); + sProduit.createFeatureAttributeValue(nature13, "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(nature13, + "Noeud hydrographique sans nature particulière"); + sProduit.createFeatureAttributeValue(nature13, "Inconnu"); + sProduit.createFeatureAttributeValue(nature13, + "Barrage de retenue sans ouvrage de franchissement"); + sProduit.createFeatureAttributeValue(nature13, + "Barrage de retenue avec ouvrage de franchissement"); + sProduit.createFeatureAttributeValue(nature13, + "Barrage au fil de l'eau sans ouvrage de franchissement"); + sProduit.createFeatureAttributeValue(nature13, + "Barrage au fil de l'eau avec ouvrage de franchissement"); + sProduit + .createFeatureAttributeValue(nature13, + "Ouvrage de franchissement de chutes (écluse, pente d'eau, ascenceur à bateau)"); + sProduit.createFeatureAttributeValue(nature13, + "Chute d'eau, cascade remarquable"); + sProduit.createFeatureAttributeValue(nature13, + "Source d'interêt touristique"); + sProduit.createFeatureAttributeValue(nature13, + "Autres ouvrages (portes de garde)"); + sProduit + .createFeatureAttributeValue(nature13, "Franchissement hydro/hydro"); + sProduit.createFeatureAttributeValue(nature13, + "Embouchure, estuaire, delta"); + sProduit.createFeatureAttributeValue(nature13, "Perte"); + sProduit.createFeatureAttributeValue(nature13, "Changement d'attribut"); + sProduit.createFeatureAttributeValue(nature13, "Source simple, confluent"); + sProduit + .createFeatureAttributeValue( + nature13, + "Extremité de tronçon 'zéro NGF' (Valeur Z pour l'attribut nature du tronçon) coïncidant avec la laisse des plus basses eaux"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(noeudHydrographique, "Toponyme", "string", + false); + AttributeType toponyme22 = noeudHydrographique + .getFeatureAttributeByName("Toponyme"); + toponyme22.setDefinition(""); + + // Attribut Candidat + sProduit.createFeatureAttribute(noeudHydrographique, "Candidat", "string", + false); + AttributeType candidat3 = noeudHydrographique + .getFeatureAttributeByName("Candidat"); + candidat3.setDefinition(""); + + // Attribut Cote + sProduit.createFeatureAttribute(noeudHydrographique, "Cote", "string", + false); + AttributeType cote1 = noeudHydrographique.getFeatureAttributeByName("Cote"); + cote1.setDefinition(""); + + // Classe Point d'eau isolé + + sProduit.createFeatureType("Point d'eau isolé"); + FeatureType pointDEauIsole = (FeatureType) (sProduit + .getFeatureTypeByName("Point d'eau isolé")); + pointDEauIsole.setDefinition(""); + pointDEauIsole.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(pointDEauIsole, "Nature", "string", true); + AttributeType nature14 = pointDEauIsole.getFeatureAttributeByName("Nature"); + nature14.setDefinition(""); + sProduit.createFeatureAttributeValue(nature14, "Inconnu"); + sProduit.createFeatureAttributeValue(nature14, "Château d'eau"); + sProduit.createFeatureAttributeValue(nature14, + "Station de traitement des eaux"); + sProduit.createFeatureAttributeValue(nature14, "Station de pompage"); + sProduit.createFeatureAttributeValue(nature14, "Réservoir"); + sProduit.createFeatureAttributeValue(nature14, + "Plan d'eau d'une superficie inférieure à 1 ha"); + + // Attribut Toponyme + sProduit + .createFeatureAttribute(pointDEauIsole, "Toponyme", "string", false); + AttributeType toponyme23 = pointDEauIsole + .getFeatureAttributeByName("Toponyme"); + toponyme23.setDefinition(""); + + // Attribut Candidat + sProduit + .createFeatureAttribute(pointDEauIsole, "Candidat", "string", false); + AttributeType candidat4 = pointDEauIsole + .getFeatureAttributeByName("Candidat"); + candidat4.setDefinition(""); + + // Attribut Cote + sProduit.createFeatureAttribute(pointDEauIsole, "Cote", "string", false); + AttributeType cote2 = pointDEauIsole.getFeatureAttributeByName("Cote"); + cote2.setDefinition(""); + + // Classe Laisse////////////////////////////////////////////////////////// + + sProduit.createFeatureType("Laisse"); + FeatureType laisse = (FeatureType) (sProduit.getFeatureTypeByName("Laisse")); + laisse.setDefinition(""); + laisse.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(laisse, "Nature", "string", true); + AttributeType nature15 = laisse.getFeatureAttributeByName("Nature"); + nature15.setDefinition(""); + sProduit.createFeatureAttributeValue(nature15, "Inconnu"); + sProduit.createFeatureAttributeValue(nature15, + "Limite des plus hautes eaux naturelle non rocheuse"); + sProduit.createFeatureAttributeValue(nature15, + "Limite des plus hautes eaux naturelle rocheuse"); + sProduit.createFeatureAttributeValue(nature15, + "Limite des plus hautes eaux artificielle (digue, quai)"); + sProduit.createFeatureAttributeValue(nature15, + "Limite des plus hautes eaux fermeture arbitraire d'un estuaire"); + sProduit.createFeatureAttributeValue(nature15, + "Limite des plus basses eaux naturelle (zéro bathymétrique)"); + sProduit.createFeatureAttributeValue(nature15, + "Limite des plus basses eaux fermeture arbitraire d'un estuaire"); + + // Classe Zone d'hydrographie de texture////////////////////////////////// + + sProduit.createFeatureType("Zone d'hydrographie de texture"); + FeatureType zoneDHydrographieDeTexture = (FeatureType) (sProduit + .getFeatureTypeByName("Zone d'hydrographie de texture")); + zoneDHydrographieDeTexture.setDefinition(""); + zoneDHydrographieDeTexture.setIsAbstract(false); + + // Attribut Toponyme + sProduit.createFeatureAttribute(zoneDHydrographieDeTexture, "Toponyme", + "string", false); + AttributeType toponyme24 = zoneDHydrographieDeTexture + .getFeatureAttributeByName("Toponyme"); + toponyme24.setDefinition(""); + + // Attribut Candidat + sProduit.createFeatureAttribute(zoneDHydrographieDeTexture, "Candidat", + "string", false); + AttributeType candidat5 = zoneDHydrographieDeTexture + .getFeatureAttributeByName("Candidat"); + candidat5.setDefinition(""); + + // Classe Element surfacique////////////////////////////////////////////// + + sProduit.createFeatureType("Element surfacique"); + FeatureType elementSurfacique = (FeatureType) (sProduit + .getFeatureTypeByName("Element surfacique")); + elementSurfacique.setDefinition(""); + elementSurfacique.setIsAbstract(false); + + // Attribut Nature + sProduit + .createFeatureAttribute(elementSurfacique, "Nature", "string", true); + AttributeType nature16 = elementSurfacique + .getFeatureAttributeByName("Nature"); + nature16.setDefinition(""); + sProduit.createFeatureAttributeValue(nature16, "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(nature16, "Inconnu"); + sProduit.createFeatureAttributeValue(nature16, "Névés, glaciers"); + sProduit.createFeatureAttributeValue(nature16, "Eau douce permanente"); + sProduit.createFeatureAttributeValue(nature16, "Eau salée permanente"); + sProduit.createFeatureAttributeValue(nature16, "Eau salée non permanente"); + + // Attribut Type + sProduit.createFeatureAttribute(elementSurfacique, "Type", "string", true); + AttributeType type1 = elementSurfacique.getFeatureAttributeByName("Type"); + type1.setDefinition(""); + sProduit.createFeatureAttributeValue(type1, "En attente de mise à jour"); + sProduit.createFeatureAttributeValue(type1, "Inconnu"); + sProduit.createFeatureAttributeValue(type1, + "Eau douce permanente, cours d'eau (largeur > 50 m)"); + sProduit.createFeatureAttributeValue(type1, + "Eau douce permanente, plan d'eau, bassin, réservoir"); + sProduit.createFeatureAttributeValue(type1, + "Eau douce permanente, ensemble de petits plans d'eau"); + sProduit.createFeatureAttributeValue(type1, + "Eau douce permanente, traitement des eaux, station de pompage"); + sProduit.createFeatureAttributeValue(type1, + "Eau douce permanente, bassin portuaire fluvial"); + sProduit.createFeatureAttributeValue(type1, + "Eau douce non permanente, zone temporairement recouverte d'eau"); + sProduit + .createFeatureAttributeValue(type1, + "Eau douce non permanente, sable et graviers dans le lit d'un cours d'eau"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée permanente, pleine mer"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée permanente, écoulement d'eau"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée permanente, nappe d'eau"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée permanente, bassin portuaire"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée non permanente, marais salants"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée non permanente, zone rocheuse"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée non permanente, zone mixte rochers et sable"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée non permanente, zone de sable humide"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée non permanente, zone de vase"); + sProduit.createFeatureAttributeValue(type1, + "Eau salée non permanente, zone de graviers et galets"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(elementSurfacique, "Toponyme", "string", + false); + AttributeType toponyme25 = elementSurfacique + .getFeatureAttributeByName("Toponyme"); + toponyme25.setDefinition(""); + + // Classe Zone hydrographique///////////////////////////////////////////// + + sProduit.createFeatureType("Zone hydrographique"); + FeatureType zoneHydrographique = (FeatureType) (sProduit + .getFeatureTypeByName("Zone hydrographique")); + zoneHydrographique.setDefinition(""); + zoneHydrographique.setIsAbstract(false); + + // Attribut Zone hydrographique + sProduit.createFeatureAttribute(zoneHydrographique, "Zone hydrographique", + "string", false); + AttributeType zoneHydrographique2 = zoneHydrographique + .getFeatureAttributeByName("Zone hydrographique"); + zoneHydrographique2.setDefinition(""); + + // Attribut Libellé + sProduit.createFeatureAttribute(zoneHydrographique, "Libellé", "string", + false); + AttributeType libelle = zoneHydrographique + .getFeatureAttributeByName("Libellé"); + libelle.setDefinition(""); + + // Classe Cours d'eau///////////////////////////////////////////////////// + + sProduit.createFeatureType("Cours d'eau"); + FeatureType coursDEau = (FeatureType) (sProduit + .getFeatureTypeByName("Cours d'eau")); + coursDEau.setDefinition(""); + coursDEau.setIsAbstract(false); + + // Attribut CGENELIN + sProduit.createFeatureAttribute(coursDEau, "CGENELIN", "string", false); + AttributeType cGENELIN = coursDEau.getFeatureAttributeByName("CGENELIN"); + cGENELIN.setDefinition(""); + + // Attribut Classification + sProduit + .createFeatureAttribute(coursDEau, "Classification", "string", true); + AttributeType classification2 = coursDEau + .getFeatureAttributeByName("Classification"); + classification2.setDefinition(""); + sProduit + .createFeatureAttributeValue( + classification2, + "Tout cours d'eau d'une longueur supérieure à 100 km ou tout cours d'eau se jetant dans une embouchure logique et d'une longueur supérieure à 25 km"); + sProduit + .createFeatureAttributeValue( + classification2, + "Tout cours d'eau d'une longueur comprise entre 50 et 100 km ou tout cours d'eau se jetant dans une embouchure logique et d'une longueur supérieure à 10 km"); + sProduit.createFeatureAttributeValue(classification2, + "Tout cours d'eau d'une longueur comprise entre 25 et 50 km"); + sProduit.createFeatureAttributeValue(classification2, + "Tout cours d'eau d'une longueur comprise entre 10 et 25 km"); + sProduit.createFeatureAttributeValue(classification2, + "Tout cours d'eau d'une longueur comprise entre 5 et 10 km"); + sProduit + .createFeatureAttributeValue(classification2, + "Tous les autres cours d'eau hormis ceux issus de la densification du réseau"); + sProduit.createFeatureAttributeValue(classification2, + "Cours d'eau issus de la densification du réseau"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(coursDEau, "Toponyme", "string", false); + AttributeType toponyme26 = coursDEau.getFeatureAttributeByName("Toponyme"); + toponyme26.setDefinition(""); + + // Attribut Candidat + sProduit.createFeatureAttribute(coursDEau, "Candidat", "string", false); + AttributeType candidat6 = coursDEau.getFeatureAttributeByName("Candidat"); + candidat6.setDefinition(""); + + // Classe Entité hydrographique de surface + + sProduit.createFeatureType("Entité hydrographique de surface"); + FeatureType entiteHydrographiqueDeSurface = (FeatureType) (sProduit + .getFeatureTypeByName("Entité hydrographique de surface")); + entiteHydrographiqueDeSurface.setDefinition(""); + entiteHydrographiqueDeSurface.setIsAbstract(false); + + // Attribut CGENESUR + sProduit.createFeatureAttribute(entiteHydrographiqueDeSurface, "CGENESUR", + "string", false); + AttributeType cGENESUR = entiteHydrographiqueDeSurface + .getFeatureAttributeByName("CGENESUR"); + cGENESUR.setDefinition(""); + + // Attribut Sous-milieu hydrographique + sProduit.createFeatureAttribute(entiteHydrographiqueDeSurface, + "Sous-milieu hydrographique", "string", false); + AttributeType sousMilieuHydrographique2 = entiteHydrographiqueDeSurface + .getFeatureAttributeByName("Sous-milieu hydrographique"); + sousMilieuHydrographique2.setDefinition(""); + + // Attribut Classe + sProduit.createFeatureAttribute(entiteHydrographiqueDeSurface, "Classe", + "string", true); + AttributeType classe = entiteHydrographiqueDeSurface + .getFeatureAttributeByName("Classe"); + classe.setDefinition(""); + sProduit.createFeatureAttributeValue(classe, + "Les entités dont la surface est supérieure à 100 ha"); + sProduit.createFeatureAttributeValue(classe, + "Les entités dont la surface est comprise entre 25 et 100 ha"); + sProduit.createFeatureAttributeValue(classe, + "Les entités dont la surface est comprise entre 18 et 25 ha"); + sProduit.createFeatureAttributeValue(classe, + "Les entités dont la surface est comprise entre 8 et 18 ha"); + sProduit.createFeatureAttributeValue(classe, + "Les entités dont la surface est comprise entre 4 et 8 ha"); + sProduit.createFeatureAttributeValue(classe, + "Les entités dont la surface est comprise entre 1 et 4 ha"); + sProduit.createFeatureAttributeValue(classe, + "Les entités dont la surface inférieure à 1 ha"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(entiteHydrographiqueDeSurface, "Toponyme", + "string", false); + AttributeType toponyme27 = entiteHydrographiqueDeSurface + .getFeatureAttributeByName("Toponyme"); + toponyme27.setDefinition(""); + + // Attribut Candidat + sProduit.createFeatureAttribute(entiteHydrographiqueDeSurface, "Candidat", + "string", false); + AttributeType candidat7 = entiteHydrographiqueDeSurface + .getFeatureAttributeByName("Candidat"); + candidat7.setDefinition(""); + + // Classe Sous-secteur//////////////////////////////////////////////////// + + sProduit.createFeatureType("Sous-secteur"); + FeatureType sousSecteur = (FeatureType) (sProduit + .getFeatureTypeByName("Sous-secteur")); + sousSecteur.setDefinition(""); + sousSecteur.setIsAbstract(false); + + // Attribut Code + sProduit.createFeatureAttribute(sousSecteur, "Code", "string", false); + AttributeType code1 = sousSecteur.getFeatureAttributeByName("Code"); + code1.setDefinition(""); + + // Attribut Libellé + sProduit.createFeatureAttribute(sousSecteur, "Libellé", "string", false); + AttributeType libelle1 = sousSecteur.getFeatureAttributeByName("Libellé"); + libelle1.setDefinition(""); + + // Classe Secteur///////////////////////////////////////////////////////// + + sProduit.createFeatureType("Secteur"); + FeatureType secteur = (FeatureType) (sProduit + .getFeatureTypeByName("Secteur")); + secteur.setDefinition(""); + secteur.setIsAbstract(false); + + // Attribut Code + sProduit.createFeatureAttribute(secteur, "Code", "string", false); + AttributeType code2 = secteur.getFeatureAttributeByName("Code"); + code2.setDefinition(""); + + // Attribut Libellé + sProduit.createFeatureAttribute(secteur, "Libellé", "string", false); + AttributeType libelle2 = secteur.getFeatureAttributeByName("Libellé"); + libelle2.setDefinition(""); + + // Classe Region////////////////////////////////////////////////////////// + + sProduit.createFeatureType("Region"); + FeatureType region = (FeatureType) (sProduit.getFeatureTypeByName("Region")); + region.setDefinition(""); + region.setIsAbstract(false); + + // Attribut Code + sProduit.createFeatureAttribute(region, "Code", "string", false); + AttributeType code3 = region.getFeatureAttributeByName("Code"); + code3.setDefinition(""); + + // Attribut Libellé + sProduit.createFeatureAttribute(region, "Libellé", "string", false); + AttributeType libelle3 = region.getFeatureAttributeByName("Libellé"); + libelle3.setDefinition(""); + + // Relation d'association réseau hydrographique + sProduit.createFeatureAssociation("Réseau hydrographique initial", + tronconHydrographique, noeudHydrographique, "a pour noeud initial", + "est le noeud initial de"); + sProduit.createFeatureAssociation("Réseau hydrographique final", + tronconHydrographique, noeudHydrographique, "a pour noeud final", + "est le noeud final de"); + + // Relation d'association superposition + sProduit.createFeatureAssociation("Superposition", tronconHydrographique, + tronconHydrographique, "se superpose à", "se superpose à"); + + // Relation d'association exutoire + sProduit.createFeatureAssociation("Exutoire", noeudHydrographique, + zoneHydrographique, "est l'exutoire de", "a pour exutoire"); + + // Relation d'association drain principale + sProduit.createFeatureAssociation("Drain principale", coursDEau, + zoneHydrographique, "est le drain principal de", + "a pour drain principal"); + + // Relation d'association est traversée par + sProduit.createFeatureAssociation("Est traversée par", + entiteHydrographiqueDeSurface, coursDEau, "est traversée par", + "traverse"); + + // Relation d'association passe par + sProduit.createFeatureAssociation("Passe par", tronconHydrographique, + entiteHydrographiqueDeSurface, "Passe par", "est traversé par"); + + /*************************************************************************** + * Ajout du thème "Franchissement" * + ************************************************************************/ + + // Classe Franchissement + + sProduit.createFeatureType("Franchissement"); + FeatureType franchissement = (FeatureType) (sProduit + .getFeatureTypeByName("Franchissement")); + franchissement.setDefinition(""); + franchissement.setIsAbstract(false); + + // Attribut Toponyme + sProduit + .createFeatureAttribute(franchissement, "Toponyme", "string", false); + AttributeType toponyme28 = franchissement + .getFeatureAttributeByName("Toponyme"); + toponyme28.setDefinition(""); + + // Attribut Cote + sProduit.createFeatureAttribute(franchissement, "Cote", "string", false); + AttributeType cote3 = franchissement.getFeatureAttributeByName("Cote"); + cote3.setDefinition(""); + + // relation Tronçon de route passe par franchissement + sProduit.createFeatureAssociation( + "Tronçon de route passe par franchissement", franchissement, + tronconDeRoute, "passe par", "est traversé par"); + + // relation Tronçon de voie ferrée passe par franchissement + sProduit.createFeatureAssociation( + "Tronçon hydrographique passe par franchissement", franchissement, + tronconDeVoieFerree, "passe par", "est traversé par"); + + // Relation Tronçon hydrographique passe par franchissement + sProduit.createFeatureAssociation( + "Tronçon de voie ferrée passe par franchissement", franchissement, + tronconHydrographique, "passe par", "est traversé par"); + + /*************************************************************************** + * Ajout du thème "Autres équipements" * + ************************************************************************/ + + // Classe Tronçon de ligne électrique + + sProduit.createFeatureType("Tronçon de ligne électrique"); + FeatureType tronconDeLignElectrique = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de ligne électrique")); + tronconDeLignElectrique.setDefinition(""); + tronconDeLignElectrique.setIsAbstract(false); + + // Attribut Type du tracé + sProduit.createFeatureAttribute(tronconDeLignElectrique, "Type du tracé", + "string", true); + AttributeType typeDuTrace = tronconDeLignElectrique + .getFeatureAttributeByName("Type du tracé"); + typeDuTrace.setDefinition(""); + sProduit.createFeatureAttributeValue(typeDuTrace, "Aérien"); + sProduit.createFeatureAttributeValue(typeDuTrace, "Souterrain"); + sProduit.createFeatureAttributeValue(typeDuTrace, + "Fictif (prolongation des lignes électriques à l'intérieur des postes"); + + // Attribut Tension + sProduit.createFeatureAttribute(tronconDeLignElectrique, "Tension", + "string", true); + AttributeType tension = tronconDeLignElectrique + .getFeatureAttributeByName("Tension"); + tension.setDefinition(""); + sProduit + .createFeatureAttributeValue(tension, "Inférieure ou égale à 42 kV"); + sProduit.createFeatureAttributeValue(tension, "Comprise entre 42 et 63 kV"); + sProduit.createFeatureAttributeValue(tension, "Comprise entre 63 et 90 kV"); + sProduit + .createFeatureAttributeValue(tension, "Comprise entre 90 et 150 kV"); + sProduit.createFeatureAttributeValue(tension, + "Comprise entre 150 et 225 kV"); + sProduit.createFeatureAttributeValue(tension, + "Comprise entre 225 et 400 kV"); + + // Classe Construction élevée + + sProduit.createFeatureType("Construction élevée"); + FeatureType constructionElevee = (FeatureType) (sProduit + .getFeatureTypeByName("Construction élevée")); + constructionElevee.setDefinition(""); + constructionElevee.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(constructionElevee, "Nature", "string", + true); + AttributeType nature17 = constructionElevee + .getFeatureAttributeByName("Nature"); + nature17.setDefinition(""); + sProduit.createFeatureAttributeValue(nature17, "Pylône"); + sProduit + .createFeatureAttributeValue(nature17, "Tour de télécommunications"); + sProduit.createFeatureAttributeValue(nature17, "Antenne"); + sProduit.createFeatureAttributeValue(nature17, "Silo, château d'eau"); + sProduit.createFeatureAttributeValue(nature17, "Cheminée"); + + // Classe Transport par câble + + sProduit.createFeatureType("Transport par câble"); + FeatureType transportParCable = (FeatureType) (sProduit + .getFeatureTypeByName("Transport par câble")); + transportParCable.setDefinition(""); + transportParCable.setIsAbstract(false); + + // Attribut Nature + sProduit + .createFeatureAttribute(transportParCable, "Nature", "string", true); + AttributeType nature18 = transportParCable + .getFeatureAttributeByName("Nature"); + nature18.setDefinition(""); + sProduit.createFeatureAttributeValue(nature18, + "Téléphérique ou télécabine à usage de loisirs"); + sProduit.createFeatureAttributeValue(nature18, + "Télésiège ou téléski à usage de loisirs"); + sProduit.createFeatureAttributeValue(nature18, + "Transport par câble à usage privé ou industriel"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(transportParCable, "Toponyme", "string", + false); + AttributeType toponyme29 = transportParCable + .getFeatureAttributeByName("Toponyme"); + toponyme29.setDefinition(""); + + // Classe Aérodrome + + sProduit.createFeatureType("Aérodrome"); + FeatureType aerodrome = (FeatureType) (sProduit + .getFeatureTypeByName("Aérodrome")); + aerodrome.setDefinition(""); + aerodrome.setIsAbstract(false); + + // AttributNature + sProduit.createFeatureAttribute(aerodrome, "Nature", "string", true); + AttributeType nature19 = aerodrome.getFeatureAttributeByName("Nature"); + nature19.setDefinition(""); + sProduit.createFeatureAttributeValue(nature19, "Normal"); + sProduit.createFeatureAttributeValue(nature19, "D'altitude"); + sProduit.createFeatureAttributeValue(nature19, "Sur l'eau"); + + // Attribut Accès + sProduit.createFeatureAttribute(aerodrome, "Accès", "string", true); + AttributeType acces3 = aerodrome.getFeatureAttributeByName("Accès"); + acces3.setDefinition(""); + sProduit.createFeatureAttributeValue(acces3, + "Desservi par au moins une ligne régulière de transport de voyageurs"); + sProduit.createFeatureAttributeValue(acces3, + "Desservi par aucune ligne régulière de transport de voyageurs"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(aerodrome, "Toponyme", "string", false); + AttributeType toponyme30 = aerodrome.getFeatureAttributeByName("Toponyme"); + toponyme30.setDefinition(""); + + // Classe Piste d'aérodrome + + sProduit.createFeatureType("Piste d'aérodrome"); + FeatureType pisteDAerodrome = (FeatureType) (sProduit + .getFeatureTypeByName("Piste d'aérodrome")); + pisteDAerodrome.setDefinition(""); + pisteDAerodrome.setIsAbstract(false); + + // Classe Cimetière + + sProduit.createFeatureType("Cimetière"); + FeatureType cimetiere = (FeatureType) (sProduit + .getFeatureTypeByName("Cimetière")); + cimetiere.setDefinition(""); + cimetiere.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(cimetiere, "Nature", "string", true); + AttributeType nature20 = cimetiere.getFeatureAttributeByName("Nature"); + nature20.setDefinition(""); + sProduit.createFeatureAttributeValue(nature20, "Civil"); + sProduit.createFeatureAttributeValue(nature20, "Nécropole nationale"); + sProduit.createFeatureAttributeValue(nature20, + "Cimetière militaire étranger"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(cimetiere, "Toponyme", "string", true); + AttributeType toponyme31 = cimetiere.getFeatureAttributeByName("Toponyme"); + toponyme31.setDefinition(""); + + // Classe Enceinte militaire + + sProduit.createFeatureType("Enceinte militaire"); + FeatureType enceinteMilitaire = (FeatureType) (sProduit + .getFeatureTypeByName("Enceinte militaire")); + enceinteMilitaire.setDefinition(""); + enceinteMilitaire.setIsAbstract(false); + + // Attribut Nature + sProduit + .createFeatureAttribute(enceinteMilitaire, "Nature", "string", true); + AttributeType nature21 = enceinteMilitaire + .getFeatureAttributeByName("Nature"); + nature21.setDefinition(""); + sProduit.createFeatureAttributeValue(nature21, "Fort et citadelle"); + sProduit.createFeatureAttributeValue(nature21, "Terrain militaire"); + sProduit.createFeatureAttributeValue(nature21, "Champ de tir"); + + // Attribut Caractère touristique + sProduit.createFeatureAttribute(enceinteMilitaire, "Caractère touristique", + "string", true); + AttributeType caractereTouristique2 = enceinteMilitaire + .getFeatureAttributeByName("Caractère touristique"); + caractereTouristique2.setDefinition(""); + sProduit + .createFeatureAttributeValue( + caractereTouristique2, + "Sans objet: uniquement et obligatoirement pour les terrains militaires et les champs de tir"); + sProduit.createFeatureAttributeValue(caractereTouristique2, "Oui"); + sProduit.createFeatureAttributeValue(caractereTouristique2, "Non"); + + // Attribut Toponyme + sProduit.createFeatureAttribute(enceinteMilitaire, "Toponyme", "string", + false); + AttributeType toponyme32 = enceinteMilitaire + .getFeatureAttributeByName("Toponyme"); + toponyme32.setDefinition(""); + + // Classe Digue + + sProduit.createFeatureType("Digue"); + FeatureType digue = (FeatureType) (sProduit.getFeatureTypeByName("Digue")); + digue.setDefinition(""); + digue.setIsAbstract(false); + + // Attribut Nature + sProduit.createFeatureAttribute(digue, "Nature", "string", true); + AttributeType nature22 = digue.getFeatureAttributeByName("Nature"); + nature22.setDefinition(""); + sProduit.createFeatureAttributeValue(nature22, + "Digue délimitant un barrage"); + sProduit.createFeatureAttributeValue(nature22, "Autre digue"); + + // Classe Métro aérien + + sProduit.createFeatureType("Métro aérien"); + FeatureType metroAerien = (FeatureType) (sProduit + .getFeatureTypeByName("Métro aérien")); + metroAerien.setDefinition(""); + metroAerien.setIsAbstract(false); + + // Classe Sentier de grande randonnée + + sProduit.createFeatureType("Sentier de grande randonnée"); + FeatureType sentierDeGrandeRandonnee = (FeatureType) (sProduit + .getFeatureTypeByName("Sentier de grande randonnée")); + sentierDeGrandeRandonnee.setDefinition(""); + sentierDeGrandeRandonnee.setIsAbstract(false); + + // Attribut Numéro + sProduit.createFeatureAttribute(sentierDeGrandeRandonnee, "Numéro", + "string", false); + AttributeType numero = sentierDeGrandeRandonnee + .getFeatureAttributeByName("Numéro"); + numero.setDefinition(""); + + // Attribut Toponyme + sProduit.createFeatureAttribute(sentierDeGrandeRandonnee, "Toponyme", + "string", false); + AttributeType toponyme33 = sentierDeGrandeRandonnee + .getFeatureAttributeByName("Toponyme"); + toponyme33.setDefinition(""); + + /*************************************************************************** + * Ajout du thème "Point remarquable du relief; massif boisé" * + ************************************************************************/ + + // Classe Point remarquable du relief + + sProduit.createFeatureType("Point remarquable du relief"); + FeatureType pointRemarquableDuRelief = (FeatureType) (sProduit + .getFeatureTypeByName("Point remarquable du relief")); + pointRemarquableDuRelief.setDefinition(""); + pointRemarquableDuRelief.setIsAbstract(false); + + // Attribut Toponyme + sProduit.createFeatureAttribute(pointRemarquableDuRelief, "Toponyme", + "string", false); + AttributeType toponyme34 = pointRemarquableDuRelief + .getFeatureAttributeByName("Toponyme"); + toponyme34.setDefinition(""); + + // Attribut Classification + sProduit.createFeatureAttribute(pointRemarquableDuRelief, "Classification", + "string", true); + AttributeType classification3 = pointRemarquableDuRelief + .getFeatureAttributeByName("Classification"); + classification3.setDefinition(""); + sProduit.createFeatureAttributeValue(classification3, "2-Très important"); + sProduit.createFeatureAttributeValue(classification3, "3"); + sProduit.createFeatureAttributeValue(classification3, "4"); + sProduit.createFeatureAttributeValue(classification3, "5"); + sProduit.createFeatureAttributeValue(classification3, "6"); + sProduit.createFeatureAttributeValue(classification3, "7"); + sProduit.createFeatureAttributeValue(classification3, "8"); + sProduit.createFeatureAttributeValue(classification3, "9-Peu important"); + + // Attribut Nature + sProduit.createFeatureAttribute(pointRemarquableDuRelief, "Nature", + "string", true); + AttributeType nature23 = pointRemarquableDuRelief + .getFeatureAttributeByName("Nature"); + nature23.setDefinition(""); + sProduit.createFeatureAttributeValue(nature23, "Cap, point promontoire"); + sProduit.createFeatureAttributeValue(nature23, "Cirque"); + sProduit.createFeatureAttributeValue(nature23, "Col, passage, cluse"); + sProduit.createFeatureAttributeValue(nature23, "Cratère, volcan"); + sProduit + .createFeatureAttributeValue( + nature23, + "Crète, arête, ligne de faîte; chaîne de montagne, montagne, massif rocheux; mont, colline, mamelon, sommet"); + sProduit.createFeatureAttributeValue(nature23, "Coteau, versant, falaise"); + sProduit.createFeatureAttributeValue(nature23, + "Cuvette, bassin fermé, doline, dépression"); + sProduit.createFeatureAttributeValue(nature23, + "Défilé, gorge, canyon; val, vallée, vallon, ravin, thalweg, combe"); + sProduit.createFeatureAttributeValue(nature23, "île, îlot, presqu'île"); + sProduit.createFeatureAttributeValue(nature23, + "Dune; isthme, cordon littoral;plage, grâve"); + sProduit.createFeatureAttributeValue(nature23, "Pic, aiguille, piton"); + sProduit.createFeatureAttributeValue(nature23, "Plaine, plateau"); + sProduit.createFeatureAttributeValue(nature23, "Récifs, brisants, rochers"); + sProduit.createFeatureAttributeValue(nature23, + "Chaos, rocher, escarpement rocheux"); + sProduit.createFeatureAttributeValue(nature23, + "Baie, golfe, anse, crique, calanque, espace marin divers"); + sProduit.createFeatureAttributeValue(nature23, "Bans, haut-fond"); + + // Attribut Cote + sProduit.createFeatureAttribute(pointRemarquableDuRelief, "Cote", "entier", + false); + AttributeType cote4 = pointRemarquableDuRelief + .getFeatureAttributeByName("Cote"); + cote4.setDefinition(""); + + // Attribut Caractère touristique + sProduit.createFeatureAttribute(pointRemarquableDuRelief, + "Caractère touristique", "string", true); + AttributeType caractereTouristique3 = pointRemarquableDuRelief + .getFeatureAttributeByName("Caractère touristique"); + caractereTouristique3.setDefinition(""); + sProduit.createFeatureAttributeValue(caractereTouristique3, "Oui"); + sProduit.createFeatureAttributeValue(caractereTouristique3, "Non"); + + // Classe Massif boisé + + sProduit.createFeatureType("Massif boisé"); + FeatureType massifBoise = (FeatureType) (sProduit + .getFeatureTypeByName("Massif boisé")); + massifBoise.setDefinition(""); + massifBoise.setIsAbstract(false); + + // Attribut Toponyme + sProduit.createFeatureAttribute(massifBoise, "Toponyme", "string", false); + AttributeType toponyme35 = massifBoise + .getFeatureAttributeByName("Toponyme"); + toponyme35.setDefinition(""); + + // Attribut Classification + sProduit.createFeatureAttribute(massifBoise, "Classification", "string", + true); + AttributeType classification4 = massifBoise + .getFeatureAttributeByName("Classification"); + classification4.setDefinition(""); + sProduit.createFeatureAttributeValue(classification4, + "Bois ou forêt de superficie supérieure à 2000 ha"); + sProduit.createFeatureAttributeValue(classification4, + "Bois ou forêt de superficie comprise entre 1000 et 2000 ha"); + sProduit.createFeatureAttributeValue(classification4, + "Bois ou forêt de superficie comprise entre 500 et 1000 ha"); + + // Attribut Caractère touristique + sProduit.createFeatureAttribute(massifBoise, "Caractère touristique", + "string", true); + AttributeType caractereTouristique4 = massifBoise + .getFeatureAttributeByName("Caractère touristique"); + caractereTouristique4.setDefinition(""); + sProduit.createFeatureAttributeValue(caractereTouristique4, "Oui"); + sProduit.createFeatureAttributeValue(caractereTouristique4, "Non"); + + /*************************************************************************** + * Ajout du thème "Administratif" * + ************************************************************************/ + + // Classe Territoire étranger + + sProduit.createFeatureType("Territoire étranger"); + FeatureType territoireEtranger = (FeatureType) (sProduit + .getFeatureTypeByName("Territoire étranger")); + territoireEtranger.setDefinition(""); + territoireEtranger.setIsAbstract(false); + + // Attribut Nom + sProduit.createFeatureAttribute(territoireEtranger, "Nom", "string", true); + AttributeType nom = territoireEtranger.getFeatureAttributeByName("Nom"); + nom.setDefinition(""); + sProduit.createFeatureAttributeValue(nom, "Belgique"); + sProduit.createFeatureAttributeValue(nom, "Luxembourg"); + sProduit.createFeatureAttributeValue(nom, "Allemagne"); + sProduit.createFeatureAttributeValue(nom, "Suisse"); + sProduit.createFeatureAttributeValue(nom, "Italie"); + sProduit.createFeatureAttributeValue(nom, "Monaco"); + sProduit.createFeatureAttributeValue(nom, "Espagne"); + sProduit.createFeatureAttributeValue(nom, "Andorre"); + sProduit.createFeatureAttributeValue(nom, "Royaume-Uni"); + sProduit.createFeatureAttributeValue(nom, + "Domaine marin (au delà de la laisse des plus hautes mers)"); + + // Atribut Numéro INSEE + sProduit.createFeatureAttribute(territoireEtranger, "Numéro INSEE", + "string", true); + AttributeType numeroINSEE = territoireEtranger + .getFeatureAttributeByName("Numéro INSEE"); + numeroINSEE.setDefinition(""); + sProduit.createFeatureAttributeValue(nom, "99131-Belgique"); + sProduit.createFeatureAttributeValue(nom, "99137-Luxembourg"); + sProduit.createFeatureAttributeValue(nom, "99109-Allemagne"); + sProduit.createFeatureAttributeValue(nom, "99140-Suisse"); + sProduit.createFeatureAttributeValue(nom, "99127-Italie"); + sProduit.createFeatureAttributeValue(nom, "99138-Monaco"); + sProduit.createFeatureAttributeValue(nom, "99134-Espagne"); + sProduit.createFeatureAttributeValue(nom, "99130-Andorre"); + sProduit.createFeatureAttributeValue(nom, "99132-Royaume-Uni"); + sProduit.createFeatureAttributeValue(nom, + "00000-Domaine marin (au delà de la laisse des plus hautes mers)"); + + // Classe Commune + + sProduit.createFeatureType("Commune"); + FeatureType commune1 = (FeatureType) (sProduit + .getFeatureTypeByName("Commune")); + commune1.setDefinition(""); + commune1.setIsAbstract(false); + + // Attribut Lien BDAdministrative + sProduit.createFeatureAttribute(commune1, "Lien BDAdministrative", + "string", false); + AttributeType lienBDAdministrative = commune1 + .getFeatureAttributeByName("Lien BDAdministrative"); + lienBDAdministrative.setDefinition(""); + + // Attribut Numéro INSEE + sProduit.createFeatureAttribute(commune1, "Numéro INSEE", "string", false); + AttributeType numeroINSEE2 = commune1 + .getFeatureAttributeByName("Numéro INSEE"); + numeroINSEE2.setDefinition(""); + + // Attribut Centroîde + sProduit.createFeatureAttribute(commune1, "Centroîde", + "coordonnées en Lambert II", false); + AttributeType centroide = commune1.getFeatureAttributeByName("Centroîde"); + centroide.setDefinition(""); + + // Classe Limite administrative + + sProduit.createFeatureType("Limite administrative"); + FeatureType limiteAdministrative = (FeatureType) (sProduit + .getFeatureTypeByName("Limite administrative")); + limiteAdministrative.setDefinition(""); + limiteAdministrative.setIsAbstract(false); + + // Attribut Type + sProduit.createFeatureAttribute(limiteAdministrative, "Type", "string", + true); + AttributeType type4 = limiteAdministrative + .getFeatureAttributeByName("Type"); + type4.setDefinition(""); + sProduit.createFeatureAttributeValue(type4, + "Limite côtière (laisse des plus hautes eaux)"); + sProduit.createFeatureAttributeValue(type4, "Frontière internationale"); + sProduit.createFeatureAttributeValue(type4, "Limite de région"); + sProduit.createFeatureAttributeValue(type4, "Limite de département"); + sProduit.createFeatureAttributeValue(type4, "Limite d'arrondissement"); + sProduit.createFeatureAttributeValue(type4, "Limite de pseudo-canto"); + sProduit.createFeatureAttributeValue(type4, "Limite de commune"); + + // Attribut Précision + sProduit.createFeatureAttribute(limiteAdministrative, "Précision", + "string", true); + AttributeType precision = limiteAdministrative + .getFeatureAttributeByName("Précision"); + precision.setDefinition(""); + sProduit.createFeatureAttributeValue(precision, + "Précision standard de localisation"); + sProduit + .createFeatureAttributeValue( + precision, + "Précision non définie (en particulier limite s'appuyant sur des surfaces d'eau domaine public de l'Etat)"); + + // Relation d'association A pour chef-lieu + sProduit.createFeatureAssociation("A pour chef-lieu", commune1, + zoneDHabitat, "A pour chef-lieu", "est chef-lieu de"); + + /*************************************************************************** + * Ajout du thème "Occupation du sol" * + ************************************************************************/ + + // Classe Zone d'occupation du sol + sProduit.createFeatureType("Zone d'occupation du sol"); + FeatureType zoneDOccupationDuSol = (FeatureType) (sProduit + .getFeatureTypeByName("Zone d'occupation du sol")); + zoneDOccupationDuSol.setDefinition(""); + zoneDOccupationDuSol.setIsAbstract(false); + + // Attribut Poste + sProduit.createFeatureAttribute(zoneDOccupationDuSol, "Poste", "string", + true); + AttributeType poste = zoneDOccupationDuSol + .getFeatureAttributeByName("Poste"); + poste.setDefinition(""); + sProduit.createFeatureAttributeValue(poste, "Bâti"); + sProduit.createFeatureAttributeValue(poste, "Zone d'activités"); + sProduit.createFeatureAttributeValue(poste, "Carrière, décharge"); + sProduit + .createFeatureAttributeValue( + poste, + "Prairie, pelouse, toute culture hormis vigne, verger, bananeraie, canne à sucre, rizière"); + sProduit.createFeatureAttributeValue(poste, + "Vigne, verger, bananeraie, canne à sucre, rizière"); + sProduit.createFeatureAttributeValue(poste, "Forêt"); + sProduit.createFeatureAttributeValue(poste, "Brousailles"); + sProduit + .createFeatureAttributeValue(poste, + "Plage, dune, sable, gravier, galet ou terrain nu sans couvert végétal"); + sProduit.createFeatureAttributeValue(poste, "Rocher, éboulis"); + sProduit.createFeatureAttributeValue(poste, "Mangrove"); + sProduit.createFeatureAttributeValue(poste, "Marais, tourbière"); + sProduit.createFeatureAttributeValue(poste, "Marais salants"); + sProduit.createFeatureAttributeValue(poste, "Eau libre"); + sProduit.createFeatureAttributeValue(poste, "Glacier, névé"); + sProduit.createFeatureAttributeValue(poste, "Territoires construits"); + sProduit.createFeatureAttributeValue(poste, + "Culture, prairie, végétation naturelle hors forêt"); + sProduit.createFeatureAttributeValue(poste, "Forêt"); + sProduit.createFeatureAttributeValue(poste, + "Plage, dune, sable, gravier, galets"); + sProduit.createFeatureAttributeValue(poste, "Rocher, éboulis"); + sProduit.createFeatureAttributeValue(poste, "Marais, tourbière"); + sProduit.createFeatureAttributeValue(poste, "Marais salants"); + sProduit.createFeatureAttributeValue(poste, "Eau libre"); + sProduit.createFeatureAttributeValue(poste, "Glaciers, névé"); + + /*************************************************************************** + * FIN DU SCHEMA * + ************************************************************************/ + + Integer compteurFT = 0; + Integer compteurAT = 0; + Integer compteurV = 0; + System.out.println("Récapitulons:"); + List listeFT = sProduit.getFeatureTypes(); + for (GF_FeatureType type : listeFT) { + compteurFT = compteurFT + 1; + System.out.println("Classe: " + type.getTypeName()); + List listeAT = type.getFeatureAttributes(); + for (GF_AttributeType type2 : listeAT) { + compteurAT = compteurAT + 1; + System.out.println("Attribut: " + type2.getMemberName()); + if (type2.getValueDomainType()) { + List listeValeurs = type2.getValuesDomain(); + for (FC_FeatureAttributeValue value : listeValeurs) { + compteurV = compteurV + 1; + System.out.println("Valeur: " + value.getLabel()); + } + } + } + } + System.out.println("Nb de FT = " + compteurFT); + System.out.println("Nb de AT = " + compteurAT); + System.out.println("Nb de V = " + compteurV); + + return sProduit; + } +} diff --git a/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/SchemaBDTopoPays12Nat.java b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/SchemaBDTopoPays12Nat.java new file mode 100644 index 0000000..7dc492e --- /dev/null +++ b/src/main/java/fr/ign/cogit/geoxygene/schemageo/schema/exnathalie/SchemaBDTopoPays12Nat.java @@ -0,0 +1,1183 @@ +package fr.ign.cogit.geoxygene.schemageo.schema.exnathalie; +/* + * This file is part of the GeOxygene project source files. GeOxygene aims at providing an open framework which implements OGC/ISO specifications for the development and deployment of geographic (GIS) applications. It is a open source contribution of the COGIT laboratory at the Institut Géographique National (the French National Mapping Agency). See: http://oxygene-project.sourceforge.net + * Copyright (C) 2005 Institut Géographique National + * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library (see file LICENSE if present); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +import java.util.List; + +import fr.ign.cogit.geoxygene.api.feature.type.FC_FeatureAttributeValue; +import fr.ign.cogit.geoxygene.api.feature.type.GF_AttributeType; +import fr.ign.cogit.geoxygene.api.feature.type.GF_FeatureType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOProduit.AttributeType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOProduit.FeatureType; +import fr.ign.cogit.geoxygene.schema.schemaConceptuelISOProduit.SchemaConceptuelProduit; + +public class SchemaBDTopoPays12Nat { + + public static SchemaConceptuelProduit creeSchemaBDTopoPays12() { + + /*************************************************************************** + * Creation du catalogue de la base de données * + ************************************************************************/ + SchemaConceptuelProduit sProduit = new SchemaConceptuelProduit(); + sProduit.setNomSchema("Catalogue BDTOPO"); + sProduit.setBD("BDTOPO Pays V1.2"); + sProduit.setTagBD(1); + sProduit.setDate("Décembre 2002"); + sProduit.setVersion("1.2"); + sProduit.setSource("Photogrammétrie"); + sProduit.setSujet("Composante topographique du RGE"); + + /*************************************************************************** + * Ajout du thème routier * + ************************************************************************/ + + // Classe Tronçon de + // route/////////////////////////////////////////////////// + + sProduit.createFeatureType("Tronçon de route"); + FeatureType tronconDeRoute = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de route")); + tronconDeRoute + .setDefinition("Portion de voie de communication destinée aux automobiles, homogène pour l'ensemble des attributs et des relations qui la concernent. " + + "Représente uniquement la chaussée, délimitée par les bas-côtés ou les trottoirs."); + tronconDeRoute.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(tronconDeRoute, "Nature", "string", true); + AttributeType nature1 = tronconDeRoute.getFeatureAttributeByName("Nature"); + nature1 + .setDefinition("Hiérarchiqation du réseau routier basée sur l'importance des tronçons de route pour le trafic routier."); + sProduit.createFeatureAttributeValue(nature1, "Autoroutière"); + sProduit.createFeatureAttributeValue(nature1, "Principale"); + sProduit.createFeatureAttributeValue(nature1, "Régionale"); + sProduit.createFeatureAttributeValue(nature1, "Locale"); + sProduit.createFeatureAttributeValue(nature1, "Contre-allée"); + sProduit.createFeatureAttributeValue(nature1, "En construction"); + + // Attribut Classement + sProduit.createFeatureAttribute(tronconDeRoute, "Classement", "string", + true); + AttributeType classement1 = tronconDeRoute + .getFeatureAttributeByName("Classement"); + classement1.setDefinition("Statut d'une route classée."); + sProduit.createFeatureAttributeValue(classement1, "Autoroute"); + sProduit.createFeatureAttributeValue(classement1, "Nationale"); + sProduit.createFeatureAttributeValue(classement1, "Départementale"); + sProduit.createFeatureAttributeValue(classement1, "Autre classement"); + // Attribut Département gestionnaire + sProduit.createFeatureAttribute(tronconDeRoute, "Département gestionnaire", + "string", false); + AttributeType depGest1 = tronconDeRoute + .getFeatureAttributeByName("Département gestionnaire"); + depGest1.setDefinition("Département gestionnaire de l'objet."); + // Attribut Fictif + sProduit.createFeatureAttribute(tronconDeRoute, "Fictif", "booleen", false); + AttributeType fictif1 = tronconDeRoute.getFeatureAttributeByName("Fictif"); + fictif1 + .setDefinition("La valeur 'vraie' indique que la géométrie du tronçon de route n'est pas significative. " + + "La présence de ce dernier sert alors à doubler une 'surface de route' ou à raccorder une bretelle " + + "à l'axe de la chaussée afin d'assurer la continuité du réseau routier linéaire."); + // Attribut Franchissement + sProduit.createFeatureAttribute(tronconDeRoute, "Franchissement", "string", + true); + AttributeType franchissement1 = tronconDeRoute + .getFeatureAttributeByName("Franchissement"); + franchissement1 + .setDefinition("Indique la présence d'un obstacle physique dans le tracé d'une route et la manière dont il est franchissable."); + sProduit.createFeatureAttributeValue(franchissement1, "Bac Auto"); + sProduit.createFeatureAttributeValue(franchissement1, "Gué ou radier"); + sProduit.createFeatureAttributeValue(franchissement1, "Pont"); + sProduit.createFeatureAttributeValue(franchissement1, "Tunnel"); + sProduit.createFeatureAttributeValue(franchissement1, "Sans objet"); + // Attribut Largeur de chaussée + sProduit.createFeatureAttribute(tronconDeRoute, "Largeur de chaussée", + "flottant", false); + AttributeType largeurChaussee1 = tronconDeRoute + .getFeatureAttributeByName("Largeur de chaussée"); + largeurChaussee1 + .setDefinition("Largeur de la chaussée en mètres. Pour le moment, la valeur indicative est calculée d'après le nombre de voies, et arrondie au demi-mètre."); + // Attribut Nom + sProduit.createFeatureAttribute(tronconDeRoute, "Nom", "string", false); + AttributeType nom1 = tronconDeRoute.getFeatureAttributeByName("Nom"); + nom1.setDefinition("Nom de la route."); + // Attribut Nombre de voies + sProduit.createFeatureAttribute(tronconDeRoute, "Nombre de voies", + "entier", false); + AttributeType nbVoies1 = tronconDeRoute + .getFeatureAttributeByName("Nombre de voies"); + nbVoies1 + .setDefinition("Nombre total de voies d'une route, d'une rue, ou d'une chaussée de route à chaussées séparées."); + // Attribut Numéro de route + sProduit.createFeatureAttribute(tronconDeRoute, "Numéro de route", + "string", false); + AttributeType numRoute1 = tronconDeRoute + .getFeatureAttributeByName("Numéro de route"); + numRoute1.setDefinition("Numéro de la route."); + + // Classe Surface de route + + sProduit.createFeatureType("Surface de route"); + FeatureType surfaceDeRoute = (FeatureType) (sProduit + .getFeatureTypeByName("Surface de route")); + surfaceDeRoute + .setDefinition("Partie de la chaussée d'une route caractérisée par une largeur exceptionnelle (place, carrefour, péage, parking). Zone à trafic non structuré."); + surfaceDeRoute.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(surfaceDeRoute, "Nature", "string", true); + AttributeType nature2 = surfaceDeRoute.getFeatureAttributeByName("Nature"); + nature2 + .setDefinition("Attribut permettant de distinguer divers types de surface de route."); + sProduit.createFeatureAttributeValue(nature2, "Parking"); + sProduit.createFeatureAttributeValue(nature2, "Péage"); + sProduit.createFeatureAttributeValue(nature2, "Place ou carrefour"); + + // Classe Tronçon de chemin + + sProduit.createFeatureType("Tronçon de chemin"); + FeatureType tronconDeChemin = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de chemin")); + tronconDeChemin + .setDefinition("Voie de communication terrestre non ferrée destinée aux pitéons, aux cycles ou aux animaux, " + + "ou route sommairement revêtue (pas de revêtement de surface ou revêtement de surface très dégradé)."); + tronconDeChemin.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(tronconDeChemin, "Nature", "string", true); + AttributeType nature3 = tronconDeChemin.getFeatureAttributeByName("Nature"); + nature3 + .setDefinition("Attribut permettant de distinguer plusieurs types de voies de communication terrestres."); + sProduit.createFeatureAttributeValue(nature3, "Chemin empierré"); + sProduit.createFeatureAttributeValue(nature3, "Chemin"); + sProduit.createFeatureAttributeValue(nature3, "Sentier"); + sProduit.createFeatureAttributeValue(nature3, "Escalier"); + sProduit.createFeatureAttributeValue(nature3, "Piste cyclable"); + // Attribut Franchissement + sProduit.createFeatureAttribute(tronconDeChemin, "Franchissement", + "string", true); + AttributeType franchissement3 = tronconDeChemin + .getFeatureAttributeByName("Franchissement"); + franchissement3 + .setDefinition("Indique la présence d'un obstacle physique dans le tracé d'une route et la manière dont il est franchissable."); + sProduit.createFeatureAttributeValue(franchissement3, "Bac piéton"); + sProduit.createFeatureAttributeValue(franchissement3, "Gué ou radier"); + sProduit.createFeatureAttributeValue(franchissement3, "Pont"); + sProduit.createFeatureAttributeValue(franchissement3, "Tunnel"); + sProduit.createFeatureAttributeValue(franchissement3, "Sans objet"); + // Attribut Nom + sProduit.createFeatureAttribute(tronconDeChemin, "Nom", "string", false); + AttributeType nom3 = tronconDeChemin.getFeatureAttributeByName("Nom"); + nom3.setDefinition("Nom du chemin."); + + /*************************************************************************** + * Ajout du thème "voies ferrées et autres moyens de transport terrestre" * + ************************************************************************/ + + // Classe Tronçon de voie ferrée + + sProduit.createFeatureType("Tronçon de voie ferrée"); + FeatureType tronconDeVoieFerree = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de voie ferrée")); + tronconDeVoieFerree + .setDefinition("Portion de voie ferrée homogène pour l'ensemble des attributs qui la concernent. " + + "Dans le cas d'une ligne composée de deux à quatre voies parallèles, l'ensemble des voies est modélisé par un seul objet."); + tronconDeVoieFerree.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(tronconDeVoieFerree, "Nature", "string", + true); + AttributeType nature4 = tronconDeVoieFerree + .getFeatureAttributeByName("Nature"); + nature4 + .setDefinition("Attribut permettant de distinguer plusieurs types de voies ferrées selon leur fonction et leur état."); + sProduit.createFeatureAttributeValue(nature4, "Voie TGV"); + sProduit.createFeatureAttributeValue(nature4, "Voie ferrée principale"); + sProduit.createFeatureAttributeValue(nature4, "Voie de service"); + sProduit.createFeatureAttributeValue(nature4, "Voie ferrée non exploitée"); + sProduit.createFeatureAttributeValue(nature4, "Transport urbain"); + sProduit.createFeatureAttributeValue(nature4, "Funiculaire ou crémaillère"); + sProduit + .createFeatureAttributeValue(nature4, "Voie ferrée en construction"); + // Attribut Electifié + sProduit.createFeatureAttribute(tronconDeVoieFerree, "Electrifié", + "booleen", false); + AttributeType electrifie4 = tronconDeVoieFerree + .getFeatureAttributeByName("Electrifié"); + electrifie4 + .setDefinition("Energie servant à la propulsion des locomotives."); + // Attribut Franchissement + sProduit.createFeatureAttribute(tronconDeVoieFerree, "Franchissement", + "string", true); + AttributeType franchissement4 = tronconDeVoieFerree + .getFeatureAttributeByName("Franchissement"); + franchissement4 + .setDefinition("Indique si le tronçon est situé sur un pont, dans un tunnel ou aucun des deux."); + sProduit.createFeatureAttributeValue(franchissement4, "Pont"); + sProduit.createFeatureAttributeValue(franchissement4, "Tunnel"); + sProduit.createFeatureAttributeValue(franchissement4, "Sans objet"); + // Attribut Largeur de voie ferrée + sProduit.createFeatureAttribute(tronconDeVoieFerree, + "Largeur de voie ferrée", "string", true); + AttributeType largeurVoieFerree4 = tronconDeVoieFerree + .getFeatureAttributeByName("Largeur de voie ferrée"); + largeurVoieFerree4 + .setDefinition("Permet de distinguer les voies ferrées de largeur standard pour la France (1.44 m) des voies ferrées plus larges ou plus étroites."); + sProduit.createFeatureAttributeValue(largeurVoieFerree4, "Etroite"); + sProduit.createFeatureAttributeValue(largeurVoieFerree4, "Normalisée"); + sProduit.createFeatureAttributeValue(largeurVoieFerree4, "Large"); + // Attribut Nombre de voies ferrées + sProduit.createFeatureAttribute(tronconDeVoieFerree, + "Nombre de voies ferrées", "entier", false); + AttributeType nbVoiesFerrees4 = tronconDeVoieFerree + .getFeatureAttributeByName("Nombre de voies ferrées"); + nbVoiesFerrees4 + .setDefinition("Indique si une ligne de chemin de fer est constituée d'une voie ferrée ou de plusieurs."); + + // Classe Aire de triage + + sProduit.createFeatureType("Aire de triage"); + FeatureType aireDeTriage = (FeatureType) (sProduit + .getFeatureTypeByName("Aire de triage")); + aireDeTriage + .setDefinition("Ensemble des tronçons de voies, voies de garage, aiguillages permettant le tri des wagons et la composition des trains."); + aireDeTriage.setIsAbstract(false); + + // Classe Transport par câble + + sProduit.createFeatureType("Transport par câble"); + FeatureType transportParCable = (FeatureType) (sProduit + .getFeatureTypeByName("Transport par câble")); + transportParCable + .setDefinition("Moyen de transport constitué d'un ou plusieurs câbles porteurs."); + transportParCable.setIsAbstract(false); + // Attribut Nature + sProduit + .createFeatureAttribute(transportParCable, "Nature", "string", true); + AttributeType nature6 = transportParCable + .getFeatureAttributeByName("Nature"); + nature6 + .setDefinition("Attribut permettant de distinguer différentes natures de transport par câble."); + sProduit.createFeatureAttributeValue(nature6, "Câble transporteur"); + sProduit.createFeatureAttributeValue(nature6, + "Télécabine, téléphérique, téléski"); + + /*************************************************************************** + * Ajout du thème "transport d'énergie et de fluides" * + ************************************************************************/ + + // Classe Ligne électrique + + sProduit.createFeatureType("Ligne électrique"); + FeatureType ligneElectrique = (FeatureType) (sProduit + .getFeatureTypeByName("Ligne électrique")); + ligneElectrique + .setDefinition("Portion de ligne électrique homogène pour l'ensemble des attributs qui la concernent."); + ligneElectrique.setIsAbstract(false); + // Attribut Voltage + sProduit.createFeatureAttribute(ligneElectrique, "Voltage", "string", true); + AttributeType voltage7 = ligneElectrique + .getFeatureAttributeByName("Voltage"); + voltage7.setDefinition("Tension de construction de la ligne électrique."); + sProduit.createFeatureAttributeValue(voltage7, "63 kV"); + sProduit.createFeatureAttributeValue(voltage7, "90 kV"); + sProduit.createFeatureAttributeValue(voltage7, "150 kV"); + sProduit.createFeatureAttributeValue(voltage7, "225 kV"); + sProduit.createFeatureAttributeValue(voltage7, "400 kV"); + sProduit.createFeatureAttributeValue(voltage7, "Inconnu"); + + // Classe Poste de + // transformation/////////////////////////////////////////////////// + + sProduit.createFeatureType("Poste de transformation"); + FeatureType posteTransformation = (FeatureType) (sProduit + .getFeatureTypeByName("Poste de transformation")); + posteTransformation + .setDefinition("Enceinte à l'intérieur de laquelle le courant transporté par une ligne électrique est transformé."); + posteTransformation.setIsAbstract(false); + + // Classe Tronçon de voie ferrée + + sProduit.createFeatureType("Canalisation"); + FeatureType canalisation = (FeatureType) (sProduit + .getFeatureTypeByName("Canalisation")); + canalisation.setDefinition("Canalisation ou tapis roulant"); + canalisation.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(canalisation, "Nature", "string", true); + AttributeType nature9 = canalisation.getFeatureAttributeByName("Nature"); + nature9 + .setDefinition("Attribut permettant de différencier les canalisations d'eau des autres."); + sProduit.createFeatureAttributeValue(nature9, "Eau"); + sProduit.createFeatureAttributeValue(nature9, "Autre"); + + // Classe Pylône + + sProduit.createFeatureType("Pylône"); + FeatureType pylone = (FeatureType) (sProduit.getFeatureTypeByName("Pylône")); + pylone.setDefinition("Support de ligne électrique."); + pylone.setIsAbstract(false); + + /*************************************************************************** + * Ajout du thème "hydrographie terrestre" * + ************************************************************************/ + + // Classe Tronçon de cours d'eau + + sProduit.createFeatureType("Tronçon de cours d'eau"); + FeatureType tronconCoursDeau = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de cours d'eau")); + tronconCoursDeau + .setDefinition("Portion de cours d'eau, réel ou fictif, permanent ou temporaire, naturel ou artificiel, " + + "homogène pour l'ensemble des attributs qui la concernent, et qui n'inclut pas de confluent."); + tronconCoursDeau.setIsAbstract(false); + // Attribut Artificialisé + sProduit.createFeatureAttribute(tronconCoursDeau, "Artificialisé", + "booleen", false); + AttributeType artificialise11 = tronconCoursDeau + .getFeatureAttributeByName("Artificialisé"); + artificialise11 + .setDefinition("Permet de distinguer les cours d'eau naturls des cours d'eau artificiels ou artificialisés."); + // Attribut Fictif + sProduit.createFeatureAttribute(tronconCoursDeau, "Fictif", "booleen", + false); + AttributeType fictif11 = tronconCoursDeau + .getFeatureAttributeByName("Fictif"); + fictif11 + .setDefinition("La valeur 'vrai' permet de qualifier un objet dont la géométrie n'est pas significative, " + + "et dont le rôle est d'assurer la continuité d'un réseau linéaire."); + // Attribut Franchissement + sProduit.createFeatureAttribute(tronconCoursDeau, "Franchissement", + "string", true); + AttributeType franchissement11 = tronconCoursDeau + .getFeatureAttributeByName("Franchissement"); + franchissement11 + .setDefinition("Permet de distinguer les tronçons de cours d'eau libres des obstacles."); + sProduit.createFeatureAttributeValue(franchissement11, "Barrage"); + sProduit.createFeatureAttributeValue(franchissement11, "Cascade"); + sProduit.createFeatureAttributeValue(franchissement11, "Ecluse"); + sProduit.createFeatureAttributeValue(franchissement11, "Pont-canal"); + sProduit.createFeatureAttributeValue(franchissement11, "Tunnel"); + sProduit.createFeatureAttributeValue(franchissement11, "Sans objet"); + // Attribut Nom + sProduit.createFeatureAttribute(tronconCoursDeau, "Nom", "string", false); + AttributeType nom11 = tronconCoursDeau.getFeatureAttributeByName("Nom"); + nom11.setDefinition("Nom du cours d'eau."); + // Attribut Régime des eaux + sProduit.createFeatureAttribute(tronconCoursDeau, "Régime des eaux", + "string", true); + AttributeType regime11 = tronconCoursDeau + .getFeatureAttributeByName("Régime des eaux"); + regime11 + .setDefinition("Permet de caractériser un objet hydrographique en fonction du régime de ces eaux."); + sProduit.createFeatureAttributeValue(regime11, "Permanent"); + sProduit.createFeatureAttributeValue(regime11, "Intermittent"); + + // Classe Surface d'eau + + sProduit.createFeatureType("Surface d'eau"); + FeatureType surfaceDeau = (FeatureType) (sProduit + .getFeatureTypeByName("Surface d'eau")); + surfaceDeau + .setDefinition("Surface d'eau terrestre, naturelle ou artificielle."); + surfaceDeau.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(surfaceDeau, "Nature", "string", true); + AttributeType nature12 = surfaceDeau.getFeatureAttributeByName("Nature"); + nature12 + .setDefinition("Permet de distinguer les bassins des surfaces hydrographiques naturelles."); + sProduit.createFeatureAttributeValue(nature12, "Bassin"); + sProduit.createFeatureAttributeValue(nature12, "Surface d'eau"); + // Attribut Régime des eaux + sProduit.createFeatureAttribute(surfaceDeau, "Régime des eaux", "string", + true); + AttributeType regime12 = surfaceDeau + .getFeatureAttributeByName("Régime des eaux"); + regime12 + .setDefinition("Permet de caractériser un objet hydrographique en fonction du régime de ces eaux."); + sProduit.createFeatureAttributeValue(regime12, "Permanent"); + sProduit.createFeatureAttributeValue(regime12, "Intermittent"); + + // Classe Point d'eau + + sProduit.createFeatureType("Point d'eau"); + FeatureType pointDeau = (FeatureType) (sProduit + .getFeatureTypeByName("Point d'eau")); + pointDeau + .setDefinition("Source (captée ou non), point de production d'eau (pompage, forage, puits,...) ou point de stockage " + + "d'eau de petite dimension (citerne, abreuvoir, lavoir, bassin)."); + pointDeau.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(pointDeau, "Nature", "string", true); + AttributeType nature13 = pointDeau.getFeatureAttributeByName("Nature"); + nature13.setDefinition("Donne la nature du point d'eau."); + sProduit.createFeatureAttributeValue(nature13, "Citerne"); + sProduit.createFeatureAttributeValue(nature13, "Fontaine"); + sProduit.createFeatureAttributeValue(nature13, "Source"); + sProduit.createFeatureAttributeValue(nature13, "Source captée"); + sProduit.createFeatureAttributeValue(nature13, "Station de pompage"); + sProduit.createFeatureAttributeValue(nature13, "Autre point d'eau"); + + // Classe Tronçon de laisse + + sProduit.createFeatureType("Tronçon de laisse"); + FeatureType tronconDeLaisse = (FeatureType) (sProduit + .getFeatureTypeByName("Tronçon de laisse")); + tronconDeLaisse + .setDefinition("Limite inférieure ou supérieure de l'estran."); + tronconDeLaisse.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(tronconDeLaisse, "Nature", "string", true); + AttributeType nature14 = tronconDeLaisse + .getFeatureAttributeByName("Nature"); + nature14 + .setDefinition("Permet de distinguer la laisse des plus hautes mers de celle des plus basses mers."); + sProduit.createFeatureAttributeValue(nature14, "Hautes mers"); + sProduit.createFeatureAttributeValue(nature14, "Basses mers"); + + /*************************************************************************** + * Ajout du thème "surfaces d'activités et bâti" * + ************************************************************************/ + + // Classe Bâtiment + + sProduit.createFeatureType("Bâtiment"); + FeatureType batiment = (FeatureType) (sProduit + .getFeatureTypeByName("Bâtiment")); + batiment.setDefinition("Bâtiment de plus de 20 m2."); + batiment.setIsAbstract(false); + // Attribut Catégorie + sProduit.createFeatureAttribute(batiment, "Catégorie", "string", true); + AttributeType categorie15 = batiment.getFeatureAttributeByName("Catégorie"); + categorie15 + .setDefinition("Permet de distinguer plusieurs grandes catégories de bâtiment, selon leur fonction principale et leur aspect."); + sProduit.createFeatureAttributeValue(categorie15, "Administratif"); + sProduit.createFeatureAttributeValue(categorie15, + "Industriel, agricole ou commercial"); + sProduit.createFeatureAttributeValue(categorie15, "Religieux"); + sProduit.createFeatureAttributeValue(categorie15, "Sportif"); + sProduit.createFeatureAttributeValue(categorie15, "Transport"); + sProduit.createFeatureAttributeValue(categorie15, "Autre"); + // Attribut Nature + sProduit.createFeatureAttribute(batiment, "Nature", "string", true); + AttributeType nature15 = batiment.getFeatureAttributeByName("Nature"); + nature15 + .setDefinition("Permet de distinguer différents types de bâtiment."); + sProduit.createFeatureAttributeValue(nature15, "Aérogare"); + sProduit.createFeatureAttributeValue(nature15, "Arc de triomphe"); + sProduit.createFeatureAttributeValue(nature15, "Arène ou théâtre antique"); + sProduit.createFeatureAttributeValue(nature15, "Bâtiment agricole"); + sProduit.createFeatureAttributeValue(nature15, "Bâtiment commercial"); + sProduit.createFeatureAttributeValue(nature15, "Bâtiment industriel"); + sProduit.createFeatureAttributeValue(nature15, "Bâtiment religieux divers"); + sProduit.createFeatureAttributeValue(nature15, "Bâtiment sportif"); + sProduit.createFeatureAttributeValue(nature15, "Chapelle"); + sProduit.createFeatureAttributeValue(nature15, "Château"); + sProduit.createFeatureAttributeValue(nature15, "Eglise"); + sProduit.createFeatureAttributeValue(nature15, "Fort, blockhaus, casemate"); + sProduit.createFeatureAttributeValue(nature15, "Gare"); + sProduit.createFeatureAttributeValue(nature15, "Mairie"); + sProduit.createFeatureAttributeValue(nature15, "Monument"); + sProduit.createFeatureAttributeValue(nature15, "Péage"); + sProduit.createFeatureAttributeValue(nature15, "Préfecture"); + sProduit.createFeatureAttributeValue(nature15, "Serre"); + sProduit.createFeatureAttributeValue(nature15, "Silo"); + sProduit.createFeatureAttributeValue(nature15, "Sous-préfecture"); + sProduit.createFeatureAttributeValue(nature15, "Tour, donjon, moulin"); + sProduit.createFeatureAttributeValue(nature15, "Tribune"); + sProduit.createFeatureAttributeValue(nature15, "Autre"); + // Attribut Hauteur + sProduit.createFeatureAttribute(batiment, "Hauteur", "entier", false); + AttributeType hauteur15 = batiment.getFeatureAttributeByName("Hauteur"); + hauteur15 + .setDefinition("Hauteur du bâtiment correspondant à la différence netre le Z le plus élevé du pourtour du bâtiment " + + "et un point situé au pied du bâtiment. La hauteur est arrondie au mètre."); + + // Classe Construction ponctuelle + + sProduit.createFeatureType("Construction ponctuelle"); + FeatureType constructionPonctuelle = (FeatureType) (sProduit + .getFeatureTypeByName("Construction ponctuelle")); + constructionPonctuelle + .setDefinition("Construction de faible emprise et de grande hauteur."); + constructionPonctuelle.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(constructionPonctuelle, "Nature", "string", + true); + AttributeType nature16 = constructionPonctuelle + .getFeatureAttributeByName("Nature"); + nature16 + .setDefinition("Permet de distinguer différentes natures de construction."); + sProduit.createFeatureAttributeValue(nature16, "Antenne"); + sProduit.createFeatureAttributeValue(nature16, "Cheminée"); + sProduit.createFeatureAttributeValue(nature16, "Phare"); + sProduit.createFeatureAttributeValue(nature16, "Torchère"); + sProduit.createFeatureAttributeValue(nature16, "Transformateur"); + sProduit.createFeatureAttributeValue(nature16, + "Construction ponctuelle quelconque"); + + // Classe Construction linéaire + + sProduit.createFeatureType("Construction linéaire"); + FeatureType constructionLineaire = (FeatureType) (sProduit + .getFeatureTypeByName("Construction linéaire")); + constructionLineaire + .setDefinition("Construction dont la forme générale est linéaire."); + constructionLineaire.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(constructionLineaire, "Nature", "string", + true); + AttributeType nature17 = constructionLineaire + .getFeatureAttributeByName("Nature"); + nature17.setDefinition("Permet de distinguer différents types d'ouvrages."); + sProduit.createFeatureAttributeValue(nature17, "Barrage"); + sProduit.createFeatureAttributeValue(nature17, "Mur anti-bruit"); + sProduit.createFeatureAttributeValue(nature17, "Pont"); + sProduit.createFeatureAttributeValue(nature17, "Quai"); + sProduit.createFeatureAttributeValue(nature17, "Ruines"); + sProduit.createFeatureAttributeValue(nature17, + "Construction linéaire quelconque"); + + // Classe Construction surfacique + + sProduit.createFeatureType("Construction surfacique"); + FeatureType constructionSurfacique = (FeatureType) (sProduit + .getFeatureTypeByName("Construction surfacique")); + constructionSurfacique + .setDefinition("Ouvrage de grande surface lié au franchissement d'un obstacle par une voie de communication, ou à l'aménagement d'une rivière ou d'un canal."); + constructionSurfacique.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(constructionSurfacique, "Nature", "string", + true); + AttributeType nature18 = constructionSurfacique + .getFeatureAttributeByName("Nature"); + nature18 + .setDefinition("Permet de distinguer différents types d'ouvrages d'art larges."); + sProduit.createFeatureAttributeValue(nature18, "Barrage"); + sProduit.createFeatureAttributeValue(nature18, "Dalle de protection"); + sProduit.createFeatureAttributeValue(nature18, "Ecluse"); + sProduit.createFeatureAttributeValue(nature18, "Pont"); + sProduit.createFeatureAttributeValue(nature18, "Escalier"); + + // Classe Réservoir + + sProduit.createFeatureType("Réservoir"); + FeatureType reservoir = (FeatureType) (sProduit + .getFeatureTypeByName("Réservoir")); + reservoir.setDefinition("Réservoir (eau, matières industrielles...)."); + reservoir.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(reservoir, "Nature", "string", true); + AttributeType nature19 = reservoir.getFeatureAttributeByName("Nature"); + nature19 + .setDefinition("Permet de distinguer différents types de réservoirs."); + sProduit.createFeatureAttributeValue(nature19, "Château d'eau"); + sProduit.createFeatureAttributeValue(nature19, "Réservoir d'eau"); + sProduit.createFeatureAttributeValue(nature19, "Réservoir industriel"); + sProduit.createFeatureAttributeValue(nature19, "Inconnue"); + // Attribut Hauteur + sProduit.createFeatureAttribute(reservoir, "Hauteur", "entier", false); + AttributeType hauteur19 = reservoir.getFeatureAttributeByName("Hauteur"); + hauteur19 + .setDefinition("Hauteur du réservoir correspondant à la différence netre le Z le plus élevé du pourtour " + + "et un point situé au pied du réservoir. La hauteur est arrondie au mètre."); + + // Classe Terrain de sport + + sProduit.createFeatureType("Terrain de sport"); + FeatureType terrainDeSport = (FeatureType) (sProduit + .getFeatureTypeByName("Terrain de sport")); + terrainDeSport.setDefinition("Equipement sportif de plein air."); + terrainDeSport.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(terrainDeSport, "Nature", "string", true); + AttributeType nature20 = terrainDeSport.getFeatureAttributeByName("Nature"); + nature20 + .setDefinition("Permet de distinguer différents types d'équipements sportifs."); + sProduit.createFeatureAttributeValue(nature20, "Piste de sport"); + sProduit.createFeatureAttributeValue(nature20, "Terrain de tennis"); + sProduit.createFeatureAttributeValue(nature20, "Bassin de natation"); + sProduit.createFeatureAttributeValue(nature20, + "Terrain de sport indifférencié"); + + // Classe Cimetière + + sProduit.createFeatureType("Cimetière"); + FeatureType cimetiere = (FeatureType) (sProduit + .getFeatureTypeByName("Cimetière")); + cimetiere.setDefinition("Endroit où reposent les morts."); + cimetiere.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(cimetiere, "Nature", "string", true); + AttributeType nature21 = cimetiere.getFeatureAttributeByName("Nature"); + nature21 + .setDefinition("Permet de distinguer un objet géographique à vocation militaire ou simplement géré par le Ministère de la Défense, " + + "d'un objet civil. La valeur 'militaire' est également affectée aux cimetières militaires gérés par le Ministère des " + + "Anciens Combattants ou par des Etats étrangers."); + sProduit.createFeatureAttributeValue(nature21, "Militaire"); + sProduit.createFeatureAttributeValue(nature21, "Autre"); + + // Classe Piste d'aérodrome + + sProduit.createFeatureType("Piste d'aérodrome"); + FeatureType pisteAerodrome = (FeatureType) (sProduit + .getFeatureTypeByName("Piste d'aérodrome")); + pisteAerodrome + .setDefinition("Aire située sur un aérodrome, aménagée afin de servir au roulement des aéronefs, au décollage et à l'atterrissage."); + pisteAerodrome.setIsAbstract(false); + // Attribut Nature + sProduit.createFeatureAttribute(pisteAerodrome, "Nature", "string", true); + AttributeType nature22 = pisteAerodrome.getFeatureAttributeByName("Nature"); + nature22 + .setDefinition("Permet de distinguer différentes natures d'aérodrome."); + sProduit.createFeatureAttributeValue(nature22, "Piste en dur"); + sProduit.createFeatureAttributeValue(nature22, "Piste en herbe"); + + // Classe Point d'activité ou d'intérêt + + sProduit.createFeatureType("Point d'activité ou d'intérêt"); + FeatureType pointActivite = (FeatureType) (sProduit + .getFeatureTypeByName("Point d'activité ou d'intérêt")); + pointActivite + .setDefinition("Objet ponctuel localisant un équipement public, un site ou une zone ayant un caractère administratif, culturel, sportif, industriel ou commercial."); + pointActivite.setIsAbstract(false); + // Attribut Catégorie + sProduit.createFeatureAttribute(pointActivite, "Catégorie", "string", true); + AttributeType categorie23 = pointActivite + .getFeatureAttributeByName("Catégorie"); + categorie23.setDefinition("Permet de distinguer le type de l'activité."); + sProduit.createFeatureAttributeValue(categorie23, "Administratif"); + sProduit.createFeatureAttributeValue(categorie23, "Culture et loisirs"); + sProduit.createFeatureAttributeValue(categorie23, "Enseignement"); + sProduit.createFeatureAttributeValue(categorie23, "Gestion des eaux"); + sProduit.createFeatureAttributeValue(categorie23, + "Industriel ou commercial"); + sProduit.createFeatureAttributeValue(categorie23, "Religieux"); + sProduit.createFeatureAttributeValue(categorie23, "Santé"); + sProduit.createFeatureAttributeValue(categorie23, "Sport"); + sProduit.createFeatureAttributeValue(categorie23, "Transport"); + // Attribut Nature + sProduit.createFeatureAttribute(pointActivite, "Nature", "string", true); + AttributeType nature23 = pointActivite.getFeatureAttributeByName("Nature"); + nature23 + .setDefinition("Précise la fonction du bâtiment ou le type de l'activité."); + sProduit + .createFeatureAttributeValue(nature23, "Bureau ou hôtel des postes"); + sProduit.createFeatureAttributeValue(nature23, "Caserne de pompiers"); + sProduit.createFeatureAttributeValue(nature23, + "Divers public ou administratif"); + sProduit.createFeatureAttributeValue(nature23, "Enceinte militaire"); + sProduit.createFeatureAttributeValue(nature23, + "Etablissement pénitentiaire"); + sProduit.createFeatureAttributeValue(nature23, "Gendarmerie"); + sProduit.createFeatureAttributeValue(nature23, "Hôtel de département"); + sProduit.createFeatureAttributeValue(nature23, "Hôtel de région"); + sProduit.createFeatureAttributeValue(nature23, "Mairie"); + sProduit.createFeatureAttributeValue(nature23, "Maison forestière"); + sProduit.createFeatureAttributeValue(nature23, "Palais de justice"); + sProduit.createFeatureAttributeValue(nature23, "Poste ou hôtel de police"); + sProduit.createFeatureAttributeValue(nature23, "Préfecture"); + sProduit.createFeatureAttributeValue(nature23, "Sous-préfecture"); + sProduit.createFeatureAttributeValue(nature23, "Camping"); + sProduit.createFeatureAttributeValue(nature23, "Dolmen"); + sProduit.createFeatureAttributeValue(nature23, "Habitation troglodytique"); + sProduit.createFeatureAttributeValue(nature23, "Maison du parc"); + sProduit.createFeatureAttributeValue(nature23, "Menhir"); + sProduit.createFeatureAttributeValue(nature23, "Musée"); + sProduit.createFeatureAttributeValue(nature23, "Parc de loisirs"); + sProduit.createFeatureAttributeValue(nature23, "Parc zoologique"); + sProduit.createFeatureAttributeValue(nature23, "Point de vue"); + sProduit.createFeatureAttributeValue(nature23, "Village de vacances"); + sProduit.createFeatureAttributeValue(nature23, "Enseignement primaire"); + sProduit.createFeatureAttributeValue(nature23, "Enseignement secondaire"); + sProduit.createFeatureAttributeValue(nature23, "Enseignement supérieur"); + sProduit.createFeatureAttributeValue(nature23, "Station de pompage"); + sProduit.createFeatureAttributeValue(nature23, + "Usine de traitement des eaux"); + sProduit.createFeatureAttributeValue(nature23, "Aquaculture"); + sProduit.createFeatureAttributeValue(nature23, "Carrière"); + sProduit.createFeatureAttributeValue(nature23, "Centrale électrique"); + sProduit.createFeatureAttributeValue(nature23, "Divers commercial"); + sProduit.createFeatureAttributeValue(nature23, "Divers industriel"); + sProduit.createFeatureAttributeValue(nature23, "Haras national"); + sProduit.createFeatureAttributeValue(nature23, "Marais salants"); + sProduit.createFeatureAttributeValue(nature23, "Marché"); + sProduit.createFeatureAttributeValue(nature23, "Mine"); + sProduit.createFeatureAttributeValue(nature23, "Usine"); + sProduit.createFeatureAttributeValue(nature23, + "Culte catholique ou orthodoxe"); + sProduit.createFeatureAttributeValue(nature23, "Culte protestant"); + sProduit.createFeatureAttributeValue(nature23, "Culte israélite"); + sProduit.createFeatureAttributeValue(nature23, "Culte islamique"); + sProduit.createFeatureAttributeValue(nature23, "Culte divers"); + sProduit.createFeatureAttributeValue(nature23, "Etablissement hospitalier"); + sProduit.createFeatureAttributeValue(nature23, "Etablissement thermal"); + sProduit.createFeatureAttributeValue(nature23, "Golf"); + sProduit.createFeatureAttributeValue(nature23, "Hippodrome"); + sProduit.createFeatureAttributeValue(nature23, "Piscine"); + sProduit.createFeatureAttributeValue(nature23, "Stade"); + sProduit.createFeatureAttributeValue(nature23, "Aérodrome"); + sProduit.createFeatureAttributeValue(nature23, "Aire d'autoroute"); + sProduit.createFeatureAttributeValue(nature23, "Gare voyageurs uniquement"); + sProduit.createFeatureAttributeValue(nature23, "Gare voyageurs et fret"); + sProduit.createFeatureAttributeValue(nature23, "Gare fret uniquement"); + sProduit.createFeatureAttributeValue(nature23, "Péage"); + + // Classe Surface d'activité + + sProduit.createFeatureType("Surface d'activité"); + FeatureType surfaceActivite = (FeatureType) (sProduit + .getFeatureTypeByName("Surface d'activité")); + surfaceActivite + .setDefinition("Enceinte d'un équipement public, d'un site ou d'une zone ayant un caractère administratif, culturel, sportif, industriel ou commercial."); + surfaceActivite.setIsAbstract(false); + // Attribut Catégorie + sProduit.createFeatureAttribute(surfaceActivite, "Catégorie", "string", + true); + AttributeType categorie24 = surfaceActivite + .getFeatureAttributeByName("Catégorie"); + categorie24.setDefinition("Permet de distinguer le type de l'activité."); + sProduit.createFeatureAttributeValue(categorie24, "Administratif"); + sProduit.createFeatureAttributeValue(categorie24, "Culture et loisirs"); + sProduit.createFeatureAttributeValue(categorie24, "Enseignement"); + sProduit.createFeatureAttributeValue(categorie24, "Gestion des eaux"); + sProduit.createFeatureAttributeValue(categorie24, + "Industriel ou commercial"); + sProduit.createFeatureAttributeValue(categorie24, "Santé"); + sProduit.createFeatureAttributeValue(categorie24, "Sport"); + sProduit.createFeatureAttributeValue(categorie24, "Transport"); + + /*************************************************************************** + * Ajout du thème "occupation du sol: végétation" * + ************************************************************************/ + + // Classe Zone arborée + + sProduit.createFeatureType("Zone arborée"); + FeatureType zoneArboree = (FeatureType) (sProduit + .getFeatureTypeByName("Zone arborée")); + zoneArboree.setDefinition("Espace peuplé d'arbres d'essence quelconque."); + zoneArboree.setIsAbstract(false); + + /*************************************************************************** + * Ajout du thème "orographie" * + ************************************************************************/ + + // Classe Ligne orographique + + sProduit.createFeatureType("Ligne orographique"); + FeatureType ligneOrographique = (FeatureType) (sProduit + .getFeatureTypeByName("Ligne orographique")); + ligneOrographique.setDefinition("Ligne de rupture de pente artificielle."); + ligneOrographique.setIsAbstract(false); + // Attribut Catégorie + sProduit + .createFeatureAttribute(ligneOrographique, "Nature", "string", true); + AttributeType nature26 = ligneOrographique + .getFeatureAttributeByName("Nature"); + nature26 + .setDefinition("Permet de distinguer différentes natures de lignes orographiques."); + sProduit.createFeatureAttributeValue(nature26, "Levée"); + sProduit.createFeatureAttributeValue(nature26, "Mur de soutênement"); + sProduit.createFeatureAttributeValue(nature26, "Talus"); + sProduit.createFeatureAttributeValue(nature26, "Carrière"); + + /*************************************************************************** + * Ajout du thème "zonages techiniques et administratifs" * + ************************************************************************/ + + // Classe Commune + + sProduit.createFeatureType("Commune"); + FeatureType commune = (FeatureType) (sProduit + .getFeatureTypeByName("Commune")); + commune + .setDefinition("Plus petite subdivision du territoire, administrée par un maire, des adjoints et un conseil municipal."); + commune.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(commune, "Nom", "string", false); + AttributeType nom27 = commune.getFeatureAttributeByName("Nom"); + nom27.setDefinition("Nom officiel de la commune."); + // Attribut Code INSEE + sProduit.createFeatureAttribute(commune, "Code INSEE", "string", false); + AttributeType numINSEE27 = commune.getFeatureAttributeByName("Code INSEE"); + numINSEE27.setDefinition("Numéro INSEE de la commune."); + // Attribut Statut + sProduit.createFeatureAttribute(commune, "Statut", "string", true); + AttributeType statut27 = commune.getFeatureAttributeByName("Statut"); + statut27 + .setDefinition("Précise le rôle le plus élevé qu'a la commune dans la hiérarchie des entités administratives."); + sProduit.createFeatureAttributeValue(statut27, "Capitale d'Etat"); + sProduit.createFeatureAttributeValue(statut27, "Préfecture de région"); + sProduit.createFeatureAttributeValue(statut27, "Préfecture"); + sProduit.createFeatureAttributeValue(statut27, "Sous-préfecture"); + sProduit.createFeatureAttributeValue(statut27, "Chef-lieu de canton"); + sProduit.createFeatureAttributeValue(statut27, "Commune simple"); + // Attribut Canton + sProduit.createFeatureAttribute(commune, "Canton", "string", false); + AttributeType canton27 = commune.getFeatureAttributeByName("Canton"); + canton27.setDefinition("Nom du chef-lieu de canton."); + // Attribut Arrondissement + sProduit.createFeatureAttribute(commune, "Arrondissement", "string", false); + AttributeType arrondissement27 = commune + .getFeatureAttributeByName("Arrondissement"); + arrondissement27.setDefinition("Nom du chef-lieu d'arrondissement."); + // Attribut Département + sProduit.createFeatureAttribute(commune, "Département", "string", false); + AttributeType departement27 = commune + .getFeatureAttributeByName("Département"); + departement27 + .setDefinition("Nom du département auquel appartient la commune."); + // Attribut Région + sProduit.createFeatureAttribute(commune, "Région", "string", false); + AttributeType region27 = commune.getFeatureAttributeByName("Région"); + region27 + .setDefinition("Nom de la région à laquelle appartient la commune."); + // Attribut Population + sProduit.createFeatureAttribute(commune, "Population", "entier", false); + AttributeType population27 = commune + .getFeatureAttributeByName("Population"); + population27.setDefinition("Population sans double-compte de la commune."); + // Attribut Multi-canton + sProduit.createFeatureAttribute(commune, "Multi-canton", "booleen", false); + AttributeType multiCanton27 = commune + .getFeatureAttributeByName("Multi-canton"); + multiCanton27 + .setDefinition("Permet de différencier une commune multi-canton d'une commune n'appartenant qu'à un seul canton."); + + // Classe Arrondissement municipal + + sProduit.createFeatureType("Arrondissement municipal"); + FeatureType arrondissementMunicipal = (FeatureType) (sProduit + .getFeatureTypeByName("Arrondissement municipal")); + arrondissementMunicipal + .setDefinition("Subdivision administrative de certaines communes (Paris, Lyon, Marseille)."); + arrondissementMunicipal.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(arrondissementMunicipal, "Nom", "string", + false); + AttributeType nom28 = arrondissementMunicipal + .getFeatureAttributeByName("Nom"); + nom28 + .setDefinition("Nom de l'arrondissement (exemple 'Paris 1er arrondissement')."); + // Attribut Code INSEE + sProduit.createFeatureAttribute(arrondissementMunicipal, "Code INSEE", + "string", false); + AttributeType numINSEE28 = arrondissementMunicipal + .getFeatureAttributeByName("Code INSEE"); + numINSEE28.setDefinition("Numéro INSEE de l'arrondissement municipal."); + + /*************************************************************************** + * Ajout du thème "objets divers" * + ************************************************************************/ + + // Classe Lieu-dit habité + + sProduit.createFeatureType("Lieu-dit habité"); + FeatureType lieuDitHabite = (FeatureType) (sProduit + .getFeatureTypeByName("Lieu-dit habité")); + lieuDitHabite.setDefinition("Lieu-dit habité caractérisé par un nom."); + lieuDitHabite.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(lieuDitHabite, "Nom", "string", false); + AttributeType nom29 = lieuDitHabite.getFeatureAttributeByName("Nom"); + nom29.setDefinition("Toponyme associé au lieu-dit."); + // Attribut Importance + sProduit + .createFeatureAttribute(lieuDitHabite, "Importance", "entier", true); + AttributeType importance29 = lieuDitHabite + .getFeatureAttributeByName("Importance"); + importance29 + .setDefinition("Code permettant d'établir une hiérarchie dans la toponymie."); + sProduit.createFeatureAttributeValue(importance29, "1"); + sProduit.createFeatureAttributeValue(importance29, "2"); + sProduit.createFeatureAttributeValue(importance29, "3"); + sProduit.createFeatureAttributeValue(importance29, "4"); + sProduit.createFeatureAttributeValue(importance29, "5"); + sProduit.createFeatureAttributeValue(importance29, "6"); + sProduit.createFeatureAttributeValue(importance29, "7"); + sProduit.createFeatureAttributeValue(importance29, "8"); + // Attribut Nature + sProduit.createFeatureAttribute(lieuDitHabite, "Nature", "string", true); + AttributeType nature29 = lieuDitHabite.getFeatureAttributeByName("Nature"); + nature29.setDefinition("Donne plus précisément la nature du lieu nommé."); + sProduit.createFeatureAttributeValue(nature29, "Canton"); + sProduit.createFeatureAttributeValue(nature29, "Château"); + sProduit.createFeatureAttributeValue(nature29, "Commune"); + sProduit.createFeatureAttributeValue(nature29, "Construction"); + sProduit.createFeatureAttributeValue(nature29, "Culte"); + sProduit.createFeatureAttributeValue(nature29, "Culture"); + sProduit.createFeatureAttributeValue(nature29, "Ecart"); + sProduit.createFeatureAttributeValue(nature29, "Enseignement"); + sProduit.createFeatureAttributeValue(nature29, "Préfecture"); + sProduit.createFeatureAttributeValue(nature29, "Quartier"); + sProduit.createFeatureAttributeValue(nature29, "Refuge"); + sProduit.createFeatureAttributeValue(nature29, "Santé"); + sProduit.createFeatureAttributeValue(nature29, "Science"); + sProduit.createFeatureAttributeValue(nature29, "Sous-préfecture"); + + // Classe Lieu-dit non habité + + sProduit.createFeatureType("Lieu-dit non habité"); + FeatureType lieuDitNonHabite = (FeatureType) (sProduit + .getFeatureTypeByName("Lieu-dit non habité")); + lieuDitNonHabite + .setDefinition("Lieu-dit non habité et dont le nom ne se rapporte ni à un détail orographqiue, ni à un détail hydrographique."); + lieuDitNonHabite.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(lieuDitNonHabite, "Nom", "string", false); + AttributeType nom30 = lieuDitNonHabite.getFeatureAttributeByName("Nom"); + nom30.setDefinition("Toponyme associé au lieu-dit."); + // Attribut Importance + sProduit.createFeatureAttribute(lieuDitNonHabite, "Importance", "entier", + true); + AttributeType importance30 = lieuDitNonHabite + .getFeatureAttributeByName("Importance"); + importance30 + .setDefinition("Code permettant d'établir une hiérarchie dans la toponymie."); + sProduit.createFeatureAttributeValue(importance30, "1"); + sProduit.createFeatureAttributeValue(importance30, "2"); + sProduit.createFeatureAttributeValue(importance30, "3"); + sProduit.createFeatureAttributeValue(importance30, "4"); + sProduit.createFeatureAttributeValue(importance30, "5"); + sProduit.createFeatureAttributeValue(importance30, "6"); + sProduit.createFeatureAttributeValue(importance30, "7"); + sProduit.createFeatureAttributeValue(importance30, "8"); + // Attribut Nature + sProduit.createFeatureAttribute(lieuDitNonHabite, "Nature", "string", true); + AttributeType nature30 = lieuDitNonHabite + .getFeatureAttributeByName("Nature"); + nature30.setDefinition("Donne plus précisément la nature du lieu nommé."); + sProduit.createFeatureAttributeValue(nature30, "Arbre"); + sProduit.createFeatureAttributeValue(nature30, "Bois"); + sProduit.createFeatureAttributeValue(nature30, "Lieu-dit"); + sProduit.createFeatureAttributeValue(nature30, "Parc"); + + // Classe Oronyme + + sProduit.createFeatureType("Oronyme"); + FeatureType oronyme = (FeatureType) (sProduit + .getFeatureTypeByName("Oronyme")); + oronyme.setDefinition("Détail du relief portant un nom."); + oronyme.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(oronyme, "Nom", "string", false); + AttributeType nom31 = oronyme.getFeatureAttributeByName("Nom"); + nom31.setDefinition("Nom du détail ou du relief."); + // Attribut Importance + sProduit.createFeatureAttribute(oronyme, "Importance", "entier", true); + AttributeType importance31 = oronyme + .getFeatureAttributeByName("Importance"); + importance31 + .setDefinition("Code permettant d'établir une hiérarchie dans la toponymie. La valeur 1 correspond aux détails " + + "les plus importants (ex.massif de montagne), tandis que la valeur 8 caractérise des accidents de terrain mineurs " + + "(ravine, ébouli, rocher caractéristique...)."); + sProduit.createFeatureAttributeValue(importance31, "1"); + sProduit.createFeatureAttributeValue(importance31, "2"); + sProduit.createFeatureAttributeValue(importance31, "3"); + sProduit.createFeatureAttributeValue(importance31, "4"); + sProduit.createFeatureAttributeValue(importance31, "5"); + sProduit.createFeatureAttributeValue(importance31, "6"); + sProduit.createFeatureAttributeValue(importance31, "7"); + sProduit.createFeatureAttributeValue(importance31, "8"); + // Attribut Nature + sProduit.createFeatureAttribute(oronyme, "Nature", "string", true); + AttributeType nature31 = oronyme.getFeatureAttributeByName("Nature"); + nature31.setDefinition("Donne plus précisément la nature du lieu nommé."); + sProduit.createFeatureAttributeValue(nature31, "Cap"); + sProduit.createFeatureAttributeValue(nature31, "Carrière"); + sProduit.createFeatureAttributeValue(nature31, "Cirque"); + sProduit.createFeatureAttributeValue(nature31, "Col"); + sProduit.createFeatureAttributeValue(nature31, "Crête"); + sProduit.createFeatureAttributeValue(nature31, "Dépression"); + sProduit.createFeatureAttributeValue(nature31, "Dune"); + sProduit.createFeatureAttributeValue(nature31, "Escarpement"); + sProduit.createFeatureAttributeValue(nature31, "Gorge"); + sProduit.createFeatureAttributeValue(nature31, "Grotte"); + sProduit.createFeatureAttributeValue(nature31, "île"); + sProduit.createFeatureAttributeValue(nature31, "Isthme"); + sProduit.createFeatureAttributeValue(nature31, "Montagne"); + sProduit.createFeatureAttributeValue(nature31, "Pic"); + sProduit.createFeatureAttributeValue(nature31, "Plage"); + sProduit.createFeatureAttributeValue(nature31, "Plaine ou plateau"); + sProduit.createFeatureAttributeValue(nature31, "Récifs"); + sProduit.createFeatureAttributeValue(nature31, "Rochers"); + sProduit.createFeatureAttributeValue(nature31, "Sommet"); + sProduit.createFeatureAttributeValue(nature31, "Vallée"); + sProduit.createFeatureAttributeValue(nature31, "Versant"); + sProduit.createFeatureAttributeValue(nature31, "Volcan"); + + // Classe Hydronyme + + sProduit.createFeatureType("Hydronyme"); + FeatureType hydronyme = (FeatureType) (sProduit + .getFeatureTypeByName("Hydronyme")); + hydronyme.setDefinition("Nom se rapportant à un détail hydrographique."); + hydronyme.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(hydronyme, "Nom", "string", false); + AttributeType nom32 = hydronyme.getFeatureAttributeByName("Nom"); + nom32.setDefinition("Nom du détail hydrographique."); + // Attribut Importance + sProduit.createFeatureAttribute(hydronyme, "Importance", "entier", true); + AttributeType importance32 = hydronyme + .getFeatureAttributeByName("Importance"); + importance32 + .setDefinition("Code permettant d'établir une hiérarchie dans la toponymie. La valeur 1 correspond aux objets " + + "les plus importants (ex. golfe, mer, fleuve), tandis que la valeur 8 caractérise des détails mineurs (petit ruisseau, mare...)."); + sProduit.createFeatureAttributeValue(importance32, "1"); + sProduit.createFeatureAttributeValue(importance32, "2"); + sProduit.createFeatureAttributeValue(importance32, "3"); + sProduit.createFeatureAttributeValue(importance32, "4"); + sProduit.createFeatureAttributeValue(importance32, "5"); + sProduit.createFeatureAttributeValue(importance32, "6"); + sProduit.createFeatureAttributeValue(importance32, "7"); + sProduit.createFeatureAttributeValue(importance32, "8"); + // Attribut Nature + sProduit.createFeatureAttribute(hydronyme, "Nature", "string", true); + AttributeType nature32 = hydronyme.getFeatureAttributeByName("Nature"); + nature32 + .setDefinition("Donne plus précisément la nature de l'objet nommé."); + sProduit.createFeatureAttributeValue(nature32, "Amer"); + sProduit.createFeatureAttributeValue(nature32, "Baie"); + sProduit.createFeatureAttributeValue(nature32, "Banc"); + sProduit.createFeatureAttributeValue(nature32, "Canal"); + sProduit.createFeatureAttributeValue(nature32, "Cascade"); + sProduit.createFeatureAttributeValue(nature32, "Cours d'eau"); + sProduit.createFeatureAttributeValue(nature32, "Embouchure"); + sProduit.createFeatureAttributeValue(nature32, "Espace maritime"); + sProduit.createFeatureAttributeValue(nature32, "Glacier"); + sProduit.createFeatureAttributeValue(nature32, "Lac"); + sProduit.createFeatureAttributeValue(nature32, "Marais"); + sProduit.createFeatureAttributeValue(nature32, "Pêcherie"); + sProduit.createFeatureAttributeValue(nature32, "Perte"); + sProduit.createFeatureAttributeValue(nature32, "Point d'eau"); + + // Classe Toponyme communication + + sProduit.createFeatureType("Toponyme communication"); + FeatureType toponymeCommunication = (FeatureType) (sProduit + .getFeatureTypeByName("Toponyme communication")); + toponymeCommunication + .setDefinition("Installation nommée servant de noeud dans un réseau."); + toponymeCommunication.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(toponymeCommunication, "Nom", "string", + false); + AttributeType nom33 = toponymeCommunication + .getFeatureAttributeByName("Nom"); + nom33.setDefinition("Nom de l'installation."); + // Attribut Importance + sProduit.createFeatureAttribute(toponymeCommunication, "Importance", + "entier", true); + AttributeType importance33 = toponymeCommunication + .getFeatureAttributeByName("Importance"); + importance33 + .setDefinition("Code permettant d'établir une hiérarchie dans la toponymie. " + + "Les trois premières valeurs ne sont pas utilisées pour ce type de détail. " + + "Les suivantes vont des objets les plus importants (aéroport intenational) aux moins importants (remonte-prente, passerelle,...)."); + sProduit.createFeatureAttributeValue(importance33, "1"); + sProduit.createFeatureAttributeValue(importance33, "2"); + sProduit.createFeatureAttributeValue(importance33, "3"); + sProduit.createFeatureAttributeValue(importance33, "4"); + sProduit.createFeatureAttributeValue(importance33, "5"); + sProduit.createFeatureAttributeValue(importance33, "6"); + sProduit.createFeatureAttributeValue(importance33, "7"); + sProduit.createFeatureAttributeValue(importance33, "8"); + // Attribut Nature + sProduit.createFeatureAttribute(toponymeCommunication, "Nature", "string", + true); + AttributeType nature33 = toponymeCommunication + .getFeatureAttributeByName("Nature"); + nature33 + .setDefinition("Donne plus précisément la nature de l'objet nommé."); + sProduit.createFeatureAttributeValue(nature33, "Aéroport"); + sProduit.createFeatureAttributeValue(nature33, "Barrage"); + sProduit.createFeatureAttributeValue(nature33, "Carrefour"); + sProduit.createFeatureAttributeValue(nature33, "Chemin"); + sProduit.createFeatureAttributeValue(nature33, "Gare"); + sProduit.createFeatureAttributeValue(nature33, "Infrastructure routière"); + sProduit.createFeatureAttributeValue(nature33, "Pont"); + sProduit.createFeatureAttributeValue(nature33, "Port"); + sProduit.createFeatureAttributeValue(nature33, "Remonte-pente"); + sProduit.createFeatureAttributeValue(nature33, "Tunnel"); + sProduit.createFeatureAttributeValue(nature33, "Voie ferrée"); + + // Classe Toponyme divers + + sProduit.createFeatureType("Toponyme divers"); + FeatureType toponymeDivers = (FeatureType) (sProduit + .getFeatureTypeByName("Toponyme divers")); + toponymeDivers.setDefinition("Toponyme désignant un détail quelconque."); + toponymeDivers.setIsAbstract(false); + // Attribut Nom + sProduit.createFeatureAttribute(toponymeDivers, "Nom", "string", false); + AttributeType nom34 = toponymeDivers.getFeatureAttributeByName("Nom"); + nom34.setDefinition("Toponyme associé à l'objet."); + // Attribut Importance + sProduit.createFeatureAttribute(toponymeDivers, "Importance", "entier", + true); + AttributeType importance34 = toponymeDivers + .getFeatureAttributeByName("Importance"); + importance34 + .setDefinition("Code permettant d'établir une hiérarchie dans la toponymie. " + + "La valeur 1 correspond aux objets les plus importants (ex. zone militaire) tandis que la valeur 8 caractérise " + + "des détails mineurs (abri, statue,...)."); + sProduit.createFeatureAttributeValue(importance34, "1"); + sProduit.createFeatureAttributeValue(importance34, "2"); + sProduit.createFeatureAttributeValue(importance34, "3"); + sProduit.createFeatureAttributeValue(importance34, "4"); + sProduit.createFeatureAttributeValue(importance34, "5"); + sProduit.createFeatureAttributeValue(importance34, "6"); + sProduit.createFeatureAttributeValue(importance34, "7"); + sProduit.createFeatureAttributeValue(importance34, "8"); + // Attribut Nature + sProduit.createFeatureAttribute(toponymeDivers, "Nature", "string", true); + AttributeType nature34 = toponymeDivers.getFeatureAttributeByName("Nature"); + nature34 + .setDefinition("Donne plus précisément la nature de l'objet nommé."); + sProduit.createFeatureAttributeValue(nature34, "Belvédère"); + sProduit.createFeatureAttributeValue(nature34, "Borne"); + sProduit.createFeatureAttributeValue(nature34, "Cabane"); + sProduit.createFeatureAttributeValue(nature34, "Cimetière"); + sProduit.createFeatureAttributeValue(nature34, "Digue"); + sProduit.createFeatureAttributeValue(nature34, "Elevage"); + sProduit.createFeatureAttributeValue(nature34, "Energie"); + sProduit.createFeatureAttributeValue(nature34, "Installations militaires"); + sProduit.createFeatureAttributeValue(nature34, "Mine"); + sProduit.createFeatureAttributeValue(nature34, "Monument"); + sProduit.createFeatureAttributeValue(nature34, "Monument religieux"); + sProduit.createFeatureAttributeValue(nature34, "Pare-feu"); + sProduit.createFeatureAttributeValue(nature34, "Ruines"); + sProduit.createFeatureAttributeValue(nature34, "Sport"); + sProduit.createFeatureAttributeValue(nature34, "Vestiges"); + sProduit.createFeatureAttributeValue(nature34, "Zone d'activité"); + sProduit.createFeatureAttributeValue(nature34, "Zone d'élevage"); + sProduit.createFeatureAttributeValue(nature34, "Zone de loisirs"); + sProduit.createFeatureAttributeValue(nature34, "Zone militaire"); + + Integer compteurFT = 0; + Integer compteurAT = 0; + Integer compteurV = 0; + System.out.println("Récapitulons:"); + List listeFT = sProduit.getFeatureTypes(); + for (GF_FeatureType type : listeFT) { + compteurFT = compteurFT + 1; + System.out.println("Classe: " + type.getTypeName()); + List listeAT = type.getFeatureAttributes(); + for (GF_AttributeType type2 : listeAT) { + compteurAT = compteurAT + 1; + System.out.println("Attribut: " + type2.getMemberName()); + if (type2.getValueDomainType()) { + List listeValeurs = type2.getValuesDomain(); + for (FC_FeatureAttributeValue value : listeValeurs) { + compteurV = compteurV + 1; + System.out.println("Valeur: " + value.getLabel()); + } + } + } + } + System.out.println("Nb de FT = " + compteurFT); + System.out.println("Nb de AT = " + compteurAT); + System.out.println("Nb de V = " + compteurV); + + return sProduit; + } +}