java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/Model.java
changeset 10 ed2b6ebf138d
parent 9 a2e91b20198b
child 11 9b399cde6a3b
     1.1 --- a/java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/Model.java	Wed Dec 15 22:38:03 2010 +0100
     1.2 +++ b/java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/Model.java	Wed Dec 15 23:29:14 2010 +0100
     1.3 @@ -69,9 +69,13 @@
     1.4  				/** Měníme klíč – název atributu */
     1.5  				String novýKlíč = String.valueOf(value.toString());
     1.6  				if (!novýKlíč.equals(a.getKlic())) {
     1.7 -					souborovySystem.delete(a.getKlic());
     1.8 +					if (a.getKlic() != null) {
     1.9 +						souborovySystem.delete(a.getKlic());
    1.10 +					}
    1.11  					a.setKlic(novýKlíč);
    1.12 -					souborovySystem.write(a.getKlic(), a.getHodnotaBajty());
    1.13 +					if (a.getHodnotaBajty() != null) {
    1.14 +						souborovySystem.write(a.getKlic(), a.getHodnotaBajty());
    1.15 +					}
    1.16  				}
    1.17  			} else if (n == 1) {
    1.18  				/** Měníme hodnotu atributu */
    1.19 @@ -91,18 +95,28 @@
    1.20  		posluchače.remove(l);
    1.21  	}
    1.22  
    1.23 +	/**
    1.24 +	 * @param m číslo řádku
    1.25 +	 * @return atribut, který se na něm nachází
    1.26 +	 */
    1.27 +	public Atribut getAtribut(int m) {
    1.28 +		return atributy.get(m);
    1.29 +	}
    1.30 +
    1.31  	public void přidejAtribut(Atribut a) {
    1.32  		atributy.add(a);
    1.33  		upozorniPosluchače();
    1.34  	}
    1.35  
    1.36 -	public void odeberAtribut(Atribut a) {
    1.37 +	public void odeberAtribut(Atribut a) throws IOException {
    1.38  		atributy.remove(a);
    1.39 +		souborovySystem.delete(a.getKlic());
    1.40  		upozorniPosluchače();
    1.41  	}
    1.42  
    1.43 -	private void načtiAtributy() throws IOException {
    1.44 +	public final void načtiAtributy() throws IOException {
    1.45  		List<String> jménaAtributů = souborovySystem.list();
    1.46 +		atributy.clear();
    1.47  		for (String jménoAtributu : jménaAtributů) {
    1.48  			ByteBuffer hodnotaAtributu = ByteBuffer.allocate(souborovySystem.size(jménoAtributu));
    1.49  			souborovySystem.read(jménoAtributu, hodnotaAtributu);