You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "M. Le Bihan (JIRA)" <ji...@apache.org> on 2019/06/27 06:16:00 UTC

[jira] [Created] (SPARK-28180) Encoding CSV to Pojo works with Encoders.bean on RDD but fail on asserts when attemtping it from a Dataset

M. Le Bihan created SPARK-28180:
-----------------------------------

             Summary: Encoding CSV to Pojo works with Encoders.bean on RDD but fail on asserts when attemtping it from a Dataset<Row>
                 Key: SPARK-28180
                 URL: https://issues.apache.org/jira/browse/SPARK-28180
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 2.4.3
         Environment: Debian 9, Java 8.
            Reporter: M. Le Bihan


I am converting an _RDD_ spark program to a _Dataset_ one.
Once, it was converting a CSV file mapped the help of a Jackson loader to a RDD of Enterprise objects with Encoders.bean(Entreprise.class), and now it is doing the conversion more simplier, by loading the CSV content into a Dataset<Row> and applying the _Encoders.bean(Entreprise.class)_ on it.


{code:java}
      Dataset<Row> csv = this.session.read().format("csv")
         .option("header","true").option("quote", "\"").option("escape", "\"")
         .load(source.getAbsolutePath())
         .selectExpr(
            "ActivitePrincipaleUniteLegale as ActivitePrincipale",
            "CAST(AnneeCategorieEntreprise as INTEGER) as AnneeCategorieEntreprise",
            "CAST(AnneeEffectifsUniteLegale as INTEGER) as AnneeValiditeEffectifSalarie",
            "CAST(CaractereEmployeurUniteLegale == 'O' as BOOLEAN) as CaractereEmployeur",
            "CategorieEntreprise", 
            "CategorieJuridiqueUniteLegale as CategorieJuridique",
            "DateCreationUniteLegale as DateCreationEntreprise", "DateDebut as DateDebutHistorisation", "DateDernierTraitementUniteLegale as DateDernierTraitement",
            "DenominationUniteLegale as Denomination", "DenominationUsuelle1UniteLegale as DenominationUsuelle1", "DenominationUsuelle2UniteLegale as DenominationUsuelle2", "DenominationUsuelle3UniteLegale as DenominationUsuelle3",
            "CAST(EconomieSocialeSolidaireUniteLegale == 'O' as BOOLEAN) as EconomieSocialeSolidaire",
            "CAST(EtatAdministratifUniteLegale == 'A' as BOOLEAN) as Active",
            "IdentifiantAssociationUniteLegale as IdentifiantAssociation",
            "NicSiegeUniteLegale as NicSiege", 
            "CAST(NombrePeriodesUniteLegale as INTEGER) as NombrePeriodes",
            "NomenclatureActivitePrincipaleUniteLegale as NomenclatureActivitePrincipale",
            "NomUniteLegale as NomNaissance", "NomUsageUniteLegale as NomUsage",
            "Prenom1UniteLegale as Prenom1", "Prenom2UniteLegale as Prenom2", "Prenom3UniteLegale as Prenom3", "Prenom4UniteLegale as Prenom4", "PrenomUsuelUniteLegale as PrenomUsuel",
            "PseudonymeUniteLegale as Pseudonyme",
            "SexeUniteLegale as Sexe", 
            "SigleUniteLegale as Sigle", 
            "Siren", 
            "TrancheEffectifsUniteLegale as TrancheEffectifSalarie"
         );
{code}

The _Dataset<Row>_ is succesfully created. But the following call of _Encoders.bean(Enterprise.class)_ fails :


{code:java}
java.lang.AssertionError: assertion failed
	at scala.Predef$.assert(Predef.scala:208)
	at org.apache.spark.sql.catalyst.encoders.ExpressionEncoder$.javaBean(ExpressionEncoder.scala:87)
	at org.apache.spark.sql.Encoders$.bean(Encoders.scala:142)
	at org.apache.spark.sql.Encoders.bean(Encoders.scala)
	at fr.ecoemploi.spark.entreprise.EntrepriseService.dsEntreprises(EntrepriseService.java:178)
	at test.fr.ecoemploi.spark.entreprise.EntreprisesIT.datasetEntreprises(EntreprisesIT.java:72)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:532)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:171)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:72)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:167)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:114)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:59)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$4(NodeTestTask.java:108)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:72)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:98)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:74)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$4(NodeTestTask.java:112)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:72)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:98)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:74)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$4(NodeTestTask.java:112)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:72)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:98)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:74)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
	at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
	at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:137)
	at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:89)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
{code}


The message 
 java.lang.AssertionError: assertion failed
	at scala.Predef$.assert(Predef.scala:208)
comes from the scala_2.11 I am relying on, and it angers me a lot against Scala developpers. Who still dares writing asserts or exceptions without accompagny them with a clear message ? What was that line checking and against which value in my case ?
Scala costs a lot to Spark. Poor quality, unable to work with Java 11. Unreliable.

Whatever. There is a problem that Encoders.bean(...) who wasn't able to check something before sending the mapping orders.

P.S. : The code of the Entreprise POJO class is this one, if needed :

{code:java}
/**
 * Entreprise
 * @author Marc LE BIHAN
 */
public class Entreprise extends AbstractSirene<SIREN> implements Iterable<Etablissement>, Comparable<Entreprise> {
   /** Serial ID. */
   private static final long serialVersionUID = 2451240618966775942L;
   
   /** Liste des établissements de l'entreprise. */
   private Etablissements etablissements = new Etablissements();
   
   /** Sigle de l'entreprise */
   private String sigle;
   
   /** Nom de naissance */
   private String nomNaissance;
   
   /** Nom d'usage */
   private String nomUsage;
   
   /** Prénom usuel */
   private String prenomUsuel;
   
   /** Autre prénom 1. */
   private String prenom1;

   /** Autre prénom 2. */
   private String prenom2;

   /** Autre prénom 3. */
   private String prenom3;

   /** Autre prénom 4. */
   private String prenom4;
   
   /** Pseudonyme de la personne physique. */
   private String pseudonyme;
   
   /** Sexe de la personne physique. */
   private String sexe;

   /** Numéro d’identification au répertoire national des associations */
   private String rna;

   /** Dénomination usuelle de l'entreprise 1. */
   private String denominationUsuelle1;

   /** Dénomination usuelle de l'entreprise 2. */
   private String denominationUsuelle2;

   /** Dénomination usuelle de l'entreprise 3. */
   private String denominationUsuelle3;
   
   /** Appartenance au champ de l’économie sociale et solidaire */
   private boolean economieSocialeEtSolidaire;
   
   /** Catégorie d'entreprise */
   private String categorieEntreprise;
   
   /** Année et mois de création de l'entreprise */
   private String dateCreationEntreprise;

   /** Année de mise à jour de la catégorie. */
   private Integer anneeCategorieEntreprise;
   
   /** Numéro interne de classement de l'établissement siège */
   private String nicsiege;
   
   /** Catégorie juridique de l'entreprise. */
   private String categorieJuridique;
   
   /** Indique si l'entreprise a été purgée du fichier. */
   private boolean purgee;

   /**
    * Ajouter un établissement à l'entreprise.
    * @param etablissement Etablissement.
    */
   public void ajouterEtablissement(Etablissement etablissement) {
      Objects.requireNonNull(etablissement, "L'établissement à ajouter ne peut pas valoir null.");
      this.etablissements.put(etablissement.getSiret(), etablissement);
   }
   
   /**
    * Renvoyer la liste des activités principales de l'entreprise, tous établissements regroupés avec la sienne déclarée.
    * @return Liste des activités principales.
    */
   public Set<String> getActivites() {
      Set<String> activites = this.etablissements.getActivites();
      
      if (getActivitePrincipale() != null) {
         activites.add(getActivitePrincipale());
      }
      
      return activites;
   }
   
   /**
    * Renvoyer le SIREN de l'entreprise.
    * @return SIREN.
    */
   public SIREN asSiren() {
      return sirenOuSiret();
   }
   
   /**
    * Renvoyer le SIREN de l'entreprise.
    * @return SIREN.
    */
   public String getSiren() {
      return sirenOuSiret().toString();
   }
   
   /**
    * Fixer le SIREN de l'entreprise.
    * @param siren SIREN.
    */
   public void setSiren(String siren) {
      sirenOuSiret(new SIREN(siren));
   }

   /**
    * Renvoyer la liste des établissements de l'entreprise.
    * @return Liste des établissements.
    */
   public Map<String, Etablissement> etablissements() {
      return this.etablissements;
   }

   /**
    * Fixer la liste des établissements de l'entreprise.
    * @param etablissementsEntreprise Liste des établissements.
    */
   public void etablissements(Etablissements etablissementsEntreprise) {
      this.etablissements = etablissementsEntreprise;
   }

   /**
    * Renvoyer le sigle (forme réduite de la raison sociale ou de la dénomination d'une personne morale ou d'un organisme public) (SIGLE).
    * @return Sigle. 
    */
   public String getSigle() {
      return this.sigle;
   }

   /**
    * Fixer le sigle (forme réduite de la raison sociale ou de la dénomination d'une personne morale ou d'un organisme public) (SIGLE).
    * @param sigle Sigle. 
    */
   public void setSigle(String sigle) {
      this.sigle = sigle;
   }

   /**
    * Renvoyer le nom de naissance pour une personne physique (NOM).
    * @return Nom de naissance pour une personne physique.
    */
   public String getNomNaissance() {
      return this.nomNaissance;
   }

   /**
    * Fixer le nom de naissance pour une personne physique (NOM).
    * @param nom Nom de naissance pour une personne physique.
    */
   public void setNomNaissance(String nom) {
      this.nomNaissance = nom;
   }

   /**
    * Renvoyer le prénom usuel pour une personne physique (PRENOM).
    * @return Prénom usuel pour une personne physique.
    */
   public String getPrenomUsuel() {
      return this.prenomUsuel;
   }

   /**
    * Fixer le prénom usuel pour une personne physique (PRENOM).
    * @param prenom Prénom usuel pour une personne physique. 
    */
   public void setPrenomUsuel(String prenom) {
      this.prenomUsuel = prenom;
   }

   /**
    * Renvoyer le premier autre prénom de la personne physique.
    * @return Prénoms.
    */
   public String getPrenom1() {
      return this.prenom1;
   }

   /**
    * Fixer le premier autre prénom de la personne physique.
    * @param prenom Prénoms.
    */
   public void setPrenom1(String prenom) {
      this.prenom1 = prenom;
   }

   /**
    * Renvoyer le deuxième autre prénom de la personne physique.
    * @return Prénoms.
    */
   public String getPrenom2() {
      return this.prenom2;
   }

   /**
    * Fixer le deuxième autre prénom de la personne physique.
    * @param prenom Prénoms.
    */
   public void setPrenom2(String prenom) {
      this.prenom2 = prenom;
   }

   /**
    * Renvoyer le troisième autre prénom de la personne physique.
    * @return Prénoms.
    */
   public String getPrenom3() {
      return this.prenom3;
   }

   /**
    * Fixer le troisième autre prénom de la personne physique.
    * @param prenom Prénoms.
    */
   public void setPrenom3(String prenom) {
      this.prenom3 = prenom;
   }

   /**
    * Renvoyer le quatrième autre prénom de la personne physique.
    * @return Prénoms.
    */
   public String getPrenom4() {
      return this.prenom4;
   }

   /**
    * Fixer le quatrième autre prénom de la personne physique.
    * @param prenom Prénoms.
    */
   public void setPrenom4(String prenom) {
      this.prenom4 = prenom;
   }

   /**
    * Renvoyer le pseudonyme de la personne physique.
    * @return Pseudonyme.
    */
   public String getPseudonyme() {
      return this.pseudonyme;
   }

   /**
    * Fixer le pseudonyme de la personne physique.
    * @param pseudonyme Pseudonyme.
    */
   public void setPseudonyme(String pseudonyme) {
      this.pseudonyme = pseudonyme;
   }
   
   /**
    * Renvoyer le sexe de la personne physique.
    * @return sexe de la personne physique.
    */
   public Sexe asSexe() {
      return this.sexe != null ? Sexe.valueOf(this.sexe) : null;
   }
   
   /**
    * Renvoyer le sexe de la personne physique.
    * @return sexe de la personne physique.
    */
   public String getSexe() {
      return this.sexe;
   }

   /**
    * Fixer le sexe de la personne physique.
    * @param sexe sexe de la personne physique.
    */
   public void setSexe(String sexe) {
      this.sexe = sexe;
   }

   /**
    * Renvoyer le numéro d’identification au répertoire national des associations (RNA).
    * @return W suivi de neuf chiffres.
    */
   public String getRna() {
      return this.rna;
   }

   /**
    * Fixer le numéro d’identification au répertoire national des associations (RNA).
    * @param rna W suivi de neuf chiffres.
    */
   public void setRna(String rna) {
      this.rna = rna;
   }

   /**
    * Déterminer si l'entreprise appartient au champ de l’économie sociale et solidaire (ESS).
    * @return Appartenance ou non à l'ESS.
    */
   public boolean getEconomieSocialeSolidaire() {
      return this.economieSocialeEtSolidaire;
   }

   /**
    * Fixer si l'entreprise appartient au champ de l’économie sociale et solidaire (ESS).
    * @param ess Appartenance ou non à l'ESS.
    */
   public void setEconomieSocialeSolidaire(boolean ess) {
      this.economieSocialeEtSolidaire = ess;
   }

   /**
    * Renvoyer la catégorie de l'entreprise (CATEGORIE).
    * @return Catégorie de l'entreprise :<br>
    * PME ou Petite ou Moyenne Entreprise : La catégorie des petites et moyennes entreprises (PME) est constituée des entreprises qui occupent moins de 250 personnes, et qui ont un chiffre d'affaires annuel inférieur à 50 millions d'euros ou un total de bilan n'excédant pas 43 millions d'euros. Cette catégorie inclut les microentreprises.<br>
    * ETI ou Entreprise de Taille Intermédiaire : Une entreprise de taille intermédiaire est une entreprise qui a entre 250 et 4999 salariés, et soit un chiffre d'affaires n'excédant pas 1,5 milliards d'euros soit un total de bilan n'excédant pas 2 milliards d'euros.<br>
    * Une entreprise qui a moins de 250 salariés, mais plus de 50 millions d'euros de chiffre d'affaires et plus de 43 millions d'euros de total de bilan est aussi considérée comme une ETI.<br>
    * GE ou Grande Entreprise : Une grande entreprise est une entreprise qui a au moins 5000 salariés. Une entreprise qui a moins de 5000 salariés mais plus de 1,5 milliards d'euros de chiffre d'affaires et plus de 2 milliards d'euros de total de bilan est aussi considérée comme une grande entreprise.
    */
   public CategorieEntreprise asCategorieEntreprise() {
      return CategorieEntreprise.valueOf(this.categorieEntreprise);
   }

   /**
    * Renvoyer la catégorie de l'entreprise (CATEGORIE).
    * @return Catégorie de l'entreprise :<br>
    * PME ou Petite ou Moyenne Entreprise : La catégorie des petites et moyennes entreprises (PME) est constituée des entreprises qui occupent moins de 250 personnes, et qui ont un chiffre d'affaires annuel inférieur à 50 millions d'euros ou un total de bilan n'excédant pas 43 millions d'euros. Cette catégorie inclut les microentreprises.<br>
    * ETI ou Entreprise de Taille Intermédiaire : Une entreprise de taille intermédiaire est une entreprise qui a entre 250 et 4999 salariés, et soit un chiffre d'affaires n'excédant pas 1,5 milliards d'euros soit un total de bilan n'excédant pas 2 milliards d'euros.<br>
    * Une entreprise qui a moins de 250 salariés, mais plus de 50 millions d'euros de chiffre d'affaires et plus de 43 millions d'euros de total de bilan est aussi considérée comme une ETI.<br>
    * GE ou Grande Entreprise : Une grande entreprise est une entreprise qui a au moins 5000 salariés. Une entreprise qui a moins de 5000 salariés mais plus de 1,5 milliards d'euros de chiffre d'affaires et plus de 2 milliards d'euros de total de bilan est aussi considérée comme une grande entreprise.
    */
   public String getCategorieEntreprise() {
      return this.categorieEntreprise;
   }

   /**
    * Fixer la catégorie de l'entreprise (CATEGORIE).
    * @param categorie Catégorie de l'entreprise.
    */
   public void setCategorieEntreprise(String categorie) {
      this.categorieEntreprise = categorie;
   }

   /**
    * @see java.lang.Iterable#iterator()
    */
   @Override
   public Iterator<Etablissement> iterator() {
      return this.etablissements.values().iterator();
   }

   /**
    * Renvoyer le numéro Interne de Classement de l'établissement siège de l'entreprise (NICSIEGE).
    * @return Numéro interne de classement.
    */
   public NIC asNicSiege() {
      return new NIC(this.nicsiege);
   }

   /**
    * Renvoyer le numéro Interne de Classement de l'établissement siège de l'entreprise (NICSIEGE).
    * @return Numéro interne de classement.
    */
   public String getNicSiege() {
      return this.nicsiege;
   }

   /**
    * Fixer le numéro Interne de Classement de l'établissement siège de l'entreprise (NICSIEGE).
    * @param nicsiege Numéro interne de classement.
    */
   public void setNicSiege(String nicsiege) {
      this.nicsiege = nicsiege;
   }

   /**
    * Renvoyer le nom d'usage du détenteur de l'entreprise.
    * @return Nom d'usage.
    */
   public String getNomUsage() {
      return this.nomUsage;
   }

   /**
    * Fixer le nom d'usage du détenteur de l'entreprise.
    * @param nomUsage Nom d'usage.
    */
   public void setNomUsage(String nomUsage) {
      this.nomUsage = nomUsage;
   }

   /**
    * Renvoyer la première dénomination de l'entreprise.
    * @return Dénominations de l'entreprise.
    */
   public String getDenominationUsuelle1() {
      return this.denominationUsuelle1;
   }

   /**
    * Fixer la première dénomination de l'entreprise.
    * @param denomination Dénomination de l'entreprise.
    */
   public void setDenominationUsuelle1(String denomination) {
      this.denominationUsuelle1 = denomination;
   }

   /**
    * Renvoyer la deuxième dénomination de l'entreprise.
    * @return Dénominations de l'entreprise.
    */
   public String getDenominationUsuelle2() {
      return this.denominationUsuelle2;
   }

   /**
    * Fixer la deuxième dénomination de l'entreprise.
    * @param denomination Dénomination de l'entreprise.
    */
   public void setDenominationUsuelle2(String denomination) {
      this.denominationUsuelle2 = denomination;
   }

   /**
    * Renvoyer la troisième dénomination de l'entreprise.
    * @return Dénominations de l'entreprise.
    */
   public String getDenominationUsuelle3() {
      return this.denominationUsuelle3;
   }

   /**
    * Fixer la troisième dénomination de l'entreprise.
    * @param denomination Dénomination de l'entreprise.
    */
   public void setDenominationUsuelle3(String denomination) {
      this.denominationUsuelle3 = denomination;
   }

   /**
    * Renvoyer Année de mise à jour de la catégorie.
    * @return Année.
    */
   public Integer getAnneeCategorieEntreprise() {
      return this.anneeCategorieEntreprise;
   }

   /**
    * Fixer l'année de mise à jour de la catégorie.
    * @param annee Année.
    */
   public void setAnneeCategorieEntreprise(Integer annee) {
      this.anneeCategorieEntreprise = annee;
   }
   
   /**
    * Renvoyer la catégorie juridique de l'entreprise.
    * @return Catégorie juridique de l'entreprise.
    */
   public String getCategorieJuridique() {
      return this.categorieJuridique;
   }

   /**
    * Fixer la catégorie juridique de l'entreprise.
    * @param categorieJuridique Catégorie juridique de l'entreprise.
    */
   public void setCategorieJuridique(String categorieJuridique) {
      this.categorieJuridique = categorieJuridique;
   }
   
   /**
    * Renvoyer la date de création de l'entreprise (DCREN).
    * @return Date de création de l'entreprise.
    */
   public LocalDate asDateCreationEntreprise() {
      return ObjetMetierSpark.fromINSEEtoLocalDate(this.dateCreationEntreprise);
   }
   
   /**
    * Renvoyer la date de création de l'entreprise (DCREN).
    * @return Date de création de l'entreprise.
    */
   public String getDateCreationEntreprise() {
      return this.dateCreationEntreprise;
   }

   /**
    * Fixer la date de création de l'entreprise (DCREN).
    * @param date Date de création de l'entreprise.
    */
   public void setDateCreationEntreprise(String date) {
      this.dateCreationEntreprise = date;
   }

   /**
    * Déterminer si l'entreprise a été purgée.
    * @return true si elle l'a été.
    */
   public boolean isPugee() {
      return this.purgee;
   }

   /**
    * Indiquer si l'entreprise a été purgée.
    * @param purgee true si elle l'a été.
    */
   public void setPugee(boolean purgee) {
      this.purgee = purgee;
   }

   /**
    * @see java.lang.Comparable#compareTo(java.lang.Object)
    */
   @Override
   public int compareTo(Entreprise o) {
      return getSiren().compareTo(o.getSiren());
   }

   /**
    * {@inheritDoc}
    */
   @Override
   public Entreprise clone() {
      return (Entreprise)super.clone();
   }
   
   /**
    * @see fr.fondation.objets.ObjetMetierIdentifiable#toString()
    */
   @Override
   public String toString() {
      return BabelTower.format(Entreprise.class, "toString", super.toString(), this.categorieEntreprise, this.anneeCategorieEntreprise, this.categorieJuridique,
         this.rna, this.economieSocialeEtSolidaire, this.nicsiege, this.sigle, this.denominationUsuelle1,
         this.nomNaissance, this.nomUsage, this.prenomUsuel, this.prenom1, this.pseudonyme,
         this.sexe, this.purgee, this.etablissements.size(), this.dateCreationEntreprise != null ? Date.valueOf(this.dateCreationEntreprise) : null);
   }
}{code}





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org