Move UglySQL into MUtil as transform
This commit is contained in:
parent
7b5f6acd1b
commit
ab88ed8176
@ -5,6 +5,7 @@ import java.util.List;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import com.massivecraft.massivecore.Predictate;
|
import com.massivecraft.massivecore.Predictate;
|
||||||
|
import com.massivecraft.massivecore.util.MUtil;
|
||||||
import com.massivecraft.massivecore.xlib.gson.JsonElement;
|
import com.massivecraft.massivecore.xlib.gson.JsonElement;
|
||||||
|
|
||||||
|
|
||||||
@ -56,17 +57,17 @@ public abstract class CollAbstract<E> implements CollInterface<E>
|
|||||||
return this.containsIdFixed(this.fixId(oid));
|
return this.containsIdFixed(this.fixId(oid));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public List<E> getAll(Predictate<? super E> where) { return MStoreUtil.uglySQL(this.getAll(), where, null, null, null); }
|
@Override public List<E> getAll(Predictate<? super E> where) { return MUtil.transform(this.getAll(), where); }
|
||||||
@Override public List<E> getAll(Predictate<? super E> where, Comparator<? super E> orderby) { return MStoreUtil.uglySQL(this.getAll(), where, orderby, null, null); }
|
@Override public List<E> getAll(Predictate<? super E> where, Comparator<? super E> orderby) { return MUtil.transform(this.getAll(), where, orderby); }
|
||||||
@Override public List<E> getAll(Predictate<? super E> where, Comparator<? super E> orderby, Integer limit) { return MStoreUtil.uglySQL(this.getAll(), where, orderby, limit, null); }
|
@Override public List<E> getAll(Predictate<? super E> where, Comparator<? super E> orderby, Integer limit) { return MUtil.transform(this.getAll(), where, orderby, limit); }
|
||||||
@Override public List<E> getAll(Predictate<? super E> where, Comparator<? super E> orderby, Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), where, orderby, limit, offset); }
|
@Override public List<E> getAll(Predictate<? super E> where, Comparator<? super E> orderby, Integer limit, Integer offset) { return MUtil.transform(this.getAll(), where, orderby, limit, offset); }
|
||||||
@Override public List<E> getAll(Predictate<? super E> where, Integer limit) { return MStoreUtil.uglySQL(this.getAll(), where, null, limit, null); }
|
@Override public List<E> getAll(Predictate<? super E> where, Integer limit) { return MUtil.transform(this.getAll(), where, limit); }
|
||||||
@Override public List<E> getAll(Predictate<? super E> where, Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), where, null, limit, offset); }
|
@Override public List<E> getAll(Predictate<? super E> where, Integer limit, Integer offset) { return MUtil.transform(this.getAll(), where, limit, offset); }
|
||||||
@Override public List<E> getAll(Comparator<? super E> orderby) { return MStoreUtil.uglySQL(this.getAll(), null, orderby, null, null); }
|
@Override public List<E> getAll(Comparator<? super E> orderby) { return MUtil.transform(this.getAll(), orderby); }
|
||||||
@Override public List<E> getAll(Comparator<? super E> orderby, Integer limit) { return MStoreUtil.uglySQL(this.getAll(), null, orderby, limit, null); }
|
@Override public List<E> getAll(Comparator<? super E> orderby, Integer limit) { return MUtil.transform(this.getAll(), orderby, limit); }
|
||||||
@Override public List<E> getAll(Comparator<? super E> orderby, Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), null, orderby, limit, offset); }
|
@Override public List<E> getAll(Comparator<? super E> orderby, Integer limit, Integer offset) { return MUtil.transform(this.getAll(), orderby, limit, offset); }
|
||||||
@Override public List<E> getAll(Integer limit) { return MStoreUtil.uglySQL(this.getAll(), null, null, limit, null); }
|
@Override public List<E> getAll(Integer limit) { return MUtil.transform(this.getAll(), limit); }
|
||||||
@Override public List<E> getAll(Integer limit, Integer offset) { return MStoreUtil.uglySQL(this.getAll(), null, null, limit, offset); }
|
@Override public List<E> getAll(Integer limit, Integer offset) { return MUtil.transform(this.getAll(), limit, offset); }
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// BEHAVIOR
|
// BEHAVIOR
|
||||||
|
@ -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 <T> ArrayList<T> uglySQL(Collection<T> items, Predictate<? super T> where, Comparator<? super T> orderby, Integer limit, Integer offset)
|
|
||||||
{
|
|
||||||
ArrayList<T> ret = new ArrayList<T>(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<T>(ret.subList(fromIndex, toIndex));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -59,6 +59,7 @@ import com.massivecraft.massivecore.CaseInsensitiveComparator;
|
|||||||
import com.massivecraft.massivecore.MassiveCore;
|
import com.massivecraft.massivecore.MassiveCore;
|
||||||
import com.massivecraft.massivecore.MassiveCoreEngineMain;
|
import com.massivecraft.massivecore.MassiveCoreEngineMain;
|
||||||
import com.massivecraft.massivecore.MassiveCoreEngineWorldNameSet;
|
import com.massivecraft.massivecore.MassiveCoreEngineWorldNameSet;
|
||||||
|
import com.massivecraft.massivecore.Predictate;
|
||||||
import com.massivecraft.massivecore.collections.MassiveList;
|
import com.massivecraft.massivecore.collections.MassiveList;
|
||||||
import com.massivecraft.massivecore.collections.MassiveSet;
|
import com.massivecraft.massivecore.collections.MassiveSet;
|
||||||
import com.massivecraft.massivecore.collections.MassiveTreeSet;
|
import com.massivecraft.massivecore.collections.MassiveTreeSet;
|
||||||
@ -1247,6 +1248,85 @@ public class MUtil
|
|||||||
return MassiveCoreEngineWorldNameSet.get().getWorldNames();
|
return MassiveCoreEngineWorldNameSet.get().getWorldNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// TRANSFORM
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Predictate<? super T> where, Comparator<? super T> orderby, Integer limit, Integer offset)
|
||||||
|
{
|
||||||
|
List<T> ret = new ArrayList<T>(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<T>(ret.subList(fromIndex, toIndex));
|
||||||
|
}
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Predictate<? super T> where) { return transform(items, where, null, null, null); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Predictate<? super T> where, Comparator<? super T> orderby) { return transform(items, where, orderby, null, null); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Predictate<? super T> where, Comparator<? super T> orderby, Integer limit) { return transform(items, where, orderby, limit, null); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Predictate<? super T> where, Integer limit) { return transform(items, where, null, limit, null); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Predictate<? super T> where, Integer limit, Integer offset) { return transform(items, where, null, limit, offset); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Comparator<? super T> orderby) { return transform(items, null, orderby, null, null); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Comparator<? super T> orderby, Integer limit) { return transform(items, null, orderby, limit, null); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Comparator<? super T> orderby, Integer limit, Integer offset) { return transform(items, null, orderby, limit, offset); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Integer limit) { return transform(items, null, null, limit, null); }
|
||||||
|
public static <T> List<T> transform(Collection<T> items, Integer limit, Integer offset) { return transform(items, null, null, limit, offset); }
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// SIMPLE CONSTRUCTORS
|
// SIMPLE CONSTRUCTORS
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
Loading…
Reference in New Issue
Block a user