Advertisement
Guest User

Untitled

a guest
May 24th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.85 KB | None | 0 0
  1.  
  2. package es4p302;
  3.  
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.ObjectInputStream;
  9. import java.io.ObjectOutputStream;
  10. import java.util.HashMap;
  11. import java.util.ArrayList;
  12. import java.util.Map;
  13. import java.util.TreeMap;
  14.  
  15.  
  16. /**
  17. *
  18. * @author SCRIVERE
  19. */
  20.  
  21.  
  22. //calsse database con dentro databese libri, database soci e database presitit, tutti quanti privati
  23.  
  24. /// Key rappresenta il primo elemento di una riga
  25. public class Database {
  26. private HashMap<Libro, String/* questi sono i due tipi che mettiamo dentro l hashmap*/> databaseLibri;
  27. private TreeMap<Socio, String > databaseSoci;
  28. private ArrayList<Prestito> databasePrestiti;
  29.  
  30. public Database() {
  31. //non reinseriamo dentro le paraentesi angoli i tipi perche gli prende gli la dichiarazione :)
  32. databaseLibri = new HashMap<>();
  33. databaseSoci = new TreeMap<>();
  34. databasePrestiti = new ArrayList<>();
  35.  
  36. }
  37.  
  38. public void putLibro (Libro libro){
  39. databaseLibri.put(libro , libro.getIsbn()); /// put serve per "AGGIUNGERE una riga all' has map
  40. }
  41.  
  42. //per
  43. public Libro getLibro(String isbn){
  44. for (HashMap.Entry<Libro, String> entry :databaseLibri.entrySet()){
  45. if (entry.getKey().getIsbn().equals(isbn)){
  46. return entry.getKey();
  47. } ///in libro e socio usiamo key per prendere solo il primo elemento
  48. //pechè una persona non puo avete piu isbn o piu codici fiscali ?;
  49.  
  50. }
  51. return null;
  52. }
  53.  
  54. public void putSocio (Socio socio){
  55. databaseSoci.put(socio , socio.getCodiceFiscale()); /// put serve per "AGGIUNGERE una riga all' TreeMap
  56. } //per le mappe è put per array è add
  57.  
  58.  
  59. public Socio getSocio(String codiceFiscale){
  60. for (Map.Entry<Socio, String> entry :databaseSoci.entrySet()){
  61. if (entry.getKey().getCodiceFiscale().equals(codiceFiscale)){
  62. return entry.getKey();
  63. } ///DOMANDE ?;
  64. }
  65. return null;
  66. }
  67.  
  68.  
  69.  
  70. public boolean putPrestito (Prestito prestito){
  71. for(Prestito entry : databasePrestiti) {
  72. if (entry.getLibro().equals(prestito.getLibro())){//equals lo utilizziamo da quella roba fatta con l insert code nelle classi
  73. return false; //controllo per se il libro è gia prestato non lo puoi riprestare
  74. }
  75. }
  76. return databasePrestiti.add(prestito);
  77.  
  78. }
  79.  
  80. public Prestito getPrestito(Socio socio){
  81. for(Prestito entry : databasePrestiti){ ///per ogni elemento di databasePrestiti
  82. if (entry.getSocio().equals(socio)){ /// per trovare il socio cercato
  83. return entry;
  84. }
  85. }
  86. return null; //se non trova nulla
  87. }
  88.  
  89.  
  90.  
  91. public Prestito getPrestito(Libro libro){
  92. //metto tutti i prestiti trovati dentro l array per poi ritornae tutti i valori se è pieno
  93. for(Prestito entry : databasePrestiti){ ///per ogni elemento che ENTRA in databasePrestiti
  94. if (entry.getLibro().equals(libro)){ /// per trovare il libro cercato
  95. return entry;
  96. }
  97. }
  98.  
  99. //? è un if ternario , condizioni, se la condizioni è vera fai una cosa se no un altra, e si utilizza solo per assegniare valore
  100. // : è la condizione da rispettare se non è vera
  101. return null; //se la dimensione dell array è piu grande di 0 ritorna quei valore , se no ritorna null
  102. }
  103.  
  104. public boolean delPrestito(Prestito prestito){
  105. for (Prestito entry : databasePrestiti){
  106. if (entry.getLibro().equals(prestito.getLibro()) && entry.getSocio().equals(prestito.getSocio()) ){
  107.  
  108. return databasePrestiti.remove(entry); // mi ritorna direttamente true se lo riesco a riumuovere e quindi se l elemento ce
  109. //altrimenti false
  110. }
  111. }
  112. return false;
  113.  
  114.  
  115.  
  116. }
  117. public void saveToFile(File file) throws IOException{//serve per dire per gestire le eccezioni
  118. file=file !=null ? file :new File(System.getProperty("java.io.tmpdir").concat(File.separator).concat("Biblioteca.ser"));// prende la cartella temporane del sistema, ci aggiunge (concatena concat) il divisore (separator), e poi ci aggiunge il nome del file,
  119. FileOutputStream foutput = new FileOutputStream(file);//crea qualcosa per scrivere sul file
  120. ObjectOutputStream oos = new ObjectOutputStream(foutput);//crea qualcosa per convertire da oggetti a file
  121. Object[] dump = {databaseLibri,databaseSoci,databasePrestiti}; //cre l array dump e stampo dump
  122. oos.writeObject(dump); /// per scrivere
  123.  
  124. // Object[] dump = (Object[]) objectinputstream.readObject();
  125. }
  126.  
  127.  
  128. public void readFromFile( File file) throws IOException, ClassNotFoundException {
  129. file = file != null ? file : new File(System.getProperty("java.io.tmpdir").concat(File.separator).concat("Biblioteca.ser"));
  130.  
  131. FileInputStream fin = new FileInputStream(file);
  132. ObjectInputStream objectinputstream = new ObjectInputStream(fin);
  133. Object[] dump = (Object[]) objectinputstream.readObject();
  134. databaseLibri = (HashMap<Libro, String>) dump[0];// leggo l oggetto dico il tipo, devo sapere come ho salvato il file , e il tipo
  135. databaseSoci = (TreeMap<Socio, String>) dump[1];
  136. databasePrestiti = (ArrayList<Prestito>) dump[2];
  137.  
  138. }
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement