From 606c3bb2dfc33185309fba4a5821d64931a90d16 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Wed, 23 Dec 2015 00:33:26 +0100 Subject: [PATCH] Added class iterator to PluginData --- Zutil.jar | Bin 1189244 -> 1189260 bytes src/zutil/plugin/PluginData.java | 17 +++++++++++------ src/zutil/plugin/PluginManager.java | 24 +++++++++++------------- 3 files changed, 22 insertions(+), 19 deletions(-) mode change 100644 => 100755 src/zutil/plugin/PluginData.java diff --git a/Zutil.jar b/Zutil.jar index 7d8ff0e4d6eeeb13c9f6047bc463eba0ba888870..e60539b46d9d177973e434cd8e2ef567244db96f 100755 GIT binary patch delta 8691 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 CYIeW? delta 8642 zcmY*e2Q-{r(AMi>-$mA9H#$Ldq6LW-C0g{Jh#Fn=$c6;byH^q=LLx*jS)%tKS_IL1 zi7q5ckbkZJ|Gw{c&OPrub7!8JJNI5^@0sYHTPNMOz}Fcxj0udogzFEI5?ncOpA^>f z4`?|?1uq*YB|isAk2#quvM4-haWfuMPht9LOln5d&L?Jio{Z=UI6M zfnPB8DN}L&LqVlN<->xbz^dVx3_Gg7I42C&sm>BdiOpS|>|c|XIjSx?9K3Nz&4kJS zO_ipGgXe|7m?=yOwG%6!M#oc$8020KPUZ{JN6~D2@wvS6M$F(GEm_M zKt}cd*fCf-(TfzY5;rEWfZF6gBwJH39l=nhnr`e}Fm%#JQ z$7oB^WKrWLc2#KJ2;e5pivaU>cXj{IqRt(%`LN3$_oi99j58Zx$EG-)LIeEEMxILJ zLHZ8_c?)SE80@+9Ho@u6PYft{KtqE=Hx6iU8G+|j1syLzp_r5dn)g@ECou}FQ1Bwl z^C*~Iap+f}|Kmla#zKiPKkT5PJ~&(KI>`T%QSu3N6LfW>hJtRr5DM_sDO3h6K9_Lm zYvPmZYBm^0zjp87_<>uF@7pL)nqLWwCgWAl$%9hq_ z#T*B0MqE=jVhM_L;MIqrrPtCch^dJO(pzlD)J{Fl?V}( zsBbFjrnU({uEb9;eB#;UgV%Lag)Y`LeSh^uljWB*vM${02>QMDwy7ujzD%t1PS@g* zL*(CIC}~%P(S)t8hYlLS+X1$gbdcTJgpk=hB}L7$-k_J4GZ}vGsLoHU1m!2cq&)Cg zBiWVk-rmt)F7UW*n)3lV!gz1wJ8vbazN6%=8a^@fQzBPSG-bFSqcv2~_)G}86=otG zmT>zcyUQzrp%9Pcc7J*vw88H73p4lYuGf`LF7LM)RS%xsjBARMblzn#jkFB5ANboA zYtW`RgSKijs!SPoSegN|r;Cn_*3ehu2Gz zf!`qBEQn$KQA9AOJRK_ zb8jxxFN$VUvT&hDuG+miG7;0Y<0H7WkDk-3Q$$VwXpfhjW~7fo$*1ogO}cU#5FX)3tMVY?;0M_&vn;j|WX`m%DjqJ=;-QY+TQyES~A@c0x

16&YbhSS)@5Q7tD}8~43W?3T4D|s;qcRn< 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 C?5RTl diff --git a/src/zutil/plugin/PluginData.java b/src/zutil/plugin/PluginData.java old mode 100644 new mode 100755 index 8466b9c..ece8010 --- a/src/zutil/plugin/PluginData.java +++ b/src/zutil/plugin/PluginData.java @@ -43,12 +43,12 @@ public class PluginData { private double pluginVersion; private String pluginName; - private HashMap> classMap; + private HashMap, List>> classMap; private HashMap objectMap; protected PluginData(DataNode data) throws ClassNotFoundException, MalformedURLException { - classMap = new HashMap>(); + classMap = new HashMap<>(); objectMap = new HashMap(); pluginVersion = data.getDouble("version"); @@ -80,7 +80,7 @@ public class PluginData { continue; if(!classMap.containsKey(intfClass)) - classMap.put(intfClass, new ArrayList()); + classMap.put(intfClass, new ArrayList>()); classMap.get(intfClass).add(pluginClass); } } @@ -102,11 +102,16 @@ public class PluginData { } - public Iterator getIterator(Class intf){ + public Iterator getObjectIterator(Class intf){ if(!classMap.containsKey(intf)) return Collections.emptyIterator(); return new PluginObjectIterator(classMap.get(intf).iterator()); } + public Iterator> getClassIterator(Class intf){ + if(!classMap.containsKey(intf)) + return Collections.emptyIterator(); + return classMap.get(intf).iterator(); + } private T getObject(Class objClass) { try { @@ -131,10 +136,10 @@ public class PluginData { private class PluginObjectIterator implements Iterator{ - private Iterator classIt; + private Iterator> classIt; private T currentObj; - public PluginObjectIterator(Iterator it) { + public PluginObjectIterator(Iterator> it) { classIt = it; } diff --git a/src/zutil/plugin/PluginManager.java b/src/zutil/plugin/PluginManager.java index 728ff66..027aa77 100755 --- a/src/zutil/plugin/PluginManager.java +++ b/src/zutil/plugin/PluginManager.java @@ -97,27 +97,25 @@ public class PluginManager implements Iterable{ public Iterator iterator() { return plugins.values().iterator(); } - public Iterator iterator(Class intf) { + public Iterator getObjectIterator(Class intf) { return new PluginInterfaceIterator(plugins.values().iterator(), intf); } public ArrayList toArray() { - ArrayList list = new ArrayList(); - Iterator it = iterator(); - while(it.hasNext()) - list.add(it.next()); - return list; + return toGenericArray(iterator()); } public ArrayList toArray(Class intf) { - ArrayList list = new ArrayList(); - Iterator it = iterator(intf); - while(it.hasNext()) - list.add(it.next()); - return list; + return toGenericArray(getObjectIterator(intf)); } + private ArrayList toGenericArray(Iterator it) { + ArrayList list = new ArrayList<>(); + while(it.hasNext()) + list.add(it.next()); + return list; + } - public class PluginInterfaceIterator implements Iterator { + public static class PluginInterfaceIterator implements Iterator { private Class intf; private Iterator pluginIt; private Iterator objectIt; @@ -135,7 +133,7 @@ public class PluginManager implements Iterable{ return true; while(pluginIt.hasNext()) { - objectIt = pluginIt.next().getIterator(intf); + objectIt = pluginIt.next().getObjectIterator(intf); if(objectIt.hasNext()) return true; }