From 63d88eb8db1f7a6d5924ec2a8b7f462373d5ac9a Mon Sep 17 00:00:00 2001 From: bjculkin Date: Fri, 7 Apr 2017 10:51:31 -0400 Subject: Cleanup --- .../main/java/bjc/utils/data/CircularIterator.java | 6 +- .../src/main/java/bjc/utils/data/Either.java | 96 +++++++++++----------- .../src/main/java/bjc/utils/data/IHolder.java | 15 ++-- BJC-Utils2/src/main/java/bjc/utils/data/IPair.java | 8 +- BJC-Utils2/src/main/java/bjc/utils/data/ITree.java | 6 +- .../src/main/java/bjc/utils/data/Identity.java | 41 ++++----- BJC-Utils2/src/main/java/bjc/utils/data/Lazy.java | 40 +++++---- .../src/main/java/bjc/utils/data/LazyPair.java | 90 +++++++++++--------- .../src/main/java/bjc/utils/data/ListHolder.java | 31 ++++--- .../src/main/java/bjc/utils/data/Option.java | 42 +++++----- BJC-Utils2/src/main/java/bjc/utils/data/Pair.java | 61 +++++++++----- .../main/java/bjc/utils/data/SingleSupplier.java | 34 ++------ BJC-Utils2/src/main/java/bjc/utils/data/Tree.java | 88 ++++++++++++-------- 13 files changed, 297 insertions(+), 261 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/data') diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java b/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java index 1dffbc1..4b84243 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java @@ -63,10 +63,10 @@ public class CircularIterator implements Iterator { @Override public E next() { - if(!curr.hasNext()) { - if(doCircle) { + if (!curr.hasNext()) { + if (doCircle) curr = source.iterator(); - } else + else return curElm; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Either.java b/BJC-Utils2/src/main/java/bjc/utils/data/Either.java index 3ccc859..d07fbbe 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Either.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Either.java @@ -51,7 +51,7 @@ public class Either implements IPair { private boolean isLeft; private Either(LeftType left, RightType right) { - if(left == null) { + if (left == null) { rightVal = right; } else { leftVal = left; @@ -63,7 +63,8 @@ public class Either implements IPair { @Override public IPair bind( BiFunction> binder) { - if(binder == null) throw new NullPointerException("Binder must not be null"); + if (binder == null) + throw new NullPointerException("Binder must not be null"); return binder.apply(leftVal, rightVal); } @@ -71,9 +72,11 @@ public class Either implements IPair { @Override public IPair bindLeft( Function> leftBinder) { - if(leftBinder == null) throw new NullPointerException("Left binder must not be null"); + if (leftBinder == null) + throw new NullPointerException("Left binder must not be null"); - if(isLeft) return leftBinder.apply(leftVal); + if (isLeft) + return leftBinder.apply(leftVal); return new Either<>(null, rightVal); } @@ -81,9 +84,11 @@ public class Either implements IPair { @Override public IPair bindRight( Function> rightBinder) { - if(rightBinder == null) throw new NullPointerException("Right binder must not be null"); + if (rightBinder == null) + throw new NullPointerException("Right binder must not be null"); - if(isLeft) return new Either<>(leftVal, null); + if (isLeft) + return new Either<>(leftVal, null); return rightBinder.apply(rightVal); } @@ -93,15 +98,17 @@ public class Either implements IPair { IPair otherPair, BiFunction leftCombiner, BiFunction rightCombiner) { - if(otherPair == null) + if (otherPair == null) throw new NullPointerException("Other pair must not be null"); - else if(leftCombiner == null) + else if (leftCombiner == null) throw new NullPointerException("Left combiner must not be null"); - else if(rightCombiner == null) throw new NullPointerException("Right combiner must not be null"); + else if (rightCombiner == null) + throw new NullPointerException("Right combiner must not be null"); - if(isLeft) return otherPair.bind((otherLeft, otherRight) -> { - return new Either<>(leftCombiner.apply(leftVal, otherLeft), null); - }); + if (isLeft) + return otherPair.bind((otherLeft, otherRight) -> { + return new Either<>(leftCombiner.apply(leftVal, otherLeft), null); + }); return otherPair.bind((otherLeft, otherRight) -> { return new Either<>(null, rightCombiner.apply(rightVal, otherRight)); @@ -110,25 +117,30 @@ public class Either implements IPair { @Override public IPair mapLeft(Function mapper) { - if(mapper == null) throw new NullPointerException("Mapper must not be null"); + if (mapper == null) + throw new NullPointerException("Mapper must not be null"); - if(isLeft) return new Either<>(mapper.apply(leftVal), null); + if (isLeft) + return new Either<>(mapper.apply(leftVal), null); return new Either<>(null, rightVal); } @Override public IPair mapRight(Function mapper) { - if(mapper == null) throw new NullPointerException("Mapper must not be null"); + if (mapper == null) + throw new NullPointerException("Mapper must not be null"); - if(isLeft) return new Either<>(leftVal, null); + if (isLeft) + return new Either<>(leftVal, null); return new Either<>(null, mapper.apply(rightVal)); } @Override public MergedType merge(BiFunction merger) { - if(merger == null) throw new NullPointerException("Merger must not be null"); + if (merger == null) + throw new NullPointerException("Merger must not be null"); return merger.apply(leftVal, rightVal); } @@ -141,49 +153,41 @@ public class Either implements IPair { result = prime * result + (isLeft ? 1231 : 1237); result = prime * result + ((leftVal == null) ? 0 : leftVal.hashCode()); result = prime * result + ((rightVal == null) ? 0 : rightVal.hashCode()); - + return result; } @Override public boolean equals(Object obj) { - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof Either)) + return false; Either other = (Either) obj; - if(isLeft != other.isLeft) return false; + if (isLeft != other.isLeft) + return false; - if(leftVal == null) { - if(other.leftVal != null) return false; - } else if(!leftVal.equals(other.leftVal)) return false; + if (leftVal == null) { + if (other.leftVal != null) + return false; + } else if (!leftVal.equals(other.leftVal)) + return false; - if(rightVal == null) { - if(other.rightVal != null) return false; - } else if(!rightVal.equals(other.rightVal)) return false; + if (rightVal == null) { + if (other.rightVal != null) + return false; + } else if (!rightVal.equals(other.rightVal)) + return false; return true; } @Override public String toString() { - StringBuilder builder = new StringBuilder(); - - builder.append("Either ["); - - if(leftVal != null) { - builder.append("leftVal="); - builder.append(leftVal); - builder.append(", "); - } - - if(rightVal != null) { - builder.append("rightVal="); - builder.append(rightVal); - builder.append(", "); - } - - return builder.toString(); + return String.format("Either [leftVal='%s', rightVal='%s', isLeft=%s]", leftVal, rightVal, isLeft); } -} +} \ No newline at end of file diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/IHolder.java b/BJC-Utils2/src/main/java/bjc/utils/data/IHolder.java index 999f3da..1d380c8 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/IHolder.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/IHolder.java @@ -37,7 +37,7 @@ public interface IHolder extends Functor { * The action to apply to the value */ public default void doWith(Consumer action) { - transform((value) -> { + transform(value -> { action.accept(value); return value; @@ -47,9 +47,12 @@ public interface IHolder extends Functor { @Override default Function, Functor> fmap( Function func) { - return (argumentFunctor) -> { - if(!(argumentFunctor instanceof IHolder)) throw new IllegalArgumentException( - "This functor only supports mapping over instances of IHolder"); + return argumentFunctor -> { + if (!(argumentFunctor instanceof IHolder)) { + String msg = "This functor only supports mapping over instances of IHolder"; + + throw new IllegalArgumentException(msg); + } IHolder holder = (IHolder) argumentFunctor; @@ -59,7 +62,7 @@ public interface IHolder extends Functor { @Override public default ContainedType getValue() { - return unwrap((value) -> value); + return unwrap(value -> value); } /** @@ -122,7 +125,7 @@ public interface IHolder extends Functor { * @return The holder itself */ public default IHolder replace(ContainedType newValue) { - return transform((oldValue) -> { + return transform(oldValue -> { return newValue; }); } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/IPair.java b/BJC-Utils2/src/main/java/bjc/utils/data/IPair.java index 2dbd141..ae54a88 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/IPair.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/IPair.java @@ -109,9 +109,9 @@ public interface IPair extends Bifunctor Function, Bifunctor> fmapLeft( + default LeftBifunctorMap fmapLeft( Function func) { - return (argumentPair) -> { + return argumentPair -> { if(!(argumentPair instanceof IPair)) { String msg = "This function can only be applied to instances of IPair"; @@ -125,10 +125,10 @@ public interface IPair extends Bifunctor Function, Bifunctor> + default RightBifunctorMap fmapRight(Function func) { - return (argumentPair) -> { + return argumentPair -> { if(!(argumentPair instanceof IPair)) { String msg = "This function can only be applied to instances of IPair"; diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java b/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java index 2ccebae..166fe3f 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java @@ -78,7 +78,7 @@ public interface ITree { * @return A tree, with some nodes expanded into trees. */ default ITree flatMapTree(Function> mapper) { - return topDownTransform((dat) -> TopDownTransformResult.PUSHDOWN, (node) -> { + return topDownTransform(dat -> TopDownTransformResult.PUSHDOWN, node -> { if (node.getChildrenCount() > 0) { ITree parent = node.transformHead(mapper); @@ -100,7 +100,7 @@ public interface ITree { * @return The specified child of this tree. */ default ITree getChild(int childNo) { - return transformChild(childNo, (child) -> child); + return transformChild(childNo, child -> child); } /** @@ -116,7 +116,7 @@ public interface ITree { * @return The data stored in this node. */ default ContainedType getHead() { - return transformHead((head) -> head); + return transformHead(head -> head); } /** diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Identity.java b/BJC-Utils2/src/main/java/bjc/utils/data/Identity.java index 72fe68c..77e13cf 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Identity.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Identity.java @@ -41,41 +41,36 @@ public class Identity implements IHolder { return binder.apply(heldValue); } - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + + result = prime * result + ((heldValue == null) ? 0 : heldValue.hashCode()); + + return result; + } + @Override public boolean equals(Object obj) { if (this == obj) return true; - else if (obj == null) + if (obj == null) + return false; + if (!(obj instanceof Identity)) return false; - else if (getClass() != obj.getClass()) return false; Identity other = (Identity) obj; if (heldValue == null) { - if (other.heldValue != null) return false; - } else if (!heldValue.equals(other.heldValue)) return false; + if (other.heldValue != null) + return false; + } else if (!heldValue.equals(other.heldValue)) + return false; return true; } - @Override - public int hashCode() { - final int prime = 31; - - int result = 1; - - int fieldHash = heldValue == null ? 0 : heldValue.hashCode(); - - result = prime * result + fieldHash; - - return result; - } - @Override public Function> lift(Function func) { return (val) -> { @@ -90,7 +85,7 @@ public class Identity implements IHolder { @Override public String toString() { - return "holding[v=" + heldValue + "]"; + return String.format("Identity [heldValue=%s]", heldValue); } @Override diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Lazy.java b/BJC-Utils2/src/main/java/bjc/utils/data/Lazy.java index 2eb2cf3..719b11f 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Lazy.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Lazy.java @@ -62,7 +62,8 @@ public class Lazy implements IHolder { actions.forEach(pendingActions::add); Supplier supplier = () -> { - if (valueMaterialized) return heldValue; + if (valueMaterialized) + return heldValue; return valueSupplier.get(); }; @@ -74,7 +75,7 @@ public class Lazy implements IHolder { @Override public Function> lift(Function func) { - return (val) -> { + return val -> { return new Lazy<>(func.apply(val)); }; } @@ -93,16 +94,17 @@ public class Lazy implements IHolder { } return pendingActions.reduceAux(currVal, UnaryOperator::apply, - (value) -> mapper.apply(value)); + value -> mapper.apply(value)); }); } @Override public String toString() { if (valueMaterialized) { - if (actions.isEmpty()) return "value[v='" + heldValue + "']"; - - return "value[v='" + heldValue + "'] (has pending transforms)"; + if (actions.isEmpty()) + return String.format("value[v='%s']", heldValue); + else + return String.format("value[v='%s'] (has pending transforms)", heldValue); } return "(unmaterialized)"; @@ -123,7 +125,7 @@ public class Lazy implements IHolder { valueMaterialized = true; } - actions.forEach((action) -> { + actions.forEach(action -> { heldValue = action.apply(heldValue); }); @@ -146,25 +148,33 @@ public class Lazy implements IHolder { @Override public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null) return false; - if (getClass() != obj.getClass()) return false; + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof Lazy)) + return false; Lazy other = (Lazy) obj; - if (valueMaterialized != other.valueMaterialized) return false; + if (valueMaterialized != other.valueMaterialized) + return false; if (valueMaterialized) { if (heldValue == null) { - if (other.heldValue != null) return false; - } else if (!heldValue.equals(other.heldValue)) return false; + if (other.heldValue != null) + return false; + } else if (!heldValue.equals(other.heldValue)) + return false; } else { return false; } if (actions == null) { - if (other.actions != null) return false; - } else if (actions.getSize() > 0 || other.actions.getSize() > 0) return false; + if (other.actions != null) + return false; + } else if (actions.getSize() > 0 || other.actions.getSize() > 0) + return false; return true; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java index ea49b4c..70768be 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java @@ -71,7 +71,8 @@ public class LazyPair implements IPair public IPair bindLeft( Function> leftBinder) { Supplier leftSupp = () -> { - if(leftMaterialized) return leftValue; + if (leftMaterialized) + return leftValue; return leftSupplier.get(); }; @@ -83,7 +84,8 @@ public class LazyPair implements IPair public IPair bindRight( Function> rightBinder) { Supplier rightSupp = () -> { - if(rightMaterialized) return rightValue; + if (rightMaterialized) + return rightValue; return rightSupplier.get(); }; @@ -98,15 +100,17 @@ public class LazyPair implements IPair BiFunction rightCombiner) { return otherPair.bind((otherLeft, otherRight) -> { return bind((leftVal, rightVal) -> { - return new LazyPair<>(leftCombiner.apply(leftVal, otherLeft), - rightCombiner.apply(rightVal, otherRight)); + CombinedLeft left = leftCombiner.apply(leftVal, otherLeft); + CombinedRight right = rightCombiner.apply(rightVal, otherRight); + + return new LazyPair<>(left, right); }); }); } @Override public LeftType getLeft() { - if(!leftMaterialized) { + if (!leftMaterialized) { leftValue = leftSupplier.get(); leftMaterialized = true; @@ -117,7 +121,7 @@ public class LazyPair implements IPair @Override public RightType getRight() { - if(!rightMaterialized) { + if (!rightMaterialized) { rightValue = rightSupplier.get(); rightMaterialized = true; @@ -129,13 +133,15 @@ public class LazyPair implements IPair @Override public IPair mapLeft(Function mapper) { Supplier leftSupp = () -> { - if(leftMaterialized) return mapper.apply(leftValue); + if (leftMaterialized) + return mapper.apply(leftValue); return mapper.apply(leftSupplier.get()); }; Supplier rightSupp = () -> { - if(rightMaterialized) return rightValue; + if (rightMaterialized) + return rightValue; return rightSupplier.get(); }; @@ -146,13 +152,15 @@ public class LazyPair implements IPair @Override public IPair mapRight(Function mapper) { Supplier leftSupp = () -> { - if(leftMaterialized) return leftValue; + if (leftMaterialized) + return leftValue; return leftSupplier.get(); }; Supplier rightSupp = () -> { - if(rightMaterialized) return mapper.apply(rightValue); + if (rightMaterialized) + return mapper.apply(rightValue); return mapper.apply(rightSupplier.get()); }; @@ -162,13 +170,13 @@ public class LazyPair implements IPair @Override public MergedType merge(BiFunction merger) { - if(!leftMaterialized) { + if (!leftMaterialized) { leftValue = leftSupplier.get(); leftMaterialized = true; } - if(!rightMaterialized) { + if (!rightMaterialized) { rightValue = rightSupplier.get(); rightMaterialized = true; @@ -179,25 +187,22 @@ public class LazyPair implements IPair @Override public String toString() { - StringBuilder sb = new StringBuilder("pair[l="); + String leftVal; + String rightVal; - if(leftMaterialized) { - sb.append(leftValue.toString()); + if (leftMaterialized) { + leftVal = leftValue.toString(); } else { - sb.append("(un-materialized)"); + leftVal = "(un-materialized)"; } - sb.append(", r="); - - if(rightMaterialized) { - sb.append(rightValue.toString()); + if (rightMaterialized) { + rightVal = rightValue.toString(); } else { - sb.append("(un-materialized)"); + rightVal = "(un-materialized)"; } - sb.append("]"); - - return sb.toString(); + return String.format("pair[l=%s,r=%s]", leftVal, rightVal); } @Override @@ -215,27 +220,36 @@ public class LazyPair implements IPair @Override public boolean equals(Object obj) { - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof LazyPair)) + return false; LazyPair other = (LazyPair) obj; - if(leftMaterialized != other.leftMaterialized) return false; + if (leftMaterialized != other.leftMaterialized) + return false; - if(leftMaterialized) { - if(leftValue == null) { - if(other.leftValue != null) return false; - } else if(!leftValue.equals(other.leftValue)) return false; + if (leftMaterialized) { + if (leftValue == null) { + if (other.leftValue != null) + return false; + } else if (!leftValue.equals(other.leftValue)) + return false; } else { return false; } - - if(rightMaterialized != other.rightMaterialized) return false; - if(rightMaterialized) { - if(rightValue == null) { - if(other.rightValue != null) return false; - } else if(!rightValue.equals(other.rightValue)) return false; + + if (rightMaterialized != other.rightMaterialized) + return false; + if (rightMaterialized) { + if (rightValue == null) { + if (other.rightValue != null) + return false; + } else if (!rightValue.equals(other.rightValue)) + return false; } else { return false; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java b/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java index f460941..8807312 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java @@ -28,8 +28,8 @@ public class ListHolder implements IHolder { public ListHolder(ContainedType... values) { heldValues = new FunctionalList<>(); - if(values != null) { - for(ContainedType containedValue : values) { + if (values != null) { + for (ContainedType containedValue : values) { heldValues.add(containedValue); } } @@ -48,7 +48,7 @@ public class ListHolder implements IHolder { @Override public Function> lift(Function func) { - return (val) -> { + return val -> { return new ListHolder<>(new FunctionalList<>(func.apply(val))); }; } @@ -74,13 +74,7 @@ public class ListHolder implements IHolder { @Override public String toString() { - StringBuilder builder = new StringBuilder(); - - builder.append("ListHolder [heldValues="); - builder.append(heldValues); - builder.append("]"); - - return builder.toString(); + return String.format("ListHolder [heldValues=%s]", heldValues); } @Override @@ -95,15 +89,20 @@ public class ListHolder implements IHolder { @Override public boolean equals(Object obj) { - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof ListHolder)) + return false; ListHolder other = (ListHolder) obj; - if(heldValues == null) { - if(other.heldValues != null) return false; - } else if(!heldValues.equals(other.heldValues)) return false; + if (heldValues == null) { + if (other.heldValues != null) + return false; + } else if (!heldValues.equals(other.heldValues)) + return false; return true; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Option.java b/BJC-Utils2/src/main/java/bjc/utils/data/Option.java index fa25b54..718ab6e 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Option.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Option.java @@ -26,28 +26,30 @@ public class Option implements IHolder { @Override public IHolder bind(Function> binder) { - if(held == null) return new Option<>(null); + if (held == null) + return new Option<>(null); return binder.apply(held); } @Override public Function> lift(Function func) { - return (val) -> { + return val -> { return new Option<>(func.apply(val)); }; } @Override public IHolder map(Function mapper) { - if(held == null) return new Option<>(null); + if (held == null) + return new Option<>(null); return new Option<>(mapper.apply(held)); } @Override public IHolder transform(UnaryOperator transformer) { - if(held != null) { + if (held != null) { held = transformer.apply(held); } @@ -56,24 +58,15 @@ public class Option implements IHolder { @Override public UnwrappedType unwrap(Function unwrapper) { - if(held == null) return null; + if (held == null) + return null; return unwrapper.apply(held); } @Override public String toString() { - StringBuilder builder = new StringBuilder(); - - builder.append("Option ["); - - if(held != null) { - builder.append("held="); - builder.append(held); - } - - builder.append("]"); - return builder.toString(); + return String.format("Option [held='%s']", held); } @Override @@ -88,15 +81,20 @@ public class Option implements IHolder { @Override public boolean equals(Object obj) { - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof Option)) + return false; Option other = (Option) obj; - if(held == null) { - if(other.held != null) return false; - } else if(!held.equals(other.held)) return false; + if (held == null) { + if (other.held != null) + return false; + } else if (!held.equals(other.held)) + return false; return true; } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java b/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java index 48d3aca..2fc3106 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java @@ -43,7 +43,8 @@ public class Pair implements IPair { @Override public IPair bind( BiFunction> binder) { - if(binder == null) throw new NullPointerException("Binder must not be null."); + if (binder == null) + throw new NullPointerException("Binder must not be null."); return binder.apply(leftValue, rightValue); } @@ -51,7 +52,8 @@ public class Pair implements IPair { @Override public IPair bindLeft( Function> leftBinder) { - if(leftBinder == null) throw new NullPointerException("Binder must not be null"); + if (leftBinder == null) + throw new NullPointerException("Binder must not be null"); return leftBinder.apply(leftValue); } @@ -59,7 +61,8 @@ public class Pair implements IPair { @Override public IPair bindRight( Function> rightBinder) { - if(rightBinder == null) throw new NullPointerException("Binder must not be null"); + if (rightBinder == null) + throw new NullPointerException("Binder must not be null"); return rightBinder.apply(rightValue); } @@ -70,62 +73,76 @@ public class Pair implements IPair { BiFunction leftCombiner, BiFunction rightCombiner) { return otherPair.bind((otherLeft, otherRight) -> { - return new Pair<>(leftCombiner.apply(leftValue, otherLeft), - rightCombiner.apply(rightValue, otherRight)); + CombinedLeft left = leftCombiner.apply(leftValue, otherLeft); + CombinedRight right = rightCombiner.apply(rightValue, otherRight); + + return new Pair<>(left, right); }); } @Override public IPair mapLeft(Function mapper) { - if(mapper == null) throw new NullPointerException("Mapper must not be null"); + if (mapper == null) + throw new NullPointerException("Mapper must not be null"); return new Pair<>(mapper.apply(leftValue), rightValue); } @Override public IPair mapRight(Function mapper) { - if(mapper == null) throw new NullPointerException("Mapper must not be null"); + if (mapper == null) + throw new NullPointerException("Mapper must not be null"); return new Pair<>(leftValue, mapper.apply(rightValue)); } @Override public MergedType merge(BiFunction merger) { - if(merger == null) throw new NullPointerException("Merger must not be null"); + if (merger == null) + throw new NullPointerException("Merger must not be null"); return merger.apply(leftValue, rightValue); } @Override public String toString() { - return "pair[l=" + leftValue.toString() + ", r=" + rightValue.toString() + "]"; + return String.format("Pair [leftValue='%s', rightValue='%s']", leftValue, rightValue); } @Override public int hashCode() { final int prime = 31; int result = 1; + result = prime * result + ((leftValue == null) ? 0 : leftValue.hashCode()); result = prime * result + ((rightValue == null) ? 0 : rightValue.hashCode()); + return result; } @Override public boolean equals(Object obj) { - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; - + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof Pair)) + return false; + Pair other = (Pair) obj; - - if(leftValue == null) { - if(other.leftValue != null) return false; - } else if(!leftValue.equals(other.leftValue)) return false; - - if(rightValue == null) { - if(other.rightValue != null) return false; - } else if(!rightValue.equals(other.rightValue)) return false; - + + if (leftValue == null) { + if (other.leftValue != null) + return false; + } else if (!leftValue.equals(other.leftValue)) + return false; + + if (rightValue == null) { + if (other.rightValue != null) + return false; + } else if (!rightValue.equals(other.rightValue)) + return false; + return true; } } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java b/BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java index 0bf1a93..fde5111 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java @@ -43,9 +43,11 @@ public class SingleSupplier implements Supplier { @Override public T get() { - if(gotten == true) { - IllegalStateException isex = new IllegalStateException("Attempted to get value more than once" - + " from single supplier #" + id + ". Previous instantiation below."); + if (gotten == true) { + String msg = String.format( + "Attempted to retrieve value more than once from single supplier #%d", id); + + IllegalStateException isex = new IllegalStateException(msg); isex.initCause(instSite); @@ -56,7 +58,7 @@ public class SingleSupplier implements Supplier { try { throw new IllegalStateException("Previous instantiation here."); - } catch(IllegalStateException isex) { + } catch (IllegalStateException isex) { instSite = isex; } @@ -65,28 +67,6 @@ public class SingleSupplier implements Supplier { @Override public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("SingleSupplier ["); - - if(source != null) { - builder.append("source="); - builder.append(source); - builder.append(", "); - } - - builder.append("gotten="); - builder.append(gotten); - builder.append(", id="); - builder.append(id); - builder.append(", "); - - if(instSite != null) { - builder.append("instSite="); - builder.append(instSite); - } - - builder.append("]"); - - return builder.toString(); + return String.format("SingleSupplier [source='%s', gotten=%s, id=%s]", source, gotten, id); } } diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java b/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java index d8e6e39..0dc96eb 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java @@ -103,12 +103,12 @@ public class Tree implements ITree { public void prependChild(ITree child) { if (hasChildren == false) { hasChildren = true; - + children = new FunctionalList<>(); } - + childCount++; - + children.prepend(child); } @@ -135,7 +135,7 @@ public class Tree implements ITree { } } } - + return -1; } @@ -144,28 +144,31 @@ public class Tree implements ITree { if (hasChildren) { switch (linearizationMethod) { case INORDER: - if (childCount != 2) throw new IllegalArgumentException( - "Can only do in-order traversal for binary trees."); - + if (childCount != 2) { + String msg = "Can only do in-order traversal for binary trees."; + + throw new IllegalArgumentException(msg); + } + children.getByIndex(0).traverse(linearizationMethod, action); - + action.accept(data); - + children.getByIndex(1).traverse(linearizationMethod, action); break; case POSTORDER: children.forEach((child) -> child.traverse(linearizationMethod, action)); - + action.accept(data); break; case PREORDER: action.accept(data); - + children.forEach((child) -> child.traverse(linearizationMethod, action)); break; default: break; - + } } else { action.accept(data); @@ -184,8 +187,9 @@ public class Tree implements ITree { if (hasChildren) { ITree flatMappedData = mapper.apply(data); - IList> mappedChildren = children.map((child) -> child.flatMapTree(mapper)); - mappedChildren.forEach((child) -> flatMappedData.addChild(child)); + IList> mappedChildren = children.map(child -> child.flatMapTree(mapper)); + + mappedChildren.forEach(child -> flatMappedData.addChild(child)); return flatMappedData; } @@ -198,9 +202,9 @@ public class Tree implements ITree { if (hasChildren) { Function, NewType> nodeTransformer = nodeCollapser.apply(data); - IList collapsedChildren = children.map((child) -> { + IList collapsedChildren = children.map(child -> { NewType collapsed = child.collapse(leafTransform, nodeCollapser, - (subTreeVal) -> subTreeVal); + subTreeVal -> subTreeVal); return collapsed; }); @@ -223,7 +227,7 @@ public class Tree implements ITree { builder.append("\n"); if (hasChildren) { - children.forEach((child) -> { + children.forEach(child -> { if (child instanceof Tree) { Tree kid = (Tree) child; @@ -243,7 +247,7 @@ public class Tree implements ITree { public ITree rebuildTree(Function leafTransformer, Function operatorTransformer) { if (hasChildren) { - IList> mappedChildren = children.map((child) -> { + IList> mappedChildren = children.map(child -> { return child.rebuildTree(leafTransformer, operatorTransformer); }); @@ -256,7 +260,7 @@ public class Tree implements ITree { @Override public void selectiveTransform(Predicate nodePicker, UnaryOperator transformer) { if (hasChildren) { - children.forEach((child) -> child.selectiveTransform(nodePicker, transformer)); + children.forEach(child -> child.selectiveTransform(nodePicker, transformer)); } else { data = transformer.apply(data); } @@ -272,7 +276,7 @@ public class Tree implements ITree { ITree result = new Tree<>(data); if (hasChildren) { - children.forEach((child) -> { + children.forEach(child -> { ITree kid = child.topDownTransform(transformPicker, transformer); result.addChild(kid); @@ -290,7 +294,7 @@ public class Tree implements ITree { result = new Tree<>(data); if (hasChildren) { - children.forEach((child) -> { + children.forEach(child -> { ITree kid = child.topDownTransform(transformPicker, transformer); result.addChild(kid); @@ -303,7 +307,7 @@ public class Tree implements ITree { result = new Tree<>(intermediateResult.getHead()); - intermediateResult.doForChildren((child) -> { + intermediateResult.doForChildren(child -> { ITree kid = child.topDownTransform(transformPicker, transformer); result.addChild(kid); @@ -311,16 +315,20 @@ public class Tree implements ITree { return result; default: - throw new IllegalArgumentException("Recieved unknown transform result " + transformResult); + String msg = String.format("Recieved unknown transform result %s", transformResult); + throw new IllegalArgumentException(msg); } } @Override public TransformedType transformChild(int childNo, Function, TransformedType> transformer) { - if (childNo < 0 || childNo > childCount - 1) - throw new IllegalArgumentException("Child index #" + childNo + " is invalid"); + if (childNo < 0 || childNo > childCount - 1) { + String msg = String.format("Child index #%d is invalid", childNo); + + throw new IllegalArgumentException(msg); + } ITree selectedKid = children.getByIndex(childNo); @@ -347,31 +355,39 @@ public class Tree implements ITree { @Override public String toString() { StringBuilder builder = new StringBuilder(); - + internalToString(builder, 1, true); - + builder.deleteCharAt(builder.length() - 1); - + return builder.toString(); } @Override public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null) return false; - if (getClass() != obj.getClass()) return false; + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof Tree)) + return false; Tree other = (Tree) obj; if (data == null) { - if (other.data != null) return false; - } else if (!data.equals(other.data)) return false; + if (other.data != null) + return false; + } else if (!data.equals(other.data)) + return false; - if (childCount != other.childCount) return false; + if (childCount != other.childCount) + return false; if (children == null) { - if (other.children != null) return false; - } else if (!children.equals(other.children)) return false; + if (other.children != null) + return false; + } else if (!children.equals(other.children)) + return false; return true; } -- cgit v1.2.3