diff options
author | Koushik Dutta <koushd@gmail.com> | 2015-03-07 15:18:28 -1000 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2015-03-07 15:18:28 -1000 |
commit | bc36ff0e85066ddf76e9a3d2af6c0baa8727d420 (patch) | |
tree | 44fac6f75691245bd30e573d74b86f31694a42fa /AndroidAsync/src | |
parent | 2f8678ddb2530d582d7f50245272604d916f2609 (diff) | |
download | AndroidAsync-bc36ff0e85066ddf76e9a3d2af6c0baa8727d420.tar.gz AndroidAsync-bc36ff0e85066ddf76e9a3d2af6c0baa8727d420.tar.bz2 AndroidAsync-bc36ff0e85066ddf76e9a3d2af6c0baa8727d420.zip |
Revert "Revert "Add getType to AsyncParser.""
This reverts commit 2f8678ddb2530d582d7f50245272604d916f2609.
Diffstat (limited to 'AndroidAsync/src')
7 files changed, 19 insertions, 5 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/AsyncParser.java b/AndroidAsync/src/com/koushikdutta/async/parser/AsyncParser.java index bcbb440..44e1a83 100644 --- a/AndroidAsync/src/com/koushikdutta/async/parser/AsyncParser.java +++ b/AndroidAsync/src/com/koushikdutta/async/parser/AsyncParser.java @@ -11,4 +11,5 @@ import com.koushikdutta.async.future.Future; public interface AsyncParser<T> { Future<T> parse(DataEmitter emitter); void write(DataSink sink, T value, CompletedCallback completed); + Class<T> getType(); } diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/AsyncParserBase.java b/AndroidAsync/src/com/koushikdutta/async/parser/AsyncParserBase.java new file mode 100644 index 0000000..d6a7f35 --- /dev/null +++ b/AndroidAsync/src/com/koushikdutta/async/parser/AsyncParserBase.java @@ -0,0 +1,13 @@ +package com.koushikdutta.async.parser; + +import java.lang.reflect.ParameterizedType; + +/** + * Created by koush on 3/6/15. + */ +public abstract class AsyncParserBase<T> implements AsyncParser<T> { + @Override + public Class<T> getType() { + return (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0]; + } +} diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/ByteBufferListParser.java b/AndroidAsync/src/com/koushikdutta/async/parser/ByteBufferListParser.java index abfaa87..7226062 100644 --- a/AndroidAsync/src/com/koushikdutta/async/parser/ByteBufferListParser.java +++ b/AndroidAsync/src/com/koushikdutta/async/parser/ByteBufferListParser.java @@ -12,7 +12,7 @@ import com.koushikdutta.async.future.SimpleFuture; /** * Created by koush on 5/27/13. */ -public class ByteBufferListParser implements AsyncParser<ByteBufferList> { +public class ByteBufferListParser extends AsyncParserBase<ByteBufferList> { @Override public Future<ByteBufferList> parse(final DataEmitter emitter) { final ByteBufferList bb = new ByteBufferList(); diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/DocumentParser.java b/AndroidAsync/src/com/koushikdutta/async/parser/DocumentParser.java index fe54e04..c64a300 100644 --- a/AndroidAsync/src/com/koushikdutta/async/parser/DocumentParser.java +++ b/AndroidAsync/src/com/koushikdutta/async/parser/DocumentParser.java @@ -17,7 +17,7 @@ import javax.xml.parsers.DocumentBuilderFactory; /** * Created by koush on 8/3/13. */ -public class DocumentParser implements AsyncParser<Document> { +public class DocumentParser extends AsyncParserBase<Document> { @Override public Future<Document> parse(DataEmitter emitter) { return new ByteBufferListParser().parse(emitter) diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/JSONArrayParser.java b/AndroidAsync/src/com/koushikdutta/async/parser/JSONArrayParser.java index d8eb7e5..687435a 100644 --- a/AndroidAsync/src/com/koushikdutta/async/parser/JSONArrayParser.java +++ b/AndroidAsync/src/com/koushikdutta/async/parser/JSONArrayParser.java @@ -12,7 +12,7 @@ import org.json.JSONObject; /** * Created by koush on 5/27/13. */ -public class JSONArrayParser implements AsyncParser<JSONArray> { +public class JSONArrayParser extends AsyncParserBase<JSONArray> { @Override public Future<JSONArray> parse(DataEmitter emitter) { return new StringParser().parse(emitter) diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/JSONObjectParser.java b/AndroidAsync/src/com/koushikdutta/async/parser/JSONObjectParser.java index dbdcbef..5bd1eb0 100644 --- a/AndroidAsync/src/com/koushikdutta/async/parser/JSONObjectParser.java +++ b/AndroidAsync/src/com/koushikdutta/async/parser/JSONObjectParser.java @@ -10,7 +10,7 @@ import org.json.JSONObject; /** * Created by koush on 5/27/13. */ -public class JSONObjectParser implements AsyncParser<JSONObject> { +public class JSONObjectParser extends AsyncParserBase<JSONObject> { @Override public Future<JSONObject> parse(DataEmitter emitter) { return new StringParser().parse(emitter) diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java b/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java index 5a9f880..f8d82b6 100644 --- a/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java +++ b/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java @@ -12,7 +12,7 @@ import java.nio.charset.Charset; /** * Created by koush on 5/27/13. */ -public class StringParser implements AsyncParser<String> { +public class StringParser extends AsyncParserBase<String> { Charset forcedCharset; public StringParser() { |