java: adds actual generic templates

This commit is contained in:
FURUHASHI Sadayuki 2010-12-01 20:36:52 +09:00
parent eb5d326a1e
commit a3cd13b399
3 changed files with 21 additions and 0 deletions

View File

@ -24,6 +24,8 @@ import java.io.IOException;
import org.msgpack.*; import org.msgpack.*;
public class CollectionTemplate implements Template { public class CollectionTemplate implements Template {
public static void load() { }
private Template elementTemplate; private Template elementTemplate;
public CollectionTemplate(Template elementTemplate) { public CollectionTemplate(Template elementTemplate) {
@ -72,5 +74,10 @@ public class CollectionTemplate implements Template {
} }
return list; return list;
} }
static {
TemplateRegistry.registerGeneric(Collection.class, new GenericTemplate1(CollectionTemplate.class));
TemplateRegistry.register(Collection.class, new CollectionTemplate(AnyTemplate.getInstance()));
}
} }

View File

@ -23,6 +23,8 @@ import java.io.IOException;
import org.msgpack.*; import org.msgpack.*;
public class ListTemplate implements Template { public class ListTemplate implements Template {
static void load() { }
private Template elementTemplate; private Template elementTemplate;
public ListTemplate(Template elementTemplate) { public ListTemplate(Template elementTemplate) {
@ -75,5 +77,10 @@ public class ListTemplate implements Template {
} }
return list; return list;
} }
static {
TemplateRegistry.registerGeneric(List.class, new GenericTemplate1(ListTemplate.class));
TemplateRegistry.register(List.class, new ListTemplate(AnyTemplate.getInstance()));
}
} }

View File

@ -23,6 +23,8 @@ import java.io.IOException;
import org.msgpack.*; import org.msgpack.*;
public class MapTemplate implements Template { public class MapTemplate implements Template {
static void load() { }
private Template keyTemplate; private Template keyTemplate;
private Template valueTemplate; private Template valueTemplate;
@ -86,5 +88,10 @@ public class MapTemplate implements Template {
} }
return map; return map;
} }
static {
TemplateRegistry.registerGeneric(Map.class, new GenericTemplate2(MapTemplate.class));
TemplateRegistry.register(Map.class, new MapTemplate(AnyTemplate.getInstance(), AnyTemplate.getInstance()));
}
} }