diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-09-28 07:54:53 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-09-28 07:54:53 -0400 |
| commit | ba0a3f53a88842a94ea6a1a6d45f61416b593e47 (patch) | |
| tree | 4a528eea60842d5f73bf243653bd6ff7424d153b /BJC-Utils2/src/main/java/bjc | |
| parent | 387febf2477ce0fab627ef2d163ffbf36741ab0e (diff) | |
Update various things.
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc')
7 files changed, 54 insertions, 11 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/WrappedLazy.java b/BJC-Utils2/src/main/java/bjc/utils/data/WrappedLazy.java index 8ca29bc..b894ac7 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/WrappedLazy.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/WrappedLazy.java @@ -13,7 +13,7 @@ class WrappedLazy<ContainedType> implements IHolder<ContainedType> { // This has an extra parameter, because otherwise it erases to the same // as the public one private WrappedLazy(IHolder<IHolder<ContainedType>> wrappedHolder, - @SuppressWarnings("unused") boolean dummy) { + boolean dummy) { held = wrappedHolder; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/WrappedOption.java b/BJC-Utils2/src/main/java/bjc/utils/data/WrappedOption.java index 5be55cc..fea4cb9 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/WrappedOption.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/WrappedOption.java @@ -11,7 +11,7 @@ class WrappedOption<ContainedType> implements IHolder<ContainedType> { } private WrappedOption(IHolder<IHolder<ContainedType>> toHold, - @SuppressWarnings("unused") boolean dummy) { + boolean dummy) { held = toHold; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java index f1616b2..4fb7c2b 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java @@ -141,7 +141,7 @@ public interface IMap<KeyType, ValueType> { default ValueType getOrDefault(KeyType key, ValueType defaultValue) { try { return get(key); - } catch (@SuppressWarnings("unused") IllegalArgumentException iaex) { + } catch (IllegalArgumentException iaex) { // We don't care about this, because it indicates a key is // missing return defaultValue; diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcutils/ListUtils.java b/BJC-Utils2/src/main/java/bjc/utils/funcutils/ListUtils.java index f09a794..d65603b 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcutils/ListUtils.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcutils/ListUtils.java @@ -3,6 +3,7 @@ package bjc.utils.funcutils; import java.util.ArrayList; import java.util.Deque; import java.util.function.Function; +import java.util.function.Supplier; import bjc.utils.data.IHolder; import bjc.utils.data.IPair; @@ -175,6 +176,7 @@ public class ListUtils { * The function to determine the count for each element for * @param numberPerPartition * The number of elements to put in each partition + * * @return A list partitioned according to the above rules */ public static <E> IList<IList<E>> groupPartition(IList<E> input, @@ -294,4 +296,45 @@ public class ListUtils { return returnedList.getValue(); } + + public static <E> IList<E> padList(IList<E> list, + Function<E, Integer> counter, int size, + Supplier<E> padSource) { + IHolder<Integer> countHolder = new Identity<>(0); + + IList<E> ret = list.map((elm) -> { + countHolder.map((val) -> val + counter.apply(elm)); + + return elm; + }); + + if (countHolder.unwrap((val) -> val % size != 0)) { + // We need to pad + int needed = countHolder.unwrap((val) -> val % size); + int threshold = 0; + + while (needed > 0 && threshold <= MAX_NTRIESPART) { + E val = padSource.get(); + int count = counter.apply(val); + + if (count <= needed) { + ret.add(val); + + threshold = 0; + + needed -= count; + } else { + threshold += 1; + } + } + + if (threshold > MAX_NTRIESPART) { + throw new IllegalArgumentException("Heuristic (more than " + + MAX_NTRIESPART + + " iterations of attempting to pad) detected unpaddable list "); + } + } + + return ret; + } }
\ No newline at end of file diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java index 51d9d5d..77e518e 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java +++ b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java @@ -43,7 +43,7 @@ public class SimpleDialogs { int value = Integer.parseInt(strang); return (value < upperBound) && (value > lowerBound); - } catch (@SuppressWarnings("unused") NumberFormatException nfex) { + } catch (NumberFormatException nfex) { // We don't care about the specifics of the exception, just // that this value isn't good return false; @@ -127,7 +127,7 @@ public class SimpleDialogs { try { Integer.parseInt(strang); return true; - } catch (@SuppressWarnings("unused") NumberFormatException nfex) { + } catch (NumberFormatException nfex) { // We don't care about this exception, just mark the value // as not good return false; diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java index b4c6d73..010de5f 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java +++ b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java @@ -31,7 +31,7 @@ public class SimpleFileChooser { maybeDoOpenFile(parent, files); success = true; - } catch (@SuppressWarnings("unused") FileNotChosenException fncx) { + } catch (FileNotChosenException fncx) { // We don't care about specifics SimpleDialogs.showError(parent, "I/O Error", "Please pick a file to open"); @@ -56,7 +56,7 @@ public class SimpleFileChooser { maybeDoSaveFile(parent, files); return files.getSelectedFile(); - } catch (@SuppressWarnings("unused") FileNotChosenException fncex) { + } catch (FileNotChosenException fncex) { // We don't care about specifics SimpleDialogs.showError(parent, "I/O Error", "Please pick a file to save to"); @@ -189,7 +189,7 @@ public class SimpleFileChooser { try { maybeDoOpenFile(parent, files); - } catch (@SuppressWarnings("unused") FileNotChosenException fncex) { + } catch (FileNotChosenException fncex) { // We don't care about specifics } @@ -215,7 +215,7 @@ public class SimpleFileChooser { try { maybeDoSaveFile(parent, files); - } catch (@SuppressWarnings("unused") FileNotChosenException fncex) { + } catch (FileNotChosenException fncex) { // We don't care about specifics } diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java index 82946f0..8246822 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java +++ b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java @@ -36,7 +36,7 @@ public class SimpleInternalDialogs { int value = Integer.parseInt(strang); return (value < upperBound) && (value > lowerBound); - } catch (@SuppressWarnings("unused") NumberFormatException nfex) { + } catch (NumberFormatException nfex) { // We don't care about the specifics of the exception, just // that this value isn't good return false; @@ -61,7 +61,7 @@ public class SimpleInternalDialogs { try { Integer.parseInt(strang); return true; - } catch (@SuppressWarnings("unused") NumberFormatException nfex) { + } catch (NumberFormatException nfex) { // We don't care about this exception, just mark the value // as not good return false; |
