Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.73 KB | None | 0 0
  1. import java.io.*;
  2. import java.nio.file.Files;
  3. import java.util.LinkedList;
  4. import java.util.List;
  5. import java.util.Queue;
  6.  
  7. public final class SystemObslugiPlikow {
  8.  
  9.     private final String pathStanDrukarni = "C:/Temp/stan_drukarni.txt";
  10.     private final String pathUmowy = "C:/Temp/umowy.txt";
  11.     private final String pathPublikacje = "C:/Temp/publikacje.txt";
  12.     private final String pathAutorzy = "C:/Temp/autorzy.txt";
  13.     private File autorzy;
  14.     private File publikacje;
  15.     private File umowy;
  16.     private File stanDrukarni;
  17.     private int i = 0;
  18.  
  19.     //metody
  20.     public SystemObslugiPlikow() {
  21.         autorzy = new File(pathAutorzy);
  22.         publikacje = new File(pathPublikacje);
  23.         umowy = new File(pathUmowy);
  24.         stanDrukarni = new File(pathStanDrukarni);
  25.     }
  26.  
  27.     public void zapiszWszystko(DzialHandlowy dzialHandlowy, DzialProgramowy dzialProgramowy, DzialDruku dzialDruku) {
  28.         PrintWriter printWriter = null;
  29.         try {
  30.             printWriter = new PrintWriter(pathPublikacje, "UTF-8");
  31.         } catch (FileNotFoundException e) {
  32.             e.printStackTrace();
  33.         } catch (UnsupportedEncodingException e) {
  34.             e.printStackTrace();
  35.         }
  36.         List<Publikacja> publikacjeList = dzialHandlowy.getPublikacje();
  37.         if(publikacjeList == null) return;
  38.         for (Publikacja p : publikacjeList) {
  39.             if (p instanceof Album) {
  40.                 printWriter.print("0" + ";" + p.getIdentyfikatorPublikacji() + ";");
  41.                 for (i = 0; i < p.getIdAutora().size() - 1; i++) {
  42.                     printWriter.print(p.getIdAutora().get(i) + ",");
  43.                 }
  44.                 printWriter.print(p.getIdAutora().get(i) + ";");
  45.                 printWriter.print(p.getTytul() + ";" + p.getCena() + ";" + ((Album) p).getLiczbaStron() + ";"
  46.                         + p.getZarobiono() + ";" + p.getStanMagazynowy() + "\n");
  47.             } else if (p instanceof Sensacja) {
  48.                 printWriter.print("1" + ";" + p.getIdentyfikatorPublikacji() + ";");
  49.                 for (i = 0; i < p.getIdAutora().size() - 1; i++) {
  50.                     printWriter.print(p.getIdAutora().get(i) + ",");
  51.                 }
  52.                 printWriter.print(p.getIdAutora().get(i) + ";");
  53.                 printWriter.print(p.getTytul() + ";" + p.getCena() + ";" + ((Sensacja) p).getLiczbaStron() + ";"
  54.                         + p.getZarobiono() + ";" + p.getStanMagazynowy() + "\n");
  55.             } else if (p instanceof Fantastyka) {
  56.                 printWriter.print("2" + ";" + p.getIdentyfikatorPublikacji() + ";");
  57.                 for (i = 0; i < p.getIdAutora().size() - 1; i++) {
  58.                     printWriter.print(p.getIdAutora().get(i) + ",");
  59.                 }
  60.                 printWriter.print(p.getIdAutora().get(i) + ";");
  61.                 printWriter.print(p.getTytul() + ";" + p.getCena() + ";" + ((Fantastyka) p).getLiczbaStron() + ";"
  62.                         + p.getZarobiono() + ";" + p.getStanMagazynowy() + "\n");
  63.             } else if (p instanceof Tygodnik) {
  64.                 printWriter.print("3" + ";" + p.getTytul() + ";" + p.getIdAutora().get(0) + ";" +
  65.                         ((Tygodnik) p).getDataWydania() + ";" + p.getCena() + ";" + p.getStanMagazynowy() + ";" +
  66.                         p.getZarobiono() + "\n");
  67.             } else if (p instanceof Miesiecznik) {
  68.                 printWriter.print("4" + ";" + p.getTytul() + ";" + p.getIdAutora().get(0) + ";" +
  69.                         ((Miesiecznik) p).getDataWydania() + ";" + p.getCena() + ";" + p.getStanMagazynowy() + ";" +
  70.                         p.getZarobiono() + "\n");
  71.             }
  72.         }
  73.         try {
  74.             printWriter = new PrintWriter(pathAutorzy, "UTH-8");
  75.         } catch (FileNotFoundException e) {
  76.             e.printStackTrace();
  77.         } catch (UnsupportedEncodingException e) {
  78.             e.printStackTrace();
  79.         }
  80.         List<Autor> autors = Main.wydawnictwo.autorzy;
  81.         for (Autor autor : autors) {
  82.             printWriter.print(autor.getImie() + ";" + autor.getNazwisko() + ";");
  83.             for (i = 0; i < autor.getID_Publikacji().size() - 1; i++) {
  84.                 printWriter.print(autor.getID_Publikacji().get(i) + ",");
  85.             }
  86.             printWriter.print(autor.getID_Publikacji().get(i) + ";" + autor.getZarobionaSuma() + ";");
  87.             for (i = 0; i < autor.getID_umow().size() - 1; i++) {
  88.                 printWriter.print(autor.getID_umow().get(i) + ",");
  89.             }
  90.             printWriter.print(autor.getID_umow().get(i) + "\n");
  91.         }
  92.         try {
  93.             printWriter = new PrintWriter(pathStanDrukarni, "UTH-8");
  94.         } catch (FileNotFoundException e) { //todo dodać tworzenie pliku
  95.             e.printStackTrace();
  96.         } catch (UnsupportedEncodingException e) {
  97.             e.printStackTrace();
  98.         }
  99.         Queue<Publikacja> publikacje = Main.wydawnictwo.dzialDruku.getDrukarnia_1().getKolejkaPublikacji();
  100.         Queue<Integer> czasy = Main.wydawnictwo.dzialDruku.getDrukarnia_1().getCzasyKolejce();
  101.  
  102.         for (Publikacja p : publikacje) {
  103.             printWriter.print(p.getIdentyfikatorPublikacji() + ";" + czasy.peek() + ";");
  104.         }
  105.         publikacje = Main.wydawnictwo.dzialDruku.getDrukarnia_2().getKolejkaPublikacji();
  106.         czasy = Main.wydawnictwo.dzialDruku.getDrukarnia_2().getCzasyKolejce();
  107.  
  108.         for (Publikacja p : publikacje) {
  109.             printWriter.print(p.getIdentyfikatorPublikacji() + ";" + czasy.peek() + ";");
  110.         }
  111.         publikacje = Main.wydawnictwo.dzialDruku.getDrukarniaAlbumow().getKolejkaPublikacji();
  112.         czasy = Main.wydawnictwo.dzialDruku.getDrukarniaAlbumow().getCzasyKolejce();
  113.  
  114.         for (Publikacja p : publikacje) {
  115.             printWriter.print(p.getIdentyfikatorPublikacji() + ";" + czasy.peek() + ";");
  116.         }
  117.  
  118.         try {
  119.             printWriter = new PrintWriter(pathUmowy, "UTH-8");
  120.         } catch (FileNotFoundException e) {
  121.             e.printStackTrace();
  122.         } catch (UnsupportedEncodingException e) {
  123.             e.printStackTrace();
  124.         }
  125.  
  126.         List<Umowa> umowy = Main.wydawnictwo.dzialProgramowy.getUmowyLista();
  127.         for (Umowa umowa : umowy) {
  128.             if (umowa instanceof UmowaDzielo) {
  129.                 printWriter.print("0;" + umowa.getIdAutora() + ";");
  130.                 if (umowa.iswTrakcie()) printWriter.print("1;");
  131.                 else printWriter.print("0;");
  132.                 printWriter.print(umowa.getWynagrodzenie() + ";" + ((UmowaDzielo) umowa).getIloscPublikacji());
  133.             }
  134.             if (umowa instanceof UmowaPrace) {
  135.                 printWriter.print("1;" + umowa.getIdAutora() + ";");
  136.                 if (umowa.iswTrakcie()) printWriter.print("1;");
  137.                 else printWriter.print("0;");
  138.                 printWriter.print(umowa.getWynagrodzenie() + ";" + ((UmowaPrace) umowa).getOkresUmowy());
  139.             }
  140.         }
  141.     }
  142.     public List wczytajPlik(Autor o){
  143.         String line;
  144.         List<Autor> autors = new LinkedList<>();
  145.         List<String> strings = null;
  146.         try {
  147.             FileReader fileReader = new FileReader(pathAutorzy);
  148.             BufferedReader bufferedReader = new BufferedReader(fileReader);
  149.             strings = new LinkedList<>();
  150.             while ((line = bufferedReader.readLine()) != null){
  151.                 strings.add(line);
  152.                 System.out.println(line);
  153.             }
  154.             if(strings == null) return null;
  155.             bufferedReader.close();
  156.         } catch (IOException e) {
  157.             e.printStackTrace();
  158.             return null;
  159.         }
  160.         for (int i = 0; i < strings.size(); i++) {
  161.             autors.add(wczytajAutora(strings.get(i)));
  162.         }
  163.         return autors;
  164.     }
  165.  
  166.     public List wczytajPlik(File f, Object o) {
  167.         String string, line;
  168.         if (o instanceof Autor) {
  169.  
  170.         } else if (o instanceof Publikacja) {
  171.             List<Publikacja> publikacjaList = new LinkedList<>();
  172.             List<String> strings = null;
  173.             try {
  174.                 strings = new LinkedList<>(Files.readAllLines(publikacje.toPath()));
  175.                 if(strings == null) return null;
  176.             } catch (IOException e) {
  177.                 e.printStackTrace();
  178.                 return null;
  179.             }
  180.             for (int i = 0; i < strings.size(); i++)
  181.                 switch (strings.get(i).charAt(0)) {
  182.                     case '0': //Album
  183.                         publikacjaList.add(wczytajAlbum(strings.get(i)));
  184.                         break;
  185.                     case '1':
  186.                         publikacjaList.add(wczytajSensacje(strings.get(i)));
  187.                         break;
  188.                     case '2':
  189.                         publikacjaList.add(wczytajFantastyke(strings.get(i)));
  190.                         break;
  191.                     case '3':
  192.                         publikacjaList.add(wczytajTygodnik(strings.get(i)));
  193.                         break;
  194.                     case '4':
  195.                         publikacjaList.add(wczytajMiesiecznik(strings.get(i)));
  196.                         break;
  197.                     default:
  198.                         // todo wyjatek
  199.                         break;
  200.                 }
  201.             return publikacjaList;
  202.         } else if (o instanceof Umowa) {
  203.             List<Umowa> listaUmow = new LinkedList<>();
  204.             List<String> strings = null;
  205.             try {
  206.                 strings = new LinkedList<>(Files.readAllLines(umowy.toPath()));
  207.                 if(strings == null) return null;
  208.             } catch (IOException e) {
  209.                 e.printStackTrace();
  210.                 return null;
  211.             }
  212.             for (int i = 0; i < strings.size(); i++) {
  213.                 switch (strings.get(i).charAt(0)) {
  214.                     case '1':
  215.                         listaUmow.add(wczytajUmowyPrace(strings.get(i)));
  216.                         break;
  217.                     case '2':
  218.                         listaUmow.add(wczytajUmowyDzielo(strings.get(i)));
  219.                         break;
  220.                     default:
  221.                         //TODO
  222.                         break;
  223.                 }
  224.                 return listaUmow;
  225.             }
  226.         } else if (o instanceof Drukarnia) {
  227.             string = null;
  228.             try {
  229.                 string = Files.readAllBytes(f.toPath()).toString();
  230.                 if(string == null) return null;
  231.             } catch (IOException e) {
  232.                 e.printStackTrace();
  233.             }
  234.             String[] strings = string.split(";");
  235.             for (String s : strings) {
  236.                 ((Drukarnia) o).dodajDoKolejki(s, 1);
  237.             }
  238.  
  239.         } else if (o instanceof DrukarniaAlbumow) {
  240.             string = null;
  241.             try {
  242.                 string = Files.readAllBytes(f.toPath()).toString();
  243.                 if(string == null) return null;
  244.             } catch (IOException e) {
  245.                 e.printStackTrace();
  246.                 return null;
  247.             }
  248.             String[] strings = string.split(";");
  249.             for (String s : strings) {
  250.                 ((DrukarniaAlbumow) o).dodajDoKolejki(s, 1);
  251.             }
  252.         }
  253.         return null;
  254.     }
  255.  
  256.     public Umowa wczytajUmowyPrace(String string) {
  257.         //0 - rodzaj, 1 - ID Autora, 2 - wtrakcie, 3 - wynagorodzenie, 4 - okresUmowy,
  258.         String[] lista = string.split(";");
  259.         return new UmowaPrace(lista[1], (lista[2].equals('1') ? true : false),
  260.                 Double.parseDouble(lista[3]), Integer.parseInt(lista[4]));
  261.     }
  262.  
  263.     public Umowa wczytajUmowyDzielo(String string) {
  264.         //0 - rodzaj, 1 - ID Autora, 2 - wtrakcie, 3 - wynagorodzenie, 4 - iloscPublikacji
  265.         String[] lista = string.split(";");
  266.         return new UmowaDzielo(lista[1], (lista[2].equals('1') ? true : false),
  267.                 Double.parseDouble(lista[3]), Integer.parseInt(lista[4]));
  268.     }
  269.  
  270.     public Album wczytajAlbum(String string) {
  271.         //list[0] - gatunek 1. ID Autorow 2. Tytuł 3. cena 4. liczba stron 5. zarobiono 6. stan magazynowy
  272.         String[] lista = string.split(";");
  273.         return new Album(lista[2], lista[1], Integer.parseInt(lista[4]), Double.parseDouble(lista[3]),
  274.                 Integer.parseInt(lista[6]), Double.parseDouble(lista[5]));
  275.     }
  276.  
  277.     public Sensacja wczytajSensacje(String string) {
  278.         //list[0] - gatunek 1. ID Autorow 2. Tytuł 3. cena 4. liczba stron 5. zarobiono 6. stan magazynowy
  279.         String[] lista = string.split(";");
  280.         return new Sensacja(lista[2], lista[1], Integer.parseInt(lista[4]), Double.parseDouble(lista[3]),
  281.                 Integer.parseInt(lista[6]), Double.parseDouble(lista[5]));
  282.     }
  283.  
  284.     public Fantastyka wczytajFantastyke(String string) {
  285.         //list[0] - gatunek 1. ID Autorow 2. Tytuł 3. cena 4. liczba stron 5. zarobiono 6. stan magazynowy
  286.         String[] lista = string.split(";");
  287.         return new Fantastyka(lista[2], lista[1], Integer.parseInt(lista[4]), Double.parseDouble(lista[3]),
  288.                 Integer.parseInt(lista[6]), Double.parseDouble(lista[5]));
  289.     }
  290.  
  291.     public Tygodnik wczytajTygodnik(String string) {
  292.         //list[0] - gatunek 1. Tytuł 2. Autor 3. Wydano 4. Cena 5. stan magazynowy 6. Zarobiono
  293.         String[] lista = string.split(";");
  294.         return new Tygodnik(lista[1], lista[2], Integer.parseInt(lista[3]), Double.parseDouble(lista[4]),
  295.                 Integer.parseInt(lista[5]), Double.parseDouble(lista[6]));
  296.     }
  297.  
  298.     public Miesiecznik wczytajMiesiecznik(String string) {
  299.         //list[0] - gatunek 1. Tytuł 2. Autor 3. Wydano 4. Cena 5. stan magazynowy 6. Zarobiono
  300.         String[] lista = string.split(";");
  301.         return new Miesiecznik(lista[1], lista[2], Integer.parseInt(lista[3]), Double.parseDouble(lista[4]),
  302.                 Integer.parseInt(lista[5]), Double.parseDouble(lista[6]));
  303.     }
  304.  
  305.     public Autor wczytajAutora(String string) {
  306.         // 0 - imie, 1 - nazwisko, 2- lista publikacji, 3- zarobiona suma, 4 - lista umow
  307.         String[] lista = string.split(";");
  308.         for(String s : lista) System.out.println(s);
  309.         return new Autor(lista[0], lista[1], lista[2], Double.parseDouble(lista[3]), lista[4]);
  310.     }
  311.  
  312.  
  313.     public File getAutorzy() {
  314.         return autorzy;
  315.     }
  316.  
  317.     public void setAutorzy(File autorzy) {
  318.         this.autorzy = autorzy;
  319.     }
  320.  
  321.     public File getPublikacje() {
  322.         return publikacje;
  323.     }
  324.  
  325.     public void setPublikacje(File publikacje) {
  326.         this.publikacje = publikacje;
  327.     }
  328.  
  329.     public File getUmowy() {
  330.         return umowy;
  331.     }
  332.  
  333.     public void setUmowy(File umowy) {
  334.         this.umowy = umowy;
  335.     }
  336.  
  337.     public File getStanDrukarni() {
  338.         return stanDrukarni;
  339.     }
  340.  
  341.     public void setStanDrukarni(File stanDrukarni) {
  342.         this.stanDrukarni = stanDrukarni;
  343.     }
  344. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement