From 76e6b7cfa9054b56205ef7c1c97447b0d5b80bd5 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Fri, 26 Feb 2016 10:28:40 +0000 Subject: [PATCH] Convert BDF types in lists and dictionaries. --- .../src/org/briarproject/api/data/BdfDictionary.java | 11 +++++++++++ briar-api/src/org/briarproject/api/data/BdfList.java | 11 +++++++++++ .../org/briarproject/data/MetadataEncoderImpl.java | 2 ++ 3 files changed, 24 insertions(+) diff --git a/briar-api/src/org/briarproject/api/data/BdfDictionary.java b/briar-api/src/org/briarproject/api/data/BdfDictionary.java index 54a20f6f51..113d0334c2 100644 --- a/briar-api/src/org/briarproject/api/data/BdfDictionary.java +++ b/briar-api/src/org/briarproject/api/data/BdfDictionary.java @@ -1,5 +1,6 @@ package org.briarproject.api.data; +import org.briarproject.api.Bytes; import org.briarproject.api.FormatException; import java.util.Hashtable; @@ -23,24 +24,32 @@ public class BdfDictionary extends Hashtable<String, Object> { public Long getInteger(String key) throws FormatException { Object o = get(key); if (o instanceof Long) return (Long) o; + if (o instanceof Integer) return ((Integer) o).longValue(); + if (o instanceof Short) return ((Short) o).longValue(); + if (o instanceof Byte) return ((Byte) o).longValue(); throw new FormatException(); } public Long getInteger(String key, Long defaultValue) { Object o = get(key); if (o instanceof Long) return (Long) o; + if (o instanceof Integer) return ((Integer) o).longValue(); + if (o instanceof Short) return ((Short) o).longValue(); + if (o instanceof Byte) return ((Byte) o).longValue(); return defaultValue; } public Double getFloat(String key) throws FormatException { Object o = get(key); if (o instanceof Double) return (Double) o; + if (o instanceof Float) return ((Float) o).doubleValue(); throw new FormatException(); } public Double getFloat(String key, Double defaultValue) { Object o = get(key); if (o instanceof Double) return (Double) o; + if (o instanceof Float) return ((Float) o).doubleValue(); return defaultValue; } @@ -59,12 +68,14 @@ public class BdfDictionary extends Hashtable<String, Object> { public byte[] getRaw(String key) throws FormatException { Object o = get(key); if (o instanceof byte[]) return (byte[]) o; + if (o instanceof Bytes) return ((Bytes) o).getBytes(); throw new FormatException(); } public byte[] getRaw(String key, byte[] defaultValue) { Object o = get(key); if (o instanceof byte[]) return (byte[]) o; + if (o instanceof Bytes) return ((Bytes) o).getBytes(); return defaultValue; } diff --git a/briar-api/src/org/briarproject/api/data/BdfList.java b/briar-api/src/org/briarproject/api/data/BdfList.java index 2caa597ec6..a9c7a43441 100644 --- a/briar-api/src/org/briarproject/api/data/BdfList.java +++ b/briar-api/src/org/briarproject/api/data/BdfList.java @@ -1,5 +1,6 @@ package org.briarproject.api.data; +import org.briarproject.api.Bytes; import org.briarproject.api.FormatException; import java.util.Vector; @@ -21,24 +22,32 @@ public class BdfList extends Vector<Object> { public Long getInteger(int index) throws FormatException { Object o = get(index); if (o instanceof Long) return (Long) o; + if (o instanceof Integer) return ((Integer) o).longValue(); + if (o instanceof Short) return ((Short) o).longValue(); + if (o instanceof Byte) return ((Byte) o).longValue(); throw new FormatException(); } public Long getInteger(int index, Long defaultValue) { Object o = get(index); if (o instanceof Long) return (Long) o; + if (o instanceof Integer) return ((Integer) o).longValue(); + if (o instanceof Short) return ((Short) o).longValue(); + if (o instanceof Byte) return ((Byte) o).longValue(); return defaultValue; } public Double getFloat(int index) throws FormatException { Object o = get(index); if (o instanceof Double) return (Double) o; + if (o instanceof Float) return ((Float) o).doubleValue(); throw new FormatException(); } public Double getFloat(int index, Double defaultValue) { Object o = get(index); if (o instanceof Double) return (Double) o; + if (o instanceof Float) return ((Float) o).doubleValue(); return defaultValue; } @@ -57,12 +66,14 @@ public class BdfList extends Vector<Object> { public byte[] getRaw(int index) throws FormatException { Object o = get(index); if (o instanceof byte[]) return (byte[]) o; + if (o instanceof Bytes) return ((Bytes) o).getBytes(); throw new FormatException(); } public byte[] getRaw(int index, byte[] defaultValue) { Object o = get(index); if (o instanceof byte[]) return (byte[]) o; + if (o instanceof Bytes) return ((Bytes) o).getBytes(); return defaultValue; } diff --git a/briar-core/src/org/briarproject/data/MetadataEncoderImpl.java b/briar-core/src/org/briarproject/data/MetadataEncoderImpl.java index e70070391b..1de4c8ef62 100644 --- a/briar-core/src/org/briarproject/data/MetadataEncoderImpl.java +++ b/briar-core/src/org/briarproject/data/MetadataEncoderImpl.java @@ -1,5 +1,6 @@ package org.briarproject.data; +import org.briarproject.api.Bytes; import org.briarproject.api.FormatException; import org.briarproject.api.data.BdfDictionary; import org.briarproject.api.data.MetadataEncoder; @@ -62,6 +63,7 @@ class MetadataEncoderImpl implements MetadataEncoder { else if (o instanceof Double) encodeFloat(out, (Double) o); else if (o instanceof String) encodeString(out, (String) o); else if (o instanceof byte[]) encodeRaw(out, (byte[]) o); + else if (o instanceof Bytes) encodeRaw(out, ((Bytes) o).getBytes()); else if (o instanceof List) encodeList(out, (List) o); else if (o instanceof Map) encodeDictionary(out, (Map) o); else throw new FormatException(); -- GitLab