aboutsummaryrefslogtreecommitdiffstats
path: root/libs/minidns/src/main/java/de/measite/minidns/record/TXT.java
diff options
context:
space:
mode:
Diffstat (limited to 'libs/minidns/src/main/java/de/measite/minidns/record/TXT.java')
-rw-r--r--libs/minidns/src/main/java/de/measite/minidns/record/TXT.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/libs/minidns/src/main/java/de/measite/minidns/record/TXT.java b/libs/minidns/src/main/java/de/measite/minidns/record/TXT.java
new file mode 100644
index 00000000..03e73040
--- /dev/null
+++ b/libs/minidns/src/main/java/de/measite/minidns/record/TXT.java
@@ -0,0 +1,65 @@
+package de.measite.minidns.record;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+import de.measite.minidns.Record.TYPE;
+import de.measite.minidns.util.NameUtil;
+
+/**
+ * TXT record (actually a binary blob with wrappers for text content).
+ */
+public class TXT implements Data {
+
+ protected byte[] blob;
+
+ public byte[] getBlob() {
+ return blob;
+ }
+
+ public void setBlob(byte[] blob) {
+ this.blob = blob;
+ }
+
+ public String getText() {
+ try {
+ return (new String(blob, "UTF-8")).intern();
+ } catch (Exception e) {
+ /* Can't happen for UTF-8 unless it's really a blob */
+ return null;
+ }
+ }
+
+ public void setText(String text) {
+ try {
+ this.blob = text.getBytes("UTF-8");
+ } catch (Exception e) {
+ /* Can't happen, UTF-8 IS supported */
+ throw new RuntimeException("UTF-8 not supported", e);
+ }
+ }
+
+ @Override
+ public byte[] toByteArray() {
+ throw new UnsupportedOperationException("Not implemented yet");
+ }
+
+ @Override
+ public void parse(DataInputStream dis, byte[] data, int length)
+ throws IOException
+ {
+ blob = new byte[length];
+ dis.readFully(blob);
+ }
+
+ @Override
+ public TYPE getType() {
+ return TYPE.TXT;
+ }
+
+ @Override
+ public String toString() {
+ return "\"" + getText() + "\"";
+ }
+
+}