author | František Kučera <franta-hg@frantovo.cz> |
Tue Dec 28 17:02:08 2010 +0100 (2010-12-28) | |
changeset 15 | 8854e172a18f |
parent 10 | ed2b6ebf138d |
child 19 | c20edbed09c3 |
permissions | -rw-r--r-- |
franta-hg@6 | 1 |
package cz.frantovo.rozsireneAtributy; |
franta-hg@6 | 2 |
|
franta-hg@9 | 3 |
import java.nio.ByteBuffer; |
franta-hg@9 | 4 |
import java.nio.charset.Charset; |
franta-hg@9 | 5 |
|
franta-hg@6 | 6 |
public class Atribut { |
franta-hg@6 | 7 |
|
franta-hg@11 | 8 |
private String klíč; |
franta-hg@6 | 9 |
private String hodnota; |
franta-hg@6 | 10 |
|
franta-hg@11 | 11 |
public Atribut(String klíč, String hodnota) { |
franta-hg@11 | 12 |
this.klíč = klíč; |
franta-hg@6 | 13 |
this.hodnota = hodnota; |
franta-hg@6 | 14 |
} |
franta-hg@6 | 15 |
|
franta-hg@11 | 16 |
public Atribut(String klíč, ByteBuffer hodnota) { |
franta-hg@11 | 17 |
this.klíč = klíč; |
franta-hg@9 | 18 |
setHodnota(hodnota); |
franta-hg@9 | 19 |
} |
franta-hg@9 | 20 |
|
franta-hg@10 | 21 |
public Atribut() { |
franta-hg@10 | 22 |
} |
franta-hg@10 | 23 |
|
franta-hg@11 | 24 |
public String getKlíč() { |
franta-hg@11 | 25 |
return klíč; |
franta-hg@6 | 26 |
} |
franta-hg@6 | 27 |
|
franta-hg@11 | 28 |
public void setKlíč(String klíč) { |
franta-hg@11 | 29 |
this.klíč = klíč; |
franta-hg@11 | 30 |
} |
franta-hg@11 | 31 |
|
franta-hg@11 | 32 |
/** |
franta-hg@11 | 33 |
* Název atributu musí být nenulový a mít nějakou délku, aby šel uložit |
franta-hg@11 | 34 |
* TODO: další kontroly? |
franta-hg@11 | 35 |
* @return jestli je platný |
franta-hg@11 | 36 |
*/ |
franta-hg@11 | 37 |
public boolean isPlatnýKlíč() { |
franta-hg@11 | 38 |
return klíč != null && klíč.length() > 0; |
franta-hg@11 | 39 |
} |
franta-hg@11 | 40 |
|
franta-hg@11 | 41 |
/** |
franta-hg@11 | 42 |
* nulová hodnota → smazání atributu |
franta-hg@11 | 43 |
* (ale může být prázdný řetězec) |
franta-hg@11 | 44 |
* @return jestli je platná |
franta-hg@11 | 45 |
*/ |
franta-hg@11 | 46 |
public boolean isPlatnáHodnota() { |
franta-hg@11 | 47 |
return hodnota != null; |
franta-hg@6 | 48 |
} |
franta-hg@6 | 49 |
|
franta-hg@6 | 50 |
public String getHodnota() { |
franta-hg@6 | 51 |
return hodnota; |
franta-hg@6 | 52 |
} |
franta-hg@6 | 53 |
|
franta-hg@9 | 54 |
public final ByteBuffer getHodnotaBajty() { |
franta-hg@9 | 55 |
return zakóduj(getHodnota()); |
franta-hg@9 | 56 |
} |
franta-hg@9 | 57 |
|
franta-hg@6 | 58 |
public void setHodnota(String hodnota) { |
franta-hg@6 | 59 |
this.hodnota = hodnota; |
franta-hg@6 | 60 |
} |
franta-hg@9 | 61 |
|
franta-hg@9 | 62 |
public final void setHodnota(ByteBuffer hodnota) { |
franta-hg@9 | 63 |
setHodnota(dekóduj(hodnota)); |
franta-hg@9 | 64 |
} |
franta-hg@9 | 65 |
|
franta-hg@9 | 66 |
private static String dekóduj(ByteBuffer bajty) { |
franta-hg@9 | 67 |
bajty.flip(); |
franta-hg@9 | 68 |
return Charset.defaultCharset().decode(bajty).toString(); |
franta-hg@9 | 69 |
} |
franta-hg@9 | 70 |
|
franta-hg@9 | 71 |
private static ByteBuffer zakóduj(String text) { |
franta-hg@10 | 72 |
if (text == null) { |
franta-hg@10 | 73 |
return null; |
franta-hg@10 | 74 |
} else { |
franta-hg@10 | 75 |
return Charset.defaultCharset().encode(text); |
franta-hg@10 | 76 |
} |
franta-hg@9 | 77 |
} |
franta-hg@6 | 78 |
} |