Added class iterator to PluginData

This commit is contained in:
Ziver Koc 2015-12-23 00:33:26 +01:00
parent 3508b7fdaf
commit 606c3bb2df
3 changed files with 22 additions and 19 deletions

17
src/zutil/plugin/PluginData.java Normal file → Executable file
View file

@ -43,12 +43,12 @@ public class PluginData {
private double pluginVersion;
private String pluginName;
private HashMap<Class, List<Class>> classMap;
private HashMap<Class<?>, List<Class<?>>> classMap;
private HashMap<Class, Object> objectMap;
protected PluginData(DataNode data) throws ClassNotFoundException, MalformedURLException {
classMap = new HashMap<Class, List<Class>>();
classMap = new HashMap<>();
objectMap = new HashMap<Class, Object>();
pluginVersion = data.getDouble("version");
@ -80,7 +80,7 @@ public class PluginData {
continue;
if(!classMap.containsKey(intfClass))
classMap.put(intfClass, new ArrayList<Class>());
classMap.put(intfClass, new ArrayList<Class<?>>());
classMap.get(intfClass).add(pluginClass);
}
}
@ -102,11 +102,16 @@ public class PluginData {
}
public <T> Iterator<T> getIterator(Class<T> intf){
public <T> Iterator<T> getObjectIterator(Class<T> intf){
if(!classMap.containsKey(intf))
return Collections.emptyIterator();
return new PluginObjectIterator<T>(classMap.get(intf).iterator());
}
public Iterator<Class<?>> getClassIterator(Class<?> intf){
if(!classMap.containsKey(intf))
return Collections.emptyIterator();
return classMap.get(intf).iterator();
}
private <T> T getObject(Class<T> objClass) {
try {
@ -131,10 +136,10 @@ public class PluginData {
private class PluginObjectIterator<T> implements Iterator<T>{
private Iterator<Class> classIt;
private Iterator<Class<?>> classIt;
private T currentObj;
public PluginObjectIterator(Iterator<Class> it) {
public PluginObjectIterator(Iterator<Class<?>> it) {
classIt = it;
}