diff -r a2e91b20198b -r ed2b6ebf138d java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/Model.java --- a/java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/Model.java Wed Dec 15 22:38:03 2010 +0100 +++ b/java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/Model.java Wed Dec 15 23:29:14 2010 +0100 @@ -69,9 +69,13 @@ /** Měníme klíč – název atributu */ String novýKlíč = String.valueOf(value.toString()); if (!novýKlíč.equals(a.getKlic())) { - souborovySystem.delete(a.getKlic()); + if (a.getKlic() != null) { + souborovySystem.delete(a.getKlic()); + } a.setKlic(novýKlíč); - souborovySystem.write(a.getKlic(), a.getHodnotaBajty()); + if (a.getHodnotaBajty() != null) { + souborovySystem.write(a.getKlic(), a.getHodnotaBajty()); + } } } else if (n == 1) { /** Měníme hodnotu atributu */ @@ -91,18 +95,28 @@ posluchače.remove(l); } + /** + * @param m číslo řádku + * @return atribut, který se na něm nachází + */ + public Atribut getAtribut(int m) { + return atributy.get(m); + } + public void přidejAtribut(Atribut a) { atributy.add(a); upozorniPosluchače(); } - public void odeberAtribut(Atribut a) { + public void odeberAtribut(Atribut a) throws IOException { atributy.remove(a); + souborovySystem.delete(a.getKlic()); upozorniPosluchače(); } - private void načtiAtributy() throws IOException { + public final void načtiAtributy() throws IOException { List jménaAtributů = souborovySystem.list(); + atributy.clear(); for (String jménoAtributu : jménaAtributů) { ByteBuffer hodnotaAtributu = ByteBuffer.allocate(souborovySystem.size(jménoAtributu)); souborovySystem.read(jménoAtributu, hodnotaAtributu);