|
From: <de...@us...> - 2017-06-30 13:18:21
|
Revision: 9655
http://sourceforge.net/p/fudaa/svn/9655
Author: deniger
Date: 2017-06-30 13:18:19 +0000 (Fri, 30 Jun 2017)
Log Message:
-----------
Classes AOC
Added Paths:
-----------
trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/
trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/
trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueAOCReaderWriter.java
trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueConverterAOC.java
trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoAOC.java
trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoStructureAOC.java
Added: trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueAOCReaderWriter.java
===================================================================
--- trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueAOCReaderWriter.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueAOCReaderWriter.java 2017-06-30 13:18:19 UTC (rev 9655)
@@ -0,0 +1,29 @@
+/**
+ *
+ */
+package org.fudaa.dodico.crue.io.aoc;
+
+import org.fudaa.dodico.crue.io.common.CrueDataXmlReaderWriterImpl;
+import org.fudaa.dodico.crue.projet.aoc.AocCampagne;
+
+import java.io.File;
+
+/**
+ * @author CANEL Christophe
+ *
+ */
+public class CrueAOCReaderWriter extends CrueDataXmlReaderWriterImpl<CrueDaoAOC, AocCampagne> {
+ public CrueAOCReaderWriter(String version)
+ {
+ this(version, null);
+ }
+/**
+ *
+ * @param version
+ * @param otfaFile on l'utilise pour l'initialiser dans OtfaCampagne.
+ */
+ public CrueAOCReaderWriter(String version, File otfaFile)
+ {
+ super("aoc", version, new CrueConverterAOC(otfaFile), new CrueDaoStructureAOC());
+ }
+}
Added: trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueConverterAOC.java
===================================================================
--- trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueConverterAOC.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueConverterAOC.java 2017-06-30 13:18:19 UTC (rev 9655)
@@ -0,0 +1,191 @@
+/**
+ *
+ */
+package org.fudaa.dodico.crue.io.aoc;
+
+import org.fudaa.ctulu.CtuluLog;
+import org.fudaa.dodico.crue.common.transformer.DateDurationConverter;
+import org.fudaa.dodico.crue.io.common.CrueDataConverter;
+import org.fudaa.dodico.crue.metier.CrueData;
+import org.fudaa.dodico.crue.projet.aoc.*;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author deniger
+ */
+public class CrueConverterAOC implements CrueDataConverter<CrueDaoAOC, AocCampagne> {
+
+ private final File aocFile;
+
+ public CrueConverterAOC(File otfaFile) {
+ this.aocFile = otfaFile;
+ }
+
+ public CrueConverterAOC() {
+ this(null);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AocCampagne convertDaoToMetier(CrueDaoAOC dao, CrueData dataLinked, CtuluLog analyser) {
+ AocCampagne metier = new AocCampagne();
+
+ metier.setCommentaire(dao.getCommentaire());
+ metier.setAuteurCreation(dao.AuteurCreation);
+ metier.setDateCreation(DateDurationConverter.getDate(dao.DateCreation));
+ metier.setAuteurModification(dao.AuteurDerniereModif);
+ if (dao.DateDerniereModif != null) {
+ metier.setDateModification(DateDurationConverter.getDate(dao.DateDerniereModif));
+ }
+ metier.setEtudeChemin(dao.EtudeAssociee.Chemin);
+ metier.setNomScenario(dao.EtudeAssociee.NomScenario);
+ metier.setTypeCalageCritere(dao.TypeCalage.Critere);
+ metier.setTypeCalageDonnees(dao.TypeCalage.Donnees);
+
+ metier.getCalage().setAlgorithme(dao.Calage.Algorithme);
+ metier.getCalage().setType(dao.Calage.Type);
+
+ metier.getCalage().setNombreIterationSeul(dao.Calage.Seul.NombreIteration);
+ metier.getCalage().setNombreIterationTir(dao.Calage.TestRepetabilite.NombreIterationTir);
+ metier.getCalage().setNombreIterationValidationCroisee(dao.Calage.ValidationCroisee.NombreIteration);
+ metier.getCalage().setNombreTir(dao.Calage.TestRepetabilite.NombreTir);
+ metier.getCalage().setPonderationApprentissage(dao.Calage.ValidationCroisee.PonderationApprentissage);
+ metier.getCalage().setPonderationValidation(dao.Calage.ValidationCroisee.PonderationValidation);
+
+ //EchelleSections
+ final List<CrueDaoStructureAOC.EchelleSection> sections = dao.DonneesCampagne.EchellesSections.sections;
+ if (sections != null) {
+ for (CrueDaoStructureAOC.EchelleSection section : sections) {
+ metier.getDonnees().getEchellesSections().addSection(section.PK, section.SectionRef);
+ }
+ }
+ //LoisCalculsPermanents
+ final List<CrueDaoStructureAOC.LoiCalculPermanent> loiCalculPermanents = dao.DonneesCampagne.LoisCalculsPermanents.calculs;
+ if (loiCalculPermanents != null) {
+ for (CrueDaoStructureAOC.LoiCalculPermanent calculPermanent : loiCalculPermanents) {
+ metier.getDonnees().getLoisCalculsPermanents()
+ .addLoiCalculPermanent(calculPermanent.CalculRef, calculPermanent.LoiRef,
+ calculPermanent.Ponderation);
+ }
+ }
+ //LoisCalculsTransitoire
+ final List<CrueDaoStructureAOC.LoiCalculTransitoire> loiCalculTransitoires = dao.DonneesCampagne.LoisCalculsTransitoires.calculs;
+ if (loiCalculTransitoires != null) {
+ for (CrueDaoStructureAOC.LoiCalculTransitoire calculPermanent : loiCalculTransitoires) {
+ metier.getDonnees().getLoisCalculsTransitoires()
+ .addLoiCalculTransitoire(calculPermanent.CalculRef, calculPermanent.LoiRef,
+ calculPermanent.SectionRef,
+ calculPermanent.Ponderation);
+ }
+ }
+ //LoisCalculsTransitoire
+ final List<CrueDaoStructureAOC.LoiStrickler> loiStricklers = dao.DonneesCampagne.LoisStrickler.stricklers;
+ if (loiStricklers != null) {
+ for (CrueDaoStructureAOC.LoiStrickler strickler : loiStricklers) {
+ metier.getDonnees().getLoisStrickler()
+ .addStrickler(
+ strickler.LoiRef,
+ strickler.Min,
+ strickler.Ini,
+ strickler.Max);
+ }
+ }
+ return metier;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AocCampagne getConverterData(CrueData in) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public CrueDaoAOC convertMetierToDao(AocCampagne metier, CtuluLog analyser) {
+ CrueDaoAOC dao = new CrueDaoAOC();
+ dao.EtudeAssociee = new CrueDaoStructureAOC.EtudeAssociee();
+ dao.setCommentaire(metier.getCommentaire());
+ dao.AuteurCreation = metier.getAuteurCreation();
+ if (metier.getDateCreation() != null) {
+ dao.DateCreation = DateDurationConverter.dateToXsd(metier.getDateCreation());
+ }
+ dao.AuteurDerniereModif = metier.getAuteurModification();
+ if (metier.getDateModification() != null) {
+ dao.DateDerniereModif = DateDurationConverter.dateToXsd(metier.getDateModification());
+ }
+ dao.EtudeAssociee.Chemin = metier.getEtudeChemin();
+ dao.EtudeAssociee.NomScenario = metier.getNomScenario();
+
+ dao.TypeCalage = new CrueDaoStructureAOC.TypeCalage();
+ dao.TypeCalage.Critere = metier.getTypeCalageCritere();
+ dao.TypeCalage.Donnees = metier.getTypeCalageDonnees();
+
+ dao.Calage = new CrueDaoStructureAOC.Calage();
+ dao.Calage.Seul = new CrueDaoStructureAOC.CalageSeul();
+ dao.Calage.TestRepetabilite = new CrueDaoStructureAOC.CalageTestRepetabilite();
+ dao.Calage.ValidationCroisee = new CrueDaoStructureAOC.CalageValidationCroisee();
+ dao.Calage.Algorithme = metier.getCalage().getAlgorithme();
+ dao.Calage.Type = metier.getCalage().getType();
+
+ dao.Calage.Seul.NombreIteration = metier.getCalage().getNombreIterationSeul();
+ dao.Calage.TestRepetabilite.NombreIterationTir = metier.getCalage().getNombreIterationTir();
+ dao.Calage.TestRepetabilite.NombreTir = metier.getCalage().getNombreTir();
+ dao.Calage.ValidationCroisee.NombreIteration = metier.getCalage().getNombreIterationValidationCroisee();
+ dao.Calage.ValidationCroisee.PonderationApprentissage = metier.getCalage().getPonderationApprentissage();
+ dao.Calage.ValidationCroisee.PonderationValidation = metier.getCalage().getPonderationValidation();
+
+ final AocEchellesSections echellesSections = metier.getDonnees().getEchellesSections();
+ //donnees campagne
+ dao.DonneesCampagne = new CrueDaoStructureAOC.DonneesCampagne();
+ //Echelles section
+ dao.DonneesCampagne.EchellesSections = new CrueDaoStructureAOC.EchellesSections();
+ dao.DonneesCampagne.EchellesSections.sections = new ArrayList<>();
+ for (AocEchellesSection aocEchellesSection : echellesSections.getEchellesSectionList()) {
+ dao.DonneesCampagne.EchellesSections.sections
+ .add(CrueDaoStructureAOC.create(aocEchellesSection.getPk(),
+ aocEchellesSection.getSectionRef()));
+ }
+ //permanent
+ dao.DonneesCampagne.LoisCalculsPermanents = new CrueDaoStructureAOC.LoisCalculsPermanents();
+ dao.DonneesCampagne.LoisCalculsPermanents.calculs = new ArrayList<>();
+ for (AocLoiCalculPermanent loiPermanent : metier.getDonnees().getLoisCalculsPermanents()
+ .getLois()) {
+ dao.DonneesCampagne.LoisCalculsPermanents.calculs
+ .add(new CrueDaoStructureAOC.LoiCalculPermanent(loiPermanent.getCalculRef(),
+ loiPermanent.getLoiRef(), loiPermanent.getPonderation()));
+ }
+
+ //transitoire
+ dao.DonneesCampagne.LoisCalculsTransitoires = new CrueDaoStructureAOC.LoisCalculsTransitoires();
+ dao.DonneesCampagne.LoisCalculsTransitoires.calculs = new ArrayList<>();
+ for (AocLoiCalculTransitoire loiTransitoire : metier.getDonnees().getLoisCalculsTransitoires()
+ .getLois()) {
+ dao.DonneesCampagne.LoisCalculsTransitoires.calculs
+ .add(new CrueDaoStructureAOC.LoiCalculTransitoire(loiTransitoire.getCalculRef(),
+ loiTransitoire.getLoiRef(), loiTransitoire.getSectionRef(),
+ loiTransitoire.getPonderation()));
+ }
+ //stricklers
+ dao.DonneesCampagne.LoisStrickler = new CrueDaoStructureAOC.LoisStrickler();
+ dao.DonneesCampagne.LoisStrickler.stricklers = new ArrayList<>();
+ for (AocLoiStrickler loiTransitoire : metier.getDonnees().getLoisStrickler()
+ .getLois()) {
+ dao.DonneesCampagne.LoisStrickler.stricklers
+ .add(new CrueDaoStructureAOC.LoiStrickler(
+ loiTransitoire.getLoiRef(),
+ loiTransitoire.getMin(),
+ loiTransitoire.getIni(),
+ loiTransitoire.getMax()));
+ }
+ return dao;
+ }
+}
Added: trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoAOC.java
===================================================================
--- trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoAOC.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoAOC.java 2017-06-30 13:18:19 UTC (rev 9655)
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package org.fudaa.dodico.crue.io.aoc;
+
+import org.fudaa.dodico.crue.common.io.AbstractCrueDao;
+
+/**
+ * @author CANEL Christophe
+ */
+public class CrueDaoAOC extends AbstractCrueDao {
+ public String AuteurCreation;
+ public String DateCreation;
+ public String AuteurDerniereModif;
+ public String DateDerniereModif;
+ public CrueDaoStructureAOC.EtudeAssociee EtudeAssociee;
+ public CrueDaoStructureAOC.TypeCalage TypeCalage;
+ public CrueDaoStructureAOC.Calage Calage;
+ public CrueDaoStructureAOC.DonneesCampagne DonneesCampagne;
+}
Added: trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoStructureAOC.java
===================================================================
--- trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoStructureAOC.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueDaoStructureAOC.java 2017-06-30 13:18:19 UTC (rev 9655)
@@ -0,0 +1,245 @@
+/**
+ *
+ */
+package org.fudaa.dodico.crue.io.aoc;
+
+import com.thoughtworks.xstream.XStream;
+import org.apache.commons.collections.bidimap.DualHashBidiMap;
+import org.fudaa.ctulu.CtuluLog;
+import org.fudaa.dodico.crue.io.common.CrueDataDaoStructure;
+import org.fudaa.dodico.crue.io.common.EnumsConverter;
+import org.fudaa.dodico.crue.projet.aoc.EnumAocCalageAlgorithme;
+import org.fudaa.dodico.crue.projet.aoc.EnumAocCalageType;
+import org.fudaa.dodico.crue.projet.aoc.EnumAocTypeCalageCritere;
+import org.fudaa.dodico.crue.projet.aoc.EnumAocTypeCalageDonnees;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author deniger
+ */
+public class CrueDaoStructureAOC implements CrueDataDaoStructure {
+
+ /**
+ * @return map de correspondance pour les enums
+ */
+ public static DualHashBidiMap createTypeCalageDonneesMap() {
+ final DualHashBidiMap res = new DualHashBidiMap();
+ res.put(EnumAocTypeCalageDonnees.PERMANENT, "Permanent");
+ res.put(EnumAocTypeCalageDonnees.TRANSITOIRE_HYDROGRAMME, "TransitoireLimnigramme");
+ res.put(EnumAocTypeCalageDonnees.TRANSITOIRE_LIMNIGRAMME, "TransitoireHydrogramme");
+ return res;
+ }
+
+ /**
+ * @return map de correspondance pour les enums
+ */
+ public static DualHashBidiMap createTypeCalageCriteresMap() {
+ final DualHashBidiMap res = new DualHashBidiMap();
+ res.put(EnumAocTypeCalageCritere.ERREUR_QUADRATIQUE, "ErreurQuadratique");
+ res.put(EnumAocTypeCalageCritere.ECART_NIVEAUX_MAX, "EcartNiveauxMax");
+ res.put(EnumAocTypeCalageCritere.ECART_NIVEAUX_MAX, "EcartNiveauxMax");
+ res.put(EnumAocTypeCalageCritere.ECART_TEMPS_ARRIVEE_MAX, "EcartTempsArriveeMax");
+ res.put(EnumAocTypeCalageCritere.ECART_VOLUMES, "EcartVolumes");
+ return res;
+ }
+
+ /**
+ * @return map de correspondance pour les enums
+ */
+ public static DualHashBidiMap createCalageTypeMap() {
+ final DualHashBidiMap res = new DualHashBidiMap();
+ res.put(EnumAocCalageType.SEUL, "Seul");
+ res.put(EnumAocCalageType.TEST_REPETABILITE, "TestRepetabilite");
+ res.put(EnumAocCalageType.ANALYSE_SENSIBILITE, "AnalyseSensibilite");
+ res.put(EnumAocCalageType.VALIDATION_CROISEE, "ValidationCroisee");
+ return res;
+ }
+
+ /**
+ * @return map de correspondance pour les enums
+ */
+ public static DualHashBidiMap createCalageAlgorithmeMap() {
+ final DualHashBidiMap res = new DualHashBidiMap();
+ res.put(EnumAocCalageAlgorithme.RECUIT, "Recuit");
+ res.put(EnumAocCalageAlgorithme.MONTE_CARLO, "MonteCarlo");
+ return res;
+ }
+
+ public static EchelleSection create(String pk, String sectionRef) {
+ EchelleSection res = new EchelleSection();
+ res.SectionRef = sectionRef;
+ res.PK = pk;
+ return res;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void configureXStream(XStream xstream, CtuluLog analyze,
+ org.fudaa.dodico.crue.config.loi.LoiTypeContainer props) {
+ //on configure les alias
+ xstream.alias("AOC", CrueDaoAOC.class);
+ xstream.alias("EtudeAssociee", EtudeAssociee.class);
+ xstream.alias("TypeCalage", TypeCalage.class);
+ xstream.alias("Calage", Calage.class);
+ xstream.alias("Seul", CalageSeul.class);
+ xstream.alias("CalageTestRepetabilite", CalageTestRepetabilite.class);
+ xstream.alias("CalageValidationCroisee", CalageValidationCroisee.class);
+ xstream.alias("DonneesCampagne", DonneesCampagne.class);
+
+ xstream.alias("EchellesSections", EchellesSections.class);
+ xstream.alias("EchelleSection", EchelleSection.class);
+ xstream.useAttributeFor(EchelleSection.class, "PK");
+ xstream.useAttributeFor(EchelleSection.class, "SectionRef");
+
+ xstream.alias("LoisCalculsPermanents", LoisCalculsPermanents.class);
+ xstream.alias("LoiCalculPermanent", LoiCalculPermanent.class);
+ xstream.useAttributeFor(LoiCalculPermanent.class, "CalculRef");
+ xstream.useAttributeFor(LoiCalculPermanent.class, "LoiRef");
+ xstream.useAttributeFor(LoiCalculPermanent.class, "Ponderation");
+
+ xstream.alias("LoisCalculsTransitoires", LoisCalculsTransitoires.class);
+ xstream.alias("LoiCalculTransitoire", LoiCalculTransitoire.class);
+ xstream.useAttributeFor(LoiCalculTransitoire.class, "CalculRef");
+ xstream.useAttributeFor(LoiCalculTransitoire.class, "LoiRef");
+ xstream.useAttributeFor(LoiCalculTransitoire.class, "SectionRef");
+ xstream.useAttributeFor(LoiCalculTransitoire.class, "Ponderation");
+
+ xstream.alias("LoisStrickler", LoisStrickler.class);
+ xstream.alias("LoiStrickler", LoiStrickler.class);
+ xstream.useAttributeFor(LoiStrickler.class, "LoiRef");
+ xstream.useAttributeFor(LoiStrickler.class, "Min");
+ xstream.useAttributeFor(LoiStrickler.class, "Ini");
+ xstream.useAttributeFor(LoiStrickler.class, "Max");
+
+ xstream.addImplicitCollection(EchellesSections.class, "sections");
+ xstream.addImplicitCollection(LoisCalculsPermanents.class, "calculs");
+ xstream.addImplicitCollection(LoisCalculsTransitoires.class, "calculs");
+ xstream.addImplicitCollection(LoisStrickler.class, "stricklers");
+
+ xstream.registerConverter(EnumsConverter
+ .createEnumConverter(createTypeCalageCriteresMap(), EnumAocTypeCalageCritere.class, analyze));
+ xstream.registerConverter(EnumsConverter
+ .createEnumConverter(createTypeCalageDonneesMap(), EnumAocTypeCalageDonnees.class, analyze));
+ xstream.registerConverter(
+ EnumsConverter.createEnumConverter(createCalageTypeMap(), EnumAocCalageType.class, analyze));
+ xstream.registerConverter(EnumsConverter
+ .createEnumConverter(createCalageAlgorithmeMap(), EnumAocCalageAlgorithme.class, analyze));
+ }
+
+ public static class EtudeAssociee {
+ public String Chemin;
+ public String NomScenario;
+ }
+
+ public static class TypeCalage {
+ public EnumAocTypeCalageDonnees Donnees;
+ public EnumAocTypeCalageCritere Critere;
+ }
+
+ public static class Calage {
+ public EnumAocCalageType Type;
+ public EnumAocCalageAlgorithme Algorithme;
+ public CalageSeul Seul;
+ public CalageTestRepetabilite TestRepetabilite;
+ public CalageValidationCroisee ValidationCroisee;
+ }
+
+ public static class CalageSeul {
+ public int NombreIteration;
+ }
+
+ public static class CalageTestRepetabilite {
+ public int NombreIterationTir;
+ public int NombreTir;
+ }
+
+ public static class CalageValidationCroisee {
+ public int NombreIteration;
+ public double PonderationApprentissage;
+ public double PonderationValidation;
+ }
+
+ public static class DonneesCampagne {
+ public EchellesSections EchellesSections;
+ public LoisCalculsPermanents LoisCalculsPermanents;
+ public LoisCalculsTransitoires LoisCalculsTransitoires;
+ public LoisStrickler LoisStrickler;
+ }
+
+ public static class EchellesSections {
+ public List<EchelleSection> sections;
+ }
+
+ public static class LoisCalculsPermanents {
+ public List<LoiCalculPermanent> calculs = new ArrayList<>();
+ }
+
+ public static class LoisCalculsTransitoires {
+ public List<LoiCalculTransitoire> calculs = new ArrayList<>();
+ }
+
+ public static class LoisStrickler {
+ public List<LoiStrickler> stricklers = new ArrayList<>();
+ }
+
+ public static class EchelleSection {
+ public String PK;
+ public String SectionRef;
+ }
+
+ public static class LoiCalculPermanent {
+ public String CalculRef;
+ public String LoiRef;
+ public int Ponderation;
+
+ public LoiCalculPermanent() {
+
+ }
+
+ public LoiCalculPermanent(String calculRef, String loiRef, int ponderation) {
+ CalculRef = calculRef;
+ LoiRef = loiRef;
+ Ponderation = ponderation;
+ }
+ }
+
+ public static class LoiCalculTransitoire {
+ public String CalculRef;
+ public String LoiRef;
+ public String SectionRef;
+ public int Ponderation;
+
+ public LoiCalculTransitoire() {
+
+ }
+
+ public LoiCalculTransitoire(String calculRef, String loiRef, String sectionRef, int ponderation) {
+ CalculRef = calculRef;
+ LoiRef = loiRef;
+ SectionRef = sectionRef;
+ Ponderation = ponderation;
+ }
+ }
+
+ public static class LoiStrickler {
+ public String LoiRef;
+ public int Min;
+ public int Ini;
+ public int Max;
+
+ public LoiStrickler() {
+
+ }
+
+ public LoiStrickler(String loiRef, int min, int ini, int max) {
+ LoiRef = loiRef;
+ Min = min;
+ Ini = ini;
+ Max = max;
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|