From ab88ed8176609a747715a1f2f2bb92fa707b96c6 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Thu, 3 Sep 2015 13:27:20 +0200 Subject: [PATCH] Move UglySQL into MUtil as transform --- .../massivecore/store/CollAbstract.java | 23 +++--- .../massivecore/store/MStoreUtil.java | 76 ------------------ .../massivecraft/massivecore/util/MUtil.java | 80 +++++++++++++++++++ 3 files changed, 92 insertions(+), 87 deletions(-) delete mode 100644 src/com/massivecraft/massivecore/store/MStoreUtil.java diff --git a/src/com/massivecraft/massivecore/store/CollAbstract.java b/src/com/massivecraft/massivecore/store/CollAbstract.java index 44cd393e..8d606e05 100644 --- a/src/com/massivecraft/massivecore/store/CollAbstract.java +++ b/src/com/massivecraft/massivecore/store/CollAbstract.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map.Entry; import com.massivecraft.massivecore.Predictate; +import com.massivecraft.massivecore.util.MUtil; import com.massivecraft.massivecore.xlib.gson.JsonElement; @@ -56,17 +57,17 @@ public abstract class CollAbstract implements CollInterface return this.containsIdFixed(this.fixId(oid)); } - @Override public List getAll(Predictate where) { return MStoreUtil.uglySQL(this.getAll(), where, null, null, null); } - @Override public List getAll(Predictate where, Comparator orderby) { return MStoreUtil.uglySQL(this.getAll(), where, orderby, null, null); } - @Override public List getAll(Predictate where, Comparator orderby, Integer limit) { return MStoreUtil.uglySQL(this.getAll(), where, orderby, limit, null); } - @Override public List getAll(Predictate where, Comparator orderby, Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), where, orderby, limit, offset); } - @Override public List getAll(Predictate where, Integer limit) { return MStoreUtil.uglySQL(this.getAll(), where, null, limit, null); } - @Override public List getAll(Predictate where, Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), where, null, limit, offset); } - @Override public List getAll(Comparator orderby) { return MStoreUtil.uglySQL(this.getAll(), null, orderby, null, null); } - @Override public List getAll(Comparator orderby, Integer limit) { return MStoreUtil.uglySQL(this.getAll(), null, orderby, limit, null); } - @Override public List getAll(Comparator orderby, Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), null, orderby, limit, offset); } - @Override public List getAll(Integer limit) { return MStoreUtil.uglySQL(this.getAll(), null, null, limit, null); } - @Override public List getAll(Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), null, null, limit, offset); } + @Override public List getAll(Predictate where) { return MUtil.transform(this.getAll(), where); } + @Override public List getAll(Predictate where, Comparator orderby) { return MUtil.transform(this.getAll(), where, orderby); } + @Override public List getAll(Predictate where, Comparator orderby, Integer limit) { return MUtil.transform(this.getAll(), where, orderby, limit); } + @Override public List getAll(Predictate where, Comparator orderby, Integer limit, Integer offset) { return MUtil.transform(this.getAll(), where, orderby, limit, offset); } + @Override public List getAll(Predictate where, Integer limit) { return MUtil.transform(this.getAll(), where, limit); } + @Override public List getAll(Predictate where, Integer limit, Integer offset) { return MUtil.transform(this.getAll(), where, limit, offset); } + @Override public List getAll(Comparator orderby) { return MUtil.transform(this.getAll(), orderby); } + @Override public List getAll(Comparator orderby, Integer limit) { return MUtil.transform(this.getAll(), orderby, limit); } + @Override public List getAll(Comparator orderby, Integer limit, Integer offset) { return MUtil.transform(this.getAll(), orderby, limit, offset); } + @Override public List getAll(Integer limit) { return MUtil.transform(this.getAll(), limit); } + @Override public List getAll(Integer limit, Integer offset) { return MUtil.transform(this.getAll(), limit, offset); } // -------------------------------------------- // // BEHAVIOR diff --git a/src/com/massivecraft/massivecore/store/MStoreUtil.java b/src/com/massivecraft/massivecore/store/MStoreUtil.java deleted file mode 100644 index df1baf7d..00000000 --- a/src/com/massivecraft/massivecore/store/MStoreUtil.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.massivecraft.massivecore.store; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; - -import com.massivecraft.massivecore.Predictate; - -public class MStoreUtil -{ - public static ArrayList uglySQL(Collection items, Predictate where, Comparator orderby, Integer limit, Integer offset) - { - ArrayList ret = new ArrayList(items.size()); - - // WHERE - if (where == null) - { - ret.addAll(items); - } - else - { - for (T item : items) - { - if (where.apply(item)) - { - ret.add(item); - } - } - } - - // ORDERBY - if (orderby != null) - { - Collections.sort(ret, orderby); - } - - // LIMIT AND OFFSET - // Parse args - int fromIndex = 0; - if (offset != null) - { - fromIndex = offset; - } - - int toIndex = ret.size()-1; - if (limit != null) - { - toIndex = offset+limit; - } - - // Clean args - if (fromIndex <= 0) - { - fromIndex = 0; - } - else if (fromIndex > ret.size()-1) - { - fromIndex = ret.size()-1; - } - - if (toIndex < fromIndex) - { - toIndex = fromIndex; - } - else if (toIndex > ret.size()-1) - { - toIndex = ret.size()-1; - } - - // No limit? - if (fromIndex == 0 && toIndex == ret.size()-1) return ret; - return new ArrayList(ret.subList(fromIndex, toIndex)); - } - -} diff --git a/src/com/massivecraft/massivecore/util/MUtil.java b/src/com/massivecraft/massivecore/util/MUtil.java index 03f2af03..68b6bfc7 100644 --- a/src/com/massivecraft/massivecore/util/MUtil.java +++ b/src/com/massivecraft/massivecore/util/MUtil.java @@ -59,6 +59,7 @@ import com.massivecraft.massivecore.CaseInsensitiveComparator; import com.massivecraft.massivecore.MassiveCore; import com.massivecraft.massivecore.MassiveCoreEngineMain; import com.massivecraft.massivecore.MassiveCoreEngineWorldNameSet; +import com.massivecraft.massivecore.Predictate; import com.massivecraft.massivecore.collections.MassiveList; import com.massivecraft.massivecore.collections.MassiveSet; import com.massivecraft.massivecore.collections.MassiveTreeSet; @@ -1247,6 +1248,85 @@ public class MUtil return MassiveCoreEngineWorldNameSet.get().getWorldNames(); } + // -------------------------------------------- // + // TRANSFORM + // -------------------------------------------- // + + public static List transform(Collection items, Predictate where, Comparator orderby, Integer limit, Integer offset) + { + List ret = new ArrayList(items.size()); + + // WHERE + if (where == null) + { + ret.addAll(items); + } + else + { + for (T item : items) + { + if (where.apply(item)) + { + ret.add(item); + } + } + } + + // ORDERBY + if (orderby != null) + { + Collections.sort(ret, orderby); + } + + // LIMIT AND OFFSET + // Parse args + int fromIndex = 0; + if (offset != null) + { + fromIndex = offset; + } + + int toIndex = ret.size()-1; + if (limit != null) + { + toIndex = offset+limit; + } + + // Clean args + if (fromIndex <= 0) + { + fromIndex = 0; + } + else if (fromIndex > ret.size()-1) + { + fromIndex = ret.size()-1; + } + + if (toIndex < fromIndex) + { + toIndex = fromIndex; + } + else if (toIndex > ret.size()-1) + { + toIndex = ret.size()-1; + } + + // No limit? + if (fromIndex == 0 && toIndex == ret.size()-1) return ret; + + return new ArrayList(ret.subList(fromIndex, toIndex)); + } + public static List transform(Collection items, Predictate where) { return transform(items, where, null, null, null); } + public static List transform(Collection items, Predictate where, Comparator orderby) { return transform(items, where, orderby, null, null); } + public static List transform(Collection items, Predictate where, Comparator orderby, Integer limit) { return transform(items, where, orderby, limit, null); } + public static List transform(Collection items, Predictate where, Integer limit) { return transform(items, where, null, limit, null); } + public static List transform(Collection items, Predictate where, Integer limit, Integer offset) { return transform(items, where, null, limit, offset); } + public static List transform(Collection items, Comparator orderby) { return transform(items, null, orderby, null, null); } + public static List transform(Collection items, Comparator orderby, Integer limit) { return transform(items, null, orderby, limit, null); } + public static List transform(Collection items, Comparator orderby, Integer limit, Integer offset) { return transform(items, null, orderby, limit, offset); } + public static List transform(Collection items, Integer limit) { return transform(items, null, null, limit, null); } + public static List transform(Collection items, Integer limit, Integer offset) { return transform(items, null, null, limit, offset); } + // -------------------------------------------- // // SIMPLE CONSTRUCTORS // -------------------------------------------- //