mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Integrate filters into ItemManager
This commit is contained in:
@@ -123,6 +123,13 @@ public class Aggregates {
|
||||
return uniques.values();
|
||||
}
|
||||
|
||||
public static final <K, U> int uniqueCount(final Iterable<U> source, final Function<U, K> fnUniqueKey) {
|
||||
final Map<K, U> uniques = new Hashtable<K, U>();
|
||||
for (final U c : source) {
|
||||
uniques.put(fnUniqueKey.apply(c), c);
|
||||
}
|
||||
return uniques.size();
|
||||
}
|
||||
|
||||
public static <T> T itemWithMin(final Iterable<T> source, final Function<T, Integer> valueAccessor) {
|
||||
if (source == null) { return null; }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package forge.util;
|
||||
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -78,13 +79,13 @@ public class TextUtil {
|
||||
int len = input.length();
|
||||
int start = 0;
|
||||
int idx = 1;
|
||||
for (int iC = 0; iC < len; iC++ ) {
|
||||
for (int iC = 0; iC < len; iC++) {
|
||||
char c = input.charAt(iC);
|
||||
if( closePar > 0 && c == closePar && nPar > 0 ) { nPar--; }
|
||||
else if( openPar > 0 && c == openPar ) nPar++;
|
||||
if (closePar > 0 && c == closePar && nPar > 0) { nPar--; }
|
||||
else if (openPar > 0 && c == openPar) nPar++;
|
||||
|
||||
if( c == delimiter && nPar == 0 && idx < maxEntries) {
|
||||
if( iC > start || !skipEmpty ) {
|
||||
if (c == delimiter && nPar == 0 && idx < maxEntries) {
|
||||
if (iC > start || !skipEmpty) {
|
||||
result.add(input.subSequence(start, iC).toString());
|
||||
idx++;
|
||||
}
|
||||
@@ -92,7 +93,7 @@ public class TextUtil {
|
||||
}
|
||||
}
|
||||
|
||||
if( len > start || !skipEmpty )
|
||||
if (len > start || !skipEmpty)
|
||||
result.add(input.subSequence(start, len).toString());
|
||||
|
||||
String[] toReturn = result.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
|
||||
@@ -122,12 +123,20 @@ public class TextUtil {
|
||||
public static String buildFourColumnList(String firstLine, Iterable<PaperCard> cAnteRemoved) {
|
||||
StringBuilder sb = new StringBuilder(firstLine);
|
||||
int i = 0;
|
||||
for(PaperCard cp: cAnteRemoved) {
|
||||
if ( i != 0 ) sb.append(", ");
|
||||
if ( i % 4 == 0 ) sb.append("\n");
|
||||
for (PaperCard cp: cAnteRemoved) {
|
||||
if (i != 0) { sb.append(", "); }
|
||||
if (i % 4 == 0) { sb.append("\n"); }
|
||||
sb.append(cp);
|
||||
i++;
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static boolean isPrintableChar(char c) {
|
||||
Character.UnicodeBlock block = Character.UnicodeBlock.of(c);
|
||||
return (!Character.isISOControl(c)) &&
|
||||
c != KeyEvent.CHAR_UNDEFINED &&
|
||||
block != null &&
|
||||
block != Character.UnicodeBlock.SPECIALS;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user