home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / GuerriniG / dispense / corso-oodb / progetti-01 / progetto2 / candidato.java < prev    next >
Text File  |  2001-03-01  |  4KB  |  137 lines

  1. package progetto2;import com.odi.*;
  2. import com.odi.util.*;
  3. import java.util.*;
  4.  
  5. public class Candidato{
  6. //Extents    
  7. public static Ext_OSTreeSet 
  8. Ext = new Ext_OSTreeSet("Candidati");    
  9. public boolean showSlotName=false; 
  10. // look at toString method ...    
  11. // Attributes    
  12.         public String codFiscale;
  13.     public String nome;
  14.     public String cognome;
  15.     public int annoNascita;
  16.     public String indirizzo;
  17.     public String email;
  18.     public Ente ente;
  19.     public OSTreeSet pubblicazioni;
  20.     public Telefono[ ] telefoni;
  21.     public OSTreeSet titoli;
  22.     ////////////////////////////////////////////////////////    
  23.         // Constructor    
  24.         public Candidato()    {    }    
  25.  
  26.         public Candidato(String _codFiscale, String _nome, String _cognome, int _annoNascita, String _indirizzo, String _email, Ente _ente, OSTreeSet _pubblicazioni, Telefono[] _telefoni, OSTreeSet _titoli)    {        codFiscale=_codFiscale;
  27.         nome=_nome;
  28.         cognome=_cognome;
  29.         annoNascita=_annoNascita;
  30.         indirizzo=_indirizzo;
  31.         email=_email;
  32.         ente=_ente;
  33.         pubblicazioni=_pubblicazioni;
  34.         telefoni=_telefoni;
  35.         titoli=_titoli;
  36.     }    ////////////////////////////////////////////////////////    
  37.        // The Extents    
  38.                    void updateExtents(Database db, boolean add)    {        
  39.                    Ext.update(this, db, add);    }    
  40. ////////////////////////////////////////////////////////    
  41. // Hook the IPersistent method    
  42. public void preFlushContents()    {        
  43. Segment theSegment= Session.getCurrent().segmentOfpreFlushContentsObject();        
  44. Database db = theSegment.getDatabase();        
  45. Collection theExtent = (Collection) Ext.getExtents(db);        
  46. if (!theExtent.contains(this))            
  47. updateExtents(db, true);    }    
  48. ////////////////////////////////////////////////////////    
  49. // Override toString method    
  50. public String toString()    {        String ret;        ret = super.toString();
  51.         if (showSlotName)
  52.             ret = ret + " codFiscale";
  53.         ret = ret + " " + codFiscale;
  54.         if (showSlotName)
  55.             ret = ret + " nome";
  56.         ret = ret + " " + nome;
  57.         if (showSlotName)
  58.             ret = ret + " cognome";
  59.         ret = ret + " " + cognome;
  60.         if (showSlotName)
  61.             ret = ret + " annoNascita";
  62.         ret = ret + " " + annoNascita;
  63.         if (showSlotName)
  64.             ret = ret + " indirizzo";
  65.         ret = ret + " " + indirizzo;
  66.         if (showSlotName)
  67.             ret = ret + " email";
  68.         ret = ret + " " + email;
  69.         if (showSlotName)
  70.             ret = ret + " ente";
  71.         ret = ret + " " + ente;
  72.         if (showSlotName)
  73.             ret = ret + " pubblicazioni";
  74.         ret = ret + " " + pubblicazioni;
  75.         if (showSlotName)
  76.             ret = ret + " telefoni";
  77.         ret = ret + " " + telefoni;
  78.         if (showSlotName)
  79.             ret = ret + " titoli";
  80.         ret = ret + " " + titoli;        return ret;    }
  81.  
  82. // Operations
  83.  
  84.     public  long punteggioPubbli(int annoI,int annoF)
  85.     {
  86.         long ret=0;
  87.                 Iterator iter = pubblicazioni.iterator();
  88.    
  89.                 if (!iter.hasNext())
  90.               ret=0;
  91.             while (iter.hasNext()) {
  92.                 Pubblicazione p = (Pubblicazione)iter.next();
  93.                 if (p.anno >= annoI && p.anno <= annoF)
  94.             ret = ret + p.punteggio();
  95.         }
  96.         return ret;
  97.     }
  98.  
  99.     public  int punteggioTitoli()
  100.     {
  101.         int ret=0;
  102.                 Iterator iter = titoli.iterator();
  103.    
  104.                 if (!iter.hasNext())
  105.               ret=0;
  106.             while (iter.hasNext()) {
  107.                 TitoloStudio t = (TitoloStudio)iter.next();
  108.             if (t.laurea) {ret = ret + 10;}
  109.             else {ret = ret + 20;};
  110.         }
  111.         return ret;
  112.     }
  113.  
  114.     public  int numPubbliSingole()
  115.     {
  116.         int ret=0;
  117.         Iterator iter = pubblicazioni.iterator();
  118.    
  119.                 if (!iter.hasNext())
  120.               ret=0;
  121.             while (iter.hasNext()) {
  122.                 Pubblicazione p = (Pubblicazione)iter.next();
  123.             if (p.numCoautori==0) {ret = ret + 1;};
  124.         }
  125.         return ret;
  126.     }
  127.  
  128.     public  void modificaEnte(Ente ente)
  129.     {
  130.         this.ente = ente;
  131.     }
  132.  
  133.     public  void inserisciTitolo(boolean laurea,String in,int anno,Universita univers,int voto)
  134.     {
  135.         TitoloStudio nTitolo = new TitoloStudio (in,anno,voto,univers,laurea);
  136.         titoli.add(nTitolo);
  137.     }}