From 889fac2bdf993dc86f64a8893c0260fdcf848acb Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 10 Apr 2017 16:40:33 -0400 Subject: Cleanup --- .../main/java/bjc/utils/funcdata/ExtendedMap.java | 64 ++++---- .../java/bjc/utils/funcdata/FunctionalList.java | 163 ++++++++++----------- .../java/bjc/utils/funcdata/FunctionalMap.java | 65 ++++---- .../utils/funcdata/FunctionalStringTokenizer.java | 38 ++--- .../src/main/java/bjc/utils/funcdata/IList.java | 24 +-- .../src/main/java/bjc/utils/funcdata/IMap.java | 34 ++--- .../main/java/bjc/utils/funcdata/SentryList.java | 15 +- .../bjc/utils/funcdata/TransformedValueMap.java | 23 +-- .../bjc/utils/funcdata/bst/BinarySearchTree.java | 56 +++---- .../utils/funcdata/bst/BinarySearchTreeLeaf.java | 48 +++--- .../utils/funcdata/bst/BinarySearchTreeNode.java | 130 +++++++--------- .../java/bjc/utils/funcdata/theory/Bifunctor.java | 18 +-- 12 files changed, 303 insertions(+), 375 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/funcdata') diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java index caa487c..909c5e9 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java @@ -1,17 +1,17 @@ package bjc.utils.funcdata; -import bjc.utils.funcutils.ListUtils; - import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; +import bjc.utils.funcutils.ListUtils; + class ExtendedMap implements IMap { - private IMap delegate; + private final IMap delegate; - private IMap store; + private final IMap store; - public ExtendedMap(IMap delegate, IMap store) { + public ExtendedMap(final IMap delegate, final IMap store) { this.delegate = delegate; this.store = store; } @@ -22,9 +22,8 @@ class ExtendedMap implements IMap { } @Override - public boolean containsKey(KeyType key) { - if (store.containsKey(key)) - return true; + public boolean containsKey(final KeyType key) { + if (store.containsKey(key)) return true; return delegate.containsKey(key); } @@ -35,30 +34,29 @@ class ExtendedMap implements IMap { } @Override - public void forEach(BiConsumer action) { + public void forEach(final BiConsumer action) { store.forEach(action); delegate.forEach(action); } @Override - public void forEachKey(Consumer action) { + public void forEachKey(final Consumer action) { store.forEachKey(action); delegate.forEachKey(action); } @Override - public void forEachValue(Consumer action) { + public void forEachValue(final Consumer action) { store.forEachValue(action); delegate.forEachValue(action); } @Override - public ValueType get(KeyType key) { - if (store.containsKey(key)) - return store.get(key); + public ValueType get(final KeyType key) { + if (store.containsKey(key)) return store.get(key); return delegate.get(key); } @@ -74,19 +72,18 @@ class ExtendedMap implements IMap { } @Override - public IMap transform(Function transformer) { + public IMap transform(final Function transformer) { return new TransformedValueMap<>(this, transformer); } @Override - public ValueType put(KeyType key, ValueType val) { + public ValueType put(final KeyType key, final ValueType val) { return store.put(key, val); } @Override - public ValueType remove(KeyType key) { - if (!store.containsKey(key)) - return delegate.remove(key); + public ValueType remove(final KeyType key) { + if (!store.containsKey(key)) return delegate.remove(key); return store.remove(key); } @@ -100,32 +97,25 @@ class ExtendedMap implements IMap { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((delegate == null) ? 0 : delegate.hashCode()); - result = prime * result + ((store == null) ? 0 : store.hashCode()); + result = prime * result + (delegate == null ? 0 : delegate.hashCode()); + result = prime * result + (store == null ? 0 : store.hashCode()); return result; } @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (!(obj instanceof ExtendedMap)) - return false; + public boolean equals(final Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (!(obj instanceof ExtendedMap)) return false; - ExtendedMap other = (ExtendedMap) obj; + final ExtendedMap other = (ExtendedMap) obj; if (delegate == null) { - if (other.delegate != null) - return false; - } else if (!delegate.equals(other.delegate)) - return false; + if (other.delegate != null) return false; + } else if (!delegate.equals(other.delegate)) return false; if (store == null) { - if (other.store != null) - return false; - } else if (!store.equals(other.store)) - return false; + if (other.store != null) return false; + } else if (!store.equals(other.store)) return false; return true; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java index 7627bdf..55ea7ff 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java @@ -1,10 +1,5 @@ package bjc.utils.funcdata; -import bjc.utils.data.IHolder; -import bjc.utils.data.IPair; -import bjc.utils.data.Identity; -import bjc.utils.data.Pair; - import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -17,6 +12,11 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; +import bjc.utils.data.IHolder; +import bjc.utils.data.IPair; +import bjc.utils.data.Identity; +import bjc.utils.data.Pair; + /** * A wrapper over another list that provides eager functional operations over * it. @@ -33,7 +33,7 @@ public class FunctionalList implements Cloneable, IList { /* * The list used as a backing store */ - private List wrapped; + private final List wrapped; /** * Create a new empty functional list. @@ -51,10 +51,10 @@ public class FunctionalList implements Cloneable, IList { * The items to put into this functional list. */ @SafeVarargs - public FunctionalList(E... items) { + public FunctionalList(final E... items) { wrapped = new ArrayList<>(items.length); - for (E item : items) { + for (final E item : items) { wrapped.add(item); } } @@ -65,7 +65,7 @@ public class FunctionalList implements Cloneable, IList { * @param size * The size of the backing list . */ - private FunctionalList(int size) { + private FunctionalList(final int size) { wrapped = new ArrayList<>(size); } @@ -77,24 +77,22 @@ public class FunctionalList implements Cloneable, IList { * @param backing * The list to use as a backing list. */ - public FunctionalList(List backing) { - if (backing == null) - throw new NullPointerException("Backing list must be non-null"); + public FunctionalList(final List backing) { + if (backing == null) throw new NullPointerException("Backing list must be non-null"); wrapped = backing; } @Override - public boolean add(E item) { + public boolean add(final E item) { return wrapped.add(item); } @Override - public boolean allMatch(Predicate predicate) { - if (predicate == null) - throw new NullPointerException("Predicate must be non-null"); + public boolean allMatch(final Predicate predicate) { + if (predicate == null) throw new NullPointerException("Predicate must be non-null"); - for (E item : wrapped) { + for (final E item : wrapped) { if (!predicate.test(item)) // We've found a non-matching item return false; @@ -105,11 +103,10 @@ public class FunctionalList implements Cloneable, IList { } @Override - public boolean anyMatch(Predicate predicate) { - if (predicate == null) - throw new NullPointerException("Predicate must be not null"); + public boolean anyMatch(final Predicate predicate) { + if (predicate == null) throw new NullPointerException("Predicate must be not null"); - for (E item : wrapped) { + for (final E item : wrapped) { if (predicate.test(item)) // We've found a matching item return true; @@ -128,9 +125,9 @@ public class FunctionalList implements Cloneable, IList { */ @Override public IList clone() { - IList cloned = new FunctionalList<>(); + final IList cloned = new FunctionalList<>(); - for (E element : wrapped) { + for (final E element : wrapped) { cloned.add(element); } @@ -138,22 +135,21 @@ public class FunctionalList implements Cloneable, IList { } @Override - public IList combineWith(IList rightList, BiFunction itemCombiner) { + public IList combineWith(final IList rightList, final BiFunction itemCombiner) { if (rightList == null) throw new NullPointerException("Target combine list must not be null"); - else if (itemCombiner == null) - throw new NullPointerException("Combiner must not be null"); + else if (itemCombiner == null) throw new NullPointerException("Combiner must not be null"); - IList returned = new FunctionalList<>(); + final IList returned = new FunctionalList<>(); // Get the iterator for the other list - Iterator rightIterator = rightList.toIterable().iterator(); + final Iterator rightIterator = rightList.toIterable().iterator(); - for (Iterator leftIterator = wrapped.iterator(); leftIterator.hasNext() + for (final Iterator leftIterator = wrapped.iterator(); leftIterator.hasNext() && rightIterator.hasNext();) { // Add the transformed items to the result list - E leftVal = leftIterator.next(); - T rightVal = rightIterator.next(); + final E leftVal = leftIterator.next(); + final T rightVal = rightIterator.next(); returned.add(itemCombiner.apply(leftVal, rightVal)); } @@ -162,7 +158,7 @@ public class FunctionalList implements Cloneable, IList { } @Override - public boolean contains(E item) { + public boolean contains(final E item) { // Check if any items in the list match the provided item return this.anyMatch(item::equals); } @@ -176,17 +172,15 @@ public class FunctionalList implements Cloneable, IList { } @Override - public IList flatMap(Function> expander) { - if (expander == null) - throw new NullPointerException("Expander must not be null"); + public IList flatMap(final Function> expander) { + if (expander == null) throw new NullPointerException("Expander must not be null"); - IList returned = new FunctionalList<>(this.wrapped.size()); + final IList returned = new FunctionalList<>(this.wrapped.size()); forEach(element -> { - IList expandedElement = expander.apply(element); + final IList expandedElement = expander.apply(element); - if (expandedElement == null) - throw new NullPointerException("Expander returned null list"); + if (expandedElement == null) throw new NullPointerException("Expander returned null list"); // Add each element to the returned list expandedElement.forEach(returned::add); @@ -196,21 +190,19 @@ public class FunctionalList implements Cloneable, IList { } @Override - public void forEach(Consumer action) { - if (action == null) - throw new NullPointerException("Action is null"); + public void forEach(final Consumer action) { + if (action == null) throw new NullPointerException("Action is null"); wrapped.forEach(action); } @Override - public void forEachIndexed(BiConsumer indexedAction) { - if (indexedAction == null) - throw new NullPointerException("Action must not be null"); + public void forEachIndexed(final BiConsumer indexedAction) { + if (indexedAction == null) throw new NullPointerException("Action must not be null"); // This is held b/c ref'd variables must be final/effectively // final - IHolder currentIndex = new Identity<>(0); + final IHolder currentIndex = new Identity<>(0); wrapped.forEach((element) -> { // Call the action with the index and the value @@ -222,7 +214,7 @@ public class FunctionalList implements Cloneable, IList { } @Override - public E getByIndex(int index) { + public E getByIndex(final int index) { return wrapped.get(index); } @@ -236,11 +228,10 @@ public class FunctionalList implements Cloneable, IList { } @Override - public IList getMatching(Predicate predicate) { - if (predicate == null) - throw new NullPointerException("Predicate must not be null"); + public IList getMatching(final Predicate predicate) { + if (predicate == null) throw new NullPointerException("Predicate must not be null"); - IList returned = new FunctionalList<>(); + final IList returned = new FunctionalList<>(); wrapped.forEach((element) -> { if (predicate.test(element)) { @@ -266,16 +257,15 @@ public class FunctionalList implements Cloneable, IList { /* * Check if a partition has room for another item */ - private Boolean isPartitionFull(int numberPerPartition, IHolder> currentPartition) { + private Boolean isPartitionFull(final int numberPerPartition, final IHolder> currentPartition) { return currentPartition.unwrap((partition) -> partition.getSize() >= numberPerPartition); } @Override - public IList map(Function elementTransformer) { - if (elementTransformer == null) - throw new NullPointerException("Transformer must be not null"); + public IList map(final Function elementTransformer) { + if (elementTransformer == null) throw new NullPointerException("Transformer must be not null"); - IList returned = new FunctionalList<>(this.wrapped.size()); + final IList returned = new FunctionalList<>(this.wrapped.size()); forEach(element -> { // Add the transformed item to the result @@ -286,23 +276,23 @@ public class FunctionalList implements Cloneable, IList { } @Override - public IList> pairWith(IList rightList) { + public IList> pairWith(final IList rightList) { return combineWith(rightList, Pair::new); } @Override - public IList> partition(int numberPerPartition) { + public IList> partition(final int numberPerPartition) { if (numberPerPartition < 1 || numberPerPartition > wrapped.size()) { - String fmt = "%s is an invalid partition size. Must be between 1 and %d"; - String msg = String.format(fmt, numberPerPartition, wrapped.size()); + final String fmt = "%s is an invalid partition size. Must be between 1 and %d"; + final String msg = String.format(fmt, numberPerPartition, wrapped.size()); throw new IllegalArgumentException(msg); } - IList> returned = new FunctionalList<>(); + final IList> returned = new FunctionalList<>(); // The current partition being filled - IHolder> currentPartition = new Identity<>(new FunctionalList<>()); + final IHolder> currentPartition = new Identity<>(new FunctionalList<>()); this.forEach(element -> { if (isPartitionFull(numberPerPartition, currentPartition)) { @@ -321,30 +311,28 @@ public class FunctionalList implements Cloneable, IList { } @Override - public void prepend(E item) { + public void prepend(final E item) { wrapped.add(0, item); } @Override - public E randItem(Function rnd) { - if (rnd == null) - throw new NullPointerException("Random source must not be null"); + public E randItem(final Function rnd) { + if (rnd == null) throw new NullPointerException("Random source must not be null"); - int randomIndex = rnd.apply(wrapped.size()); + final int randomIndex = rnd.apply(wrapped.size()); return wrapped.get(randomIndex); } @Override - public F reduceAux(T initialValue, BiFunction stateAccumulator, - Function resultTransformer) { + public F reduceAux(final T initialValue, final BiFunction stateAccumulator, + final Function resultTransformer) { if (stateAccumulator == null) throw new NullPointerException("Accumulator must not be null"); - else if (resultTransformer == null) - throw new NullPointerException("Transformer must not be null"); + else if (resultTransformer == null) throw new NullPointerException("Transformer must not be null"); // The current collapsed list - IHolder currentState = new Identity<>(initialValue); + final IHolder currentState = new Identity<>(initialValue); wrapped.forEach(element -> { // Accumulate a new value into the state @@ -356,15 +344,14 @@ public class FunctionalList implements Cloneable, IList { } @Override - public boolean removeIf(Predicate removePredicate) { - if (removePredicate == null) - throw new NullPointerException("Predicate must be non-null"); + public boolean removeIf(final Predicate removePredicate) { + if (removePredicate == null) throw new NullPointerException("Predicate must be non-null"); return wrapped.removeIf(removePredicate); } @Override - public void removeMatching(E desiredElement) { + public void removeMatching(final E desiredElement) { removeIf(element -> element.equals(desiredElement)); } @@ -374,9 +361,9 @@ public class FunctionalList implements Cloneable, IList { } @Override - public E search(E searchKey, Comparator comparator) { + public E search(final E searchKey, final Comparator comparator) { // Search our internal list - int foundIndex = Collections.binarySearch(wrapped, searchKey, comparator); + final int foundIndex = Collections.binarySearch(wrapped, searchKey, comparator); if (foundIndex >= 0) // We found a matching element return wrapped.get(foundIndex); @@ -386,7 +373,7 @@ public class FunctionalList implements Cloneable, IList { } @Override - public void sort(Comparator comparator) { + public void sort(final Comparator comparator) { // sb.deleteCharAt(sb.length() - 2); Collections.sort(wrapped, comparator); } @@ -397,7 +384,7 @@ public class FunctionalList implements Cloneable, IList { } @Override - public E[] toArray(E[] arrType) { + public E[] toArray(final E[] arrType) { return wrapped.toArray(arrType); } @@ -408,20 +395,18 @@ public class FunctionalList implements Cloneable, IList { @Override public String toString() { - int lSize = getSize(); + final int lSize = getSize(); - if (lSize == 0) - return "()"; + if (lSize == 0) return "()"; - StringBuilder sb = new StringBuilder("("); - Iterator itr = toIterable().iterator(); - E itm = itr.next(); + final StringBuilder sb = new StringBuilder("("); + final Iterator itr = toIterable().iterator(); + final E itm = itr.next(); int i = 0; - if (lSize == 1) - return "(" + itm + ")"; + if (lSize == 1) return "(" + itm + ")"; - for (E item : toIterable()) { + for (final E item : toIterable()) { sb.append(item.toString()); if (i < lSize - 1) { diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java index 62c39af..c4f0ff1 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java @@ -1,13 +1,13 @@ package bjc.utils.funcdata; -import bjc.utils.data.IPair; - import java.util.HashMap; import java.util.Map; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; +import bjc.utils.data.IPair; + /** * Basic implementation of {@link IMap} * @@ -35,10 +35,10 @@ public class FunctionalMap implements IMap... entries) { + public FunctionalMap(final IPair... entries) { this(); - for (IPair entry : entries) { + for (final IPair entry : entries) { entry.doWith((key, val) -> { wrappedMap.put(key, val); }); @@ -51,9 +51,8 @@ public class FunctionalMap implements IMap wrap) { - if (wrap == null) - throw new NullPointerException("Map to wrap must not be null"); + public FunctionalMap(final Map wrap) { + if (wrap == null) throw new NullPointerException("Map to wrap must not be null"); wrappedMap = wrap; } @@ -64,7 +63,7 @@ public class FunctionalMap implements IMap implements IMap action) { + public void forEach(final BiConsumer action) { wrappedMap.forEach(action); } @Override - public void forEachKey(Consumer action) { + public void forEachKey(final Consumer action) { wrappedMap.keySet().forEach(action); } @Override - public void forEachValue(Consumer action) { + public void forEachValue(final Consumer action) { wrappedMap.values().forEach(action); } @Override - public ValueType get(KeyType key) { - if (key == null) - throw new NullPointerException("Key must not be null"); + public ValueType get(final KeyType key) { + if (key == null) throw new NullPointerException("Key must not be null"); if (!wrappedMap.containsKey(key)) { - String msg = String.format("Key %s is not present in the map", key); + final String msg = String.format("Key %s is not present in the map", key); throw new IllegalArgumentException(msg); } @@ -109,7 +107,7 @@ public class FunctionalMap implements IMap keyList() { - FunctionalList keys = new FunctionalList<>(); + final FunctionalList keys = new FunctionalList<>(); wrappedMap.keySet().forEach(key -> { keys.add(key); @@ -119,23 +117,21 @@ public class FunctionalMap implements IMap IMap transform(Function transformer) { - if (transformer == null) - throw new NullPointerException("Transformer must not be null"); + public IMap transform(final Function transformer) { + if (transformer == null) throw new NullPointerException("Transformer must not be null"); return new TransformedValueMap<>(this, transformer); } @Override - public ValueType put(KeyType key, ValueType val) { - if (key == null) - throw new NullPointerException("Key must not be null"); + public ValueType put(final KeyType key, final ValueType val) { + if (key == null) throw new NullPointerException("Key must not be null"); return wrappedMap.put(key, val); } @Override - public ValueType remove(KeyType key) { + public ValueType remove(final KeyType key) { return wrappedMap.remove(key); } @@ -146,7 +142,7 @@ public class FunctionalMap implements IMap valueList() { - FunctionalList values = new FunctionalList<>(); + final FunctionalList values = new FunctionalList<>(); wrappedMap.values().forEach(value -> { values.add(value); @@ -159,26 +155,21 @@ public class FunctionalMap implements IMap other = (FunctionalMap) obj; + final FunctionalMap other = (FunctionalMap) obj; if (wrappedMap == null) { - if (other.wrappedMap != null) - return false; - } else if (!wrappedMap.equals(other.wrappedMap)) - return false; + if (other.wrappedMap != null) return false; + } else if (!wrappedMap.equals(other.wrappedMap)) return false; return true; } } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalStringTokenizer.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalStringTokenizer.java index 4723bcd..e068b46 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalStringTokenizer.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalStringTokenizer.java @@ -18,9 +18,8 @@ public class FunctionalStringTokenizer { * The string to create a tokenizer from. * @return A new tokenizer that splits the provided string on spaces. */ - public static FunctionalStringTokenizer fromString(String strang) { - if (strang == null) - throw new NullPointerException("String to tokenize must be non-null"); + public static FunctionalStringTokenizer fromString(final String strang) { + if (strang == null) throw new NullPointerException("String to tokenize must be non-null"); return new FunctionalStringTokenizer(new StringTokenizer(strang, " ")); } @@ -28,7 +27,7 @@ public class FunctionalStringTokenizer { /* * The string tokenizer being driven */ - private StringTokenizer input; + private final StringTokenizer input; /** * Create a functional string tokenizer from a given string @@ -36,9 +35,8 @@ public class FunctionalStringTokenizer { * @param inp * The string to tokenize */ - public FunctionalStringTokenizer(String inp) { - if (inp == null) - throw new NullPointerException("String to tokenize must be non-null"); + public FunctionalStringTokenizer(final String inp) { + if (inp == null) throw new NullPointerException("String to tokenize must be non-null"); this.input = new StringTokenizer(inp); } @@ -52,11 +50,10 @@ public class FunctionalStringTokenizer { * @param seperators * The set of separating tokens to use for splitting */ - public FunctionalStringTokenizer(String input, String seperators) { + public FunctionalStringTokenizer(final String input, final String seperators) { if (input == null) throw new NullPointerException("String to tokenize must not be null"); - else if (seperators == null) - throw new NullPointerException("Tokens to split on must not be null"); + else if (seperators == null) throw new NullPointerException("Tokens to split on must not be null"); this.input = new StringTokenizer(input, seperators); } @@ -67,9 +64,8 @@ public class FunctionalStringTokenizer { * @param toWrap * The non-functional string tokenizer to wrap */ - public FunctionalStringTokenizer(StringTokenizer toWrap) { - if (toWrap == null) - throw new NullPointerException("Wrapped tokenizer must not be null"); + public FunctionalStringTokenizer(final StringTokenizer toWrap) { + if (toWrap == null) throw new NullPointerException("Wrapped tokenizer must not be null"); this.input = toWrap; } @@ -80,9 +76,8 @@ public class FunctionalStringTokenizer { * @param action * The action to execute for each token */ - public void forEachToken(Consumer action) { - if (action == null) - throw new NullPointerException("Action must not be null"); + public void forEachToken(final Consumer action) { + if (action == null) throw new NullPointerException("Action must not be null"); while (input.hasMoreTokens()) { action.accept(input.nextToken()); @@ -128,7 +123,7 @@ public class FunctionalStringTokenizer { * @return This tokenizer, converted into a list of strings */ public IList toList() { - return toList((String element) -> element); + return toList((final String element) -> element); } /** @@ -142,15 +137,14 @@ public class FunctionalStringTokenizer { * The function to use to convert tokens. * @return A list containing all of the converted tokens. */ - public IList toList(Function transformer) { - if (transformer == null) - throw new NullPointerException("Transformer must not be null"); + public IList toList(final Function transformer) { + if (transformer == null) throw new NullPointerException("Transformer must not be null"); - IList returned = new FunctionalList<>(); + final IList returned = new FunctionalList<>(); // Add each token to the list after transforming it forEachToken(token -> { - E transformedToken = transformer.apply(token); + final E transformedToken = transformer.apply(token); returned.add(transformedToken); }); diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IList.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IList.java index d92d564..de48d6f 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IList.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IList.java @@ -1,7 +1,5 @@ package bjc.utils.funcdata; -import bjc.utils.data.IPair; - import java.util.Comparator; import java.util.Iterator; import java.util.function.BiConsumer; @@ -11,6 +9,8 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collector; +import bjc.utils.data.IPair; + /** * A wrapper over another list that provides functional operations over it. * @@ -37,7 +37,7 @@ public interface IList extends Iterable { * @return True if every item was successfully added to the list, false * otherwise */ - default boolean addAll(IList items) { + default boolean addAll(final IList items) { return items.map(this::add).anyMatch(bl -> bl == false); } @@ -46,16 +46,16 @@ public interface IList extends Iterable { * * @param items * The array of items to add. - * + * * @return True if every item was successfully added to the list, false * otherwise. */ @SuppressWarnings("unchecked") - default boolean addAll(ContainedType... items) { + default boolean addAll(final ContainedType... items) { boolean succ = true; - for(ContainedType item : items) { - boolean addSucc = add(item); + for (final ContainedType item : items) { + final boolean addSucc = add(item); succ = succ ? addSucc : false; } @@ -96,10 +96,10 @@ public interface IList extends Iterable { * @return The reduced list */ default ReducedType collect( - Collector collector) { - BiConsumer accumulator = collector.accumulator(); + final Collector collector) { + final BiConsumer accumulator = collector.accumulator(); - StateType initial = collector.supplier().get(); + final StateType initial = collector.supplier().get(); return reduceAux(initial, (value, state) -> { accumulator.accept(state, value); @@ -266,8 +266,8 @@ public interface IList extends Iterable { * The items to prepend to the list. */ @SuppressWarnings("unchecked") - default void prependAll(ContainedType... items) { - for(ContainedType item : items) { + default void prependAll(final ContainedType... items) { + for (final ContainedType item : items) { prepend(item); } } 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 e58409e..0ee7375 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java @@ -11,7 +11,7 @@ import java.util.function.Function; * * @param * The type of this map's keys. - * + * * @param * The type of this map's values. */ @@ -30,7 +30,7 @@ public interface IMap { * @param action * The action to perform on each key in the map. */ - default void forEachKey(Consumer action) { + default void forEachKey(final Consumer action) { forEach((key, val) -> action.accept(key)); } @@ -40,7 +40,7 @@ public interface IMap { * @param action * The action to perform on each value in the map. */ - default void forEachValue(Consumer action) { + default void forEachValue(final Consumer action) { forEach((key, val) -> action.accept(val)); } @@ -49,7 +49,7 @@ public interface IMap { * * @param key * The key to check. - * + * * @return Whether or not the map contains the key. */ boolean containsKey(KeyType key); @@ -59,7 +59,7 @@ public interface IMap { * * @param key * The key to look for a value under. - * + * * @return The value of the key. */ ValueType get(KeyType key); @@ -70,17 +70,17 @@ public interface IMap { * * @param key * The key to attempt to retrieve. - * + * * @param defaultValue * The value to return if the key doesn't exist. - * + * * @return The value associated with the key, or the default value if * the key doesn't exist. */ - default ValueType getOrDefault(KeyType key, ValueType defaultValue) { + default ValueType getOrDefault(final KeyType key, final ValueType defaultValue) { try { return get(key); - } catch (IllegalArgumentException iaex) { + } catch (final IllegalArgumentException iaex) { /* * We don't care about this, because it indicates a key * is missing. @@ -94,10 +94,10 @@ public interface IMap { * * @param key * The key to put the value under. - * + * * @param val * The value to add. - * + * * @return The previous value of the key in the map, or null if the key * wasn't in the map. However, note that it may also return null * if the key was set to null. @@ -133,13 +133,13 @@ public interface IMap { * * @param * The new type of returned values. - * + * * @param transformer * The function to use to transform values. - * + * * @return The map where each value will be transformed after lookup. */ - default IMap transform(Function transformer) { + default IMap transform(final Function transformer) { return new TransformedValueMap<>(this, transformer); } @@ -156,7 +156,7 @@ public interface IMap { * * @param key * The key to remove from the map. - * + * * @return The previous value for the key in the map, or null if the key * wasn't in the class. NOTE: Just because you received null, * doesn't mean the map wasn't changed. It may mean that someone @@ -177,9 +177,9 @@ public interface IMap { * @return A list of values in this map. */ default IList valueList() { - IList returns = new FunctionalList<>(); + final IList returns = new FunctionalList<>(); - for (KeyType key : keyList()) { + for (final KeyType key : keyList()) { returns.add(get(key)); } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/SentryList.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/SentryList.java index f52a286..c322743 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/SentryList.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/SentryList.java @@ -4,10 +4,11 @@ import java.util.List; /** * A list that logs when items are inserted into it. - * + * * @author bjculkin * - * @param The type of item in the list. + * @param + * The type of item in the list. */ public class SentryList extends FunctionalList { /** @@ -19,19 +20,19 @@ public class SentryList extends FunctionalList { /** * Create a new sentry list backed by an existing list. - * + * * @param backing * The backing list. */ - public SentryList(List backing) { + public SentryList(final List backing) { super(backing); } @Override - public boolean add(T item) { - boolean val = super.add(item); + public boolean add(final T item) { + final boolean val = super.add(item); - if(val) { + if (val) { System.out.println("Added item (" + item + ") to list"); } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java index 43bd4d0..0ca1fdc 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java @@ -17,10 +17,11 @@ import java.util.function.Function; * The type of the transformed values */ final class TransformedValueMap implements IMap { - private IMap backing; - private Function transformer; + private final IMap backing; + private final Function transformer; - public TransformedValueMap(IMap backingMap, Function transform) { + public TransformedValueMap(final IMap backingMap, + final Function transform) { backing = backingMap; transformer = transform; } @@ -31,7 +32,7 @@ final class TransformedValueMap implements IMap implements IMap action) { + public void forEach(final BiConsumer action) { backing.forEach((key, value) -> { action.accept(key, transformer.apply(value)); }); } @Override - public void forEachKey(Consumer action) { + public void forEachKey(final Consumer action) { backing.forEachKey(action); } @Override - public void forEachValue(Consumer action) { + public void forEachValue(final Consumer action) { backing.forEachValue(value -> { action.accept(transformer.apply(value)); }); } @Override - public NewValue get(OldKey key) { + public NewValue get(final OldKey key) { return transformer.apply(backing.get(key)); } @@ -75,17 +76,17 @@ final class TransformedValueMap implements IMap IMap transform(Function transform) { + public IMap transform(final Function transform) { return new TransformedValueMap<>(this, transform); } @Override - public NewValue put(OldKey key, NewValue value) { + public NewValue put(final OldKey key, final NewValue value) { throw new UnsupportedOperationException("Can't add items to transformed map"); } @Override - public NewValue remove(OldKey key) { + public NewValue remove(final OldKey key) { return transformer.apply(backing.remove(key)); } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTree.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTree.java index e85ae34..8acd477 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTree.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTree.java @@ -1,13 +1,13 @@ package bjc.utils.funcdata.bst; -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.IList; - import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.function.Predicate; +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.IList; + /** * A binary search tree, with some mild support for functional traversal. * @@ -20,7 +20,7 @@ public class BinarySearchTree { /* * The comparator for use in ordering items */ - private Comparator comparator; + private final Comparator comparator; /* * The current count of elements in the tree @@ -38,9 +38,8 @@ public class BinarySearchTree { * @param cmp * The thing to use for comparing elements */ - public BinarySearchTree(Comparator cmp) { - if (cmp == null) - throw new NullPointerException("Comparator must not be null"); + public BinarySearchTree(final Comparator cmp) { + if (cmp == null) throw new NullPointerException("Comparator must not be null"); elementCount = 0; comparator = cmp; @@ -52,7 +51,7 @@ public class BinarySearchTree { * @param element * The data to add to the binary search tree. */ - public void addNode(T element) { + public void addNode(final T element) { elementCount++; if (root == null) { @@ -73,7 +72,7 @@ public class BinarySearchTree { * The distance from the pivot * @return Whether the adjusted pivot is with the list */ - private boolean adjustedPivotInBounds(IList elements, int pivot, int pivotAdjustment) { + private boolean adjustedPivotInBounds(final IList elements, final int pivot, final int pivotAdjustment) { return pivot - pivotAdjustment >= 0 && pivot + pivotAdjustment < elements.getSize(); } @@ -83,7 +82,7 @@ public class BinarySearchTree { * Takes O(N) time, but also O(N) space. */ public void balance() { - IList elements = new FunctionalList<>(); + final IList elements = new FunctionalList<>(); // Add each element to the list in sorted order root.forEach(TreeLinearizationMethod.INORDER, element -> elements.add(element)); @@ -92,7 +91,7 @@ public class BinarySearchTree { root = null; // Set up the pivot and adjustment for readding elements - int pivot = elements.getSize() / 2; + final int pivot = elements.getSize() / 2; int pivotAdjustment = 0; // Add elements until there aren't any left @@ -129,7 +128,7 @@ public class BinarySearchTree { * @param element * The node to delete */ - public void deleteNode(T element) { + public void deleteNode(final T element) { elementCount--; root.delete(element, comparator); @@ -151,7 +150,7 @@ public class BinarySearchTree { * The node to check the presence of for the tree. * @return Whether or not the node is in the tree. */ - public boolean isInTree(T element) { + public boolean isInTree(final T element) { return root.contains(element, comparator); } @@ -163,11 +162,10 @@ public class BinarySearchTree { * @param traversalPredicate * The function to use until it fails */ - public void traverse(TreeLinearizationMethod linearizationMethod, Predicate traversalPredicate) { + public void traverse(final TreeLinearizationMethod linearizationMethod, final Predicate traversalPredicate) { if (linearizationMethod == null) throw new NullPointerException("Linearization method must not be null"); - else if (traversalPredicate == null) - throw new NullPointerException("Predicate must not be nulls"); + else if (traversalPredicate == null) throw new NullPointerException("Predicate must not be nulls"); root.forEach(linearizationMethod, traversalPredicate); } @@ -176,7 +174,7 @@ public class BinarySearchTree { * Remove all soft-deleted nodes from the tree. */ public void trim() { - List nodes = new ArrayList<>(elementCount); + final List nodes = new ArrayList<>(elementCount); // Add all non-soft deleted nodes to the tree in insertion order traverse(TreeLinearizationMethod.PREORDER, node -> { @@ -201,28 +199,22 @@ public class BinarySearchTree { final int prime = 31; int result = 1; result = prime * result + elementCount; - result = prime * result + ((root == null) ? 0 : root.hashCode()); + result = prime * result + (root == null ? 0 : root.hashCode()); return result; } @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (!(obj instanceof BinarySearchTree)) - return false; + public boolean equals(final Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (!(obj instanceof BinarySearchTree)) return false; - BinarySearchTree other = (BinarySearchTree) obj; + final BinarySearchTree other = (BinarySearchTree) obj; - if (elementCount != other.elementCount) - return false; + if (elementCount != other.elementCount) return false; if (root == null) { - if (other.root != null) - return false; - } else if (!root.equals(other.root)) - return false; + if (other.root != null) return false; + } else if (!root.equals(other.root)) return false; return true; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeLeaf.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeLeaf.java index fe30dad..8c4f3f0 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeLeaf.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeLeaf.java @@ -30,25 +30,24 @@ public class BinarySearchTreeLeaf implements ITreePart { * @param element * The data for the leaf to hold. */ - public BinarySearchTreeLeaf(T element) { + public BinarySearchTreeLeaf(final T element) { data = element; } @Override - public void add(T element, Comparator comparator) { + public void add(final T element, final Comparator comparator) { throw new IllegalArgumentException("Can't add to a leaf."); } @Override - public E collapse(Function leafTransformer, BiFunction branchCollapser) { - if (leafTransformer == null) - throw new NullPointerException("Transformer must not be null"); + public E collapse(final Function leafTransformer, final BiFunction branchCollapser) { + if (leafTransformer == null) throw new NullPointerException("Transformer must not be null"); return leafTransformer.apply(data); } @Override - public boolean contains(T element, Comparator comparator) { + public boolean contains(final T element, final Comparator comparator) { return this.data.equals(element); } @@ -58,16 +57,15 @@ public class BinarySearchTreeLeaf implements ITreePart { } @Override - public void delete(T element, Comparator comparator) { + public void delete(final T element, final Comparator comparator) { if (data.equals(element)) { isDeleted = true; } } @Override - public boolean directedWalk(DirectedWalkFunction treeWalker) { - if (treeWalker == null) - throw new NullPointerException("Tree walker must not be null"); + public boolean directedWalk(final DirectedWalkFunction treeWalker) { + if (treeWalker == null) throw new NullPointerException("Tree walker must not be null"); switch (treeWalker.walk(data)) { case SUCCESS: @@ -82,9 +80,9 @@ public class BinarySearchTreeLeaf implements ITreePart { } @Override - public boolean forEach(TreeLinearizationMethod linearizationMethod, Predicate traversalPredicate) { - if (traversalPredicate == null) - throw new NullPointerException("Predicate must not be null"); + public boolean forEach(final TreeLinearizationMethod linearizationMethod, + final Predicate traversalPredicate) { + if (traversalPredicate == null) throw new NullPointerException("Predicate must not be null"); return traversalPredicate.test(data); } @@ -98,29 +96,23 @@ public class BinarySearchTreeLeaf implements ITreePart { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((data == null) ? 0 : data.hashCode()); + result = prime * result + (data == null ? 0 : data.hashCode()); result = prime * result + (isDeleted ? 1231 : 1237); return result; } @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (!(obj instanceof BinarySearchTreeLeaf)) - return false; + public boolean equals(final Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (!(obj instanceof BinarySearchTreeLeaf)) return false; - BinarySearchTreeLeaf other = (BinarySearchTreeLeaf) obj; + final BinarySearchTreeLeaf other = (BinarySearchTreeLeaf) obj; if (data == null) { - if (other.data != null) - return false; - } else if (!data.equals(other.data)) - return false; - if (isDeleted != other.isDeleted) - return false; + if (other.data != null) return false; + } else if (!data.equals(other.data)) return false; + if (isDeleted != other.isDeleted) return false; return true; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeNode.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeNode.java index 527f221..9f45c17 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeNode.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/bst/BinarySearchTreeNode.java @@ -1,15 +1,15 @@ package bjc.utils.funcdata.bst; -import java.util.Comparator; -import java.util.function.BiFunction; -import java.util.function.Function; -import java.util.function.Predicate; - import static bjc.utils.funcdata.bst.DirectedWalkFunction.DirectedWalkResult.FAILURE; import static bjc.utils.funcdata.bst.DirectedWalkFunction.DirectedWalkResult.LEFT; import static bjc.utils.funcdata.bst.DirectedWalkFunction.DirectedWalkResult.RIGHT; import static bjc.utils.funcdata.bst.DirectedWalkFunction.DirectedWalkResult.SUCCESS; +import java.util.Comparator; +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.function.Predicate; + /** * A binary node in a tree. * @@ -39,16 +39,15 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { * @param rght * The right child of this node. */ - public BinarySearchTreeNode(T element, ITreePart lft, ITreePart rght) { + public BinarySearchTreeNode(final T element, final ITreePart lft, final ITreePart rght) { super(element); this.left = lft; this.right = rght; } @Override - public void add(T element, Comparator comparator) { - if (comparator == null) - throw new NullPointerException("Comparator must not be null"); + public void add(final T element, final Comparator comparator) { + if (comparator == null) throw new NullPointerException("Comparator must not be null"); switch (comparator.compare(data, element)) { case -1: @@ -61,8 +60,7 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { case 0: if (isDeleted) { isDeleted = false; - } else - throw new IllegalArgumentException("Can't add duplicate values"); + } else throw new IllegalArgumentException("Can't add duplicate values"); break; case 1: if (right == null) { @@ -77,19 +75,20 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { } @Override - public E collapse(Function nodeCollapser, BiFunction branchCollapser) { + public E collapse(final Function nodeCollapser, final BiFunction branchCollapser) { if (nodeCollapser == null || branchCollapser == null) throw new NullPointerException("Collapser must not be null"); - E collapsedNode = nodeCollapser.apply(data); + final E collapsedNode = nodeCollapser.apply(data); if (left != null) { - E collapsedLeftBranch = left.collapse(nodeCollapser, branchCollapser); + final E collapsedLeftBranch = left.collapse(nodeCollapser, branchCollapser); if (right != null) { - E collapsedRightBranch = right.collapse(nodeCollapser, branchCollapser); + final E collapsedRightBranch = right.collapse(nodeCollapser, branchCollapser); - E collapsedBranches = branchCollapser.apply(collapsedLeftBranch, collapsedRightBranch); + final E collapsedBranches = branchCollapser.apply(collapsedLeftBranch, + collapsedRightBranch); return branchCollapser.apply(collapsedNode, collapsedBranches); } @@ -98,7 +97,7 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { } if (right != null) { - E collapsedRightBranch = right.collapse(nodeCollapser, branchCollapser); + final E collapsedRightBranch = right.collapse(nodeCollapser, branchCollapser); return branchCollapser.apply(collapsedNode, collapsedRightBranch); } @@ -107,9 +106,8 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { } @Override - public boolean contains(T element, Comparator comparator) { - if (comparator == null) - throw new NullPointerException("Comparator must not be null"); + public boolean contains(final T element, final Comparator comparator) { + if (comparator == null) throw new NullPointerException("Comparator must not be null"); return directedWalk(currentElement -> { switch (comparator.compare(element, currentElement)) { @@ -126,9 +124,8 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { } @Override - public void delete(T element, Comparator comparator) { - if (comparator == null) - throw new NullPointerException("Comparator must not be null"); + public void delete(final T element, final Comparator comparator) { + if (comparator == null) throw new NullPointerException("Comparator must not be null"); directedWalk(currentElement -> { switch (comparator.compare(data, element)) { @@ -146,9 +143,8 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { } @Override - public boolean directedWalk(DirectedWalkFunction treeWalker) { - if (treeWalker == null) - throw new NullPointerException("Walker must not be null"); + public boolean directedWalk(final DirectedWalkFunction treeWalker) { + if (treeWalker == null) throw new NullPointerException("Walker must not be null"); switch (treeWalker.walk(data)) { case SUCCESS: @@ -165,11 +161,11 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { } @Override - public boolean forEach(TreeLinearizationMethod linearizationMethod, Predicate traversalPredicate) { + public boolean forEach(final TreeLinearizationMethod linearizationMethod, + final Predicate traversalPredicate) { if (linearizationMethod == null) throw new NullPointerException("Linearization method must not be null"); - else if (traversalPredicate == null) - throw new NullPointerException("Predicate must not be null"); + else if (traversalPredicate == null) throw new NullPointerException("Predicate must not be null"); switch (linearizationMethod) { case PREORDER: @@ -184,48 +180,41 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { } } - private boolean inorderTraverse(TreeLinearizationMethod linearizationMethod, Predicate traversalPredicate) { - if (!traverseLeftBranch(linearizationMethod, traversalPredicate)) - return false; + private boolean inorderTraverse(final TreeLinearizationMethod linearizationMethod, + final Predicate traversalPredicate) { + if (!traverseLeftBranch(linearizationMethod, traversalPredicate)) return false; - if (!traverseElement(traversalPredicate)) - return false; + if (!traverseElement(traversalPredicate)) return false; - if (!traverseRightBranch(linearizationMethod, traversalPredicate)) - return false; + if (!traverseRightBranch(linearizationMethod, traversalPredicate)) return false; return true; } - private boolean postorderTraverse(TreeLinearizationMethod linearizationMethod, - Predicate traversalPredicate) { - if (!traverseLeftBranch(linearizationMethod, traversalPredicate)) - return false; + private boolean postorderTraverse(final TreeLinearizationMethod linearizationMethod, + final Predicate traversalPredicate) { + if (!traverseLeftBranch(linearizationMethod, traversalPredicate)) return false; - if (!traverseRightBranch(linearizationMethod, traversalPredicate)) - return false; + if (!traverseRightBranch(linearizationMethod, traversalPredicate)) return false; - if (!traverseElement(traversalPredicate)) - return false; + if (!traverseElement(traversalPredicate)) return false; return true; } - private boolean preorderTraverse(TreeLinearizationMethod linearizationMethod, Predicate traversalPredicate) { - if (!traverseElement(traversalPredicate)) - return false; + private boolean preorderTraverse(final TreeLinearizationMethod linearizationMethod, + final Predicate traversalPredicate) { + if (!traverseElement(traversalPredicate)) return false; - if (!traverseLeftBranch(linearizationMethod, traversalPredicate)) - return false; + if (!traverseLeftBranch(linearizationMethod, traversalPredicate)) return false; - if (!traverseRightBranch(linearizationMethod, traversalPredicate)) - return false; + if (!traverseRightBranch(linearizationMethod, traversalPredicate)) return false; return true; } - private boolean traverseElement(Predicate traversalPredicate) { + private boolean traverseElement(final Predicate traversalPredicate) { boolean nodeSuccesfullyTraversed; if (isDeleted) { @@ -237,8 +226,8 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { return nodeSuccesfullyTraversed; } - private boolean traverseLeftBranch(TreeLinearizationMethod linearizationMethod, - Predicate traversalPredicate) { + private boolean traverseLeftBranch(final TreeLinearizationMethod linearizationMethod, + final Predicate traversalPredicate) { boolean leftSuccesfullyTraversed; if (left == null) { @@ -250,8 +239,8 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { return leftSuccesfullyTraversed; } - private boolean traverseRightBranch(TreeLinearizationMethod linearizationMethod, - Predicate traversalPredicate) { + private boolean traverseRightBranch(final TreeLinearizationMethod linearizationMethod, + final Predicate traversalPredicate) { boolean rightSuccesfullyTraversed; if (right == null) { @@ -272,33 +261,26 @@ public class BinarySearchTreeNode extends BinarySearchTreeLeaf { public int hashCode() { final int prime = 31; int result = super.hashCode(); - result = prime * result + ((left == null) ? 0 : left.hashCode()); - result = prime * result + ((right == null) ? 0 : right.hashCode()); + result = prime * result + (left == null ? 0 : left.hashCode()); + result = prime * result + (right == null ? 0 : right.hashCode()); return result; } @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (!super.equals(obj)) - return false; - if (!(obj instanceof BinarySearchTreeNode)) - return false; + public boolean equals(final Object obj) { + if (this == obj) return true; + if (!super.equals(obj)) return false; + if (!(obj instanceof BinarySearchTreeNode)) return false; - BinarySearchTreeNode other = (BinarySearchTreeNode) obj; + final BinarySearchTreeNode other = (BinarySearchTreeNode) obj; if (left == null) { - if (other.left != null) - return false; - } else if (!left.equals(other.left)) - return false; + if (other.left != null) return false; + } else if (!left.equals(other.left)) return false; if (right == null) { - if (other.right != null) - return false; - } else if (!right.equals(other.right)) - return false; + if (other.right != null) return false; + } else if (!right.equals(other.right)) return false; return true; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/theory/Bifunctor.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/theory/Bifunctor.java index 5380b24..13c1709 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/theory/Bifunctor.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/theory/Bifunctor.java @@ -15,9 +15,9 @@ import java.util.function.Function; public interface Bifunctor { /** * Alias for functor mapping. - * + * * @author EVE - * + * * @param * @param * @param @@ -30,7 +30,7 @@ public interface Bifunctor { /** * Alias for left functor mapping. - * + * * @author EVE * * @param @@ -44,7 +44,7 @@ public interface Bifunctor { /** * Alias for right functor mapping. - * + * * @author EVE * * @param @@ -75,12 +75,12 @@ public interface Bifunctor { * @return A function that maps over both parts of the pair */ public default BifunctorMap bimap( - Function leftFunc, Function rightFunc) { - BifunctorMap bimappedFunc = (argPair) -> { - LeftBifunctorMap leftMapper = argPair.fmapLeft(leftFunc); + final Function leftFunc, final Function rightFunc) { + final BifunctorMap bimappedFunc = (argPair) -> { + final LeftBifunctorMap leftMapper = argPair.fmapLeft(leftFunc); - Bifunctor leftMappedFunctor = leftMapper.apply(argPair); - RightBifunctorMap rightMapper = leftMappedFunctor + final Bifunctor leftMappedFunctor = leftMapper.apply(argPair); + final RightBifunctorMap rightMapper = leftMappedFunctor .fmapRight(rightFunc); return rightMapper.apply(leftMappedFunctor); -- cgit v1.2.3