From 353e5815c7059499d20e7fe65496dd59ced5eaad Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sat, 24 Jan 2015 14:24:03 +0100 Subject: [PATCH] Guava: Use MoreObjects.ToStringHelper to implement .toString(). --- .../src/de/schildbach/pte/dto/Departure.java | 21 +++---- enabler/src/de/schildbach/pte/dto/Fare.java | 8 +++ enabler/src/de/schildbach/pte/dto/Line.java | 16 +++-- .../schildbach/pte/dto/LineDestination.java | 18 +++--- .../src/de/schildbach/pte/dto/Location.java | 18 +++--- .../pte/dto/NearbyStationsResult.java | 11 ++-- enabler/src/de/schildbach/pte/dto/Point.java | 12 ++-- .../pte/dto/QueryDeparturesResult.java | 23 +++---- .../schildbach/pte/dto/QueryTripsResult.java | 23 +++---- .../de/schildbach/pte/dto/ResultHeader.java | 9 +++ .../schildbach/pte/dto/StationDepartures.java | 24 ++++---- enabler/src/de/schildbach/pte/dto/Stop.java | 47 +++++++------- .../pte/dto/SuggestLocationsResult.java | 23 +++---- enabler/src/de/schildbach/pte/dto/Trip.java | 61 ++++++------------- 14 files changed, 148 insertions(+), 166 deletions(-) diff --git a/enabler/src/de/schildbach/pte/dto/Departure.java b/enabler/src/de/schildbach/pte/dto/Departure.java index b3d56f88..fc415cc3 100644 --- a/enabler/src/de/schildbach/pte/dto/Departure.java +++ b/enabler/src/de/schildbach/pte/dto/Departure.java @@ -20,7 +20,10 @@ package de.schildbach.pte.dto; import java.io.Serializable; import java.util.Comparator; import java.util.Date; +import java.util.Locale; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Objects; /** @@ -61,18 +64,12 @@ public final class Departure implements Serializable @Override public String toString() { - final StringBuilder builder = new StringBuilder("Departure("); - builder.append(plannedTime != null ? plannedTime : "null"); - builder.append(","); - builder.append(predictedTime != null ? predictedTime : "null"); - builder.append(","); - builder.append(line != null ? line : "null"); - builder.append(","); - builder.append(position != null ? position : "null"); - builder.append(","); - builder.append(destination != null ? destination : "null"); - builder.append(")"); - return builder.toString(); + final ToStringHelper helper = MoreObjects.toStringHelper(this); + if (plannedTime != null) + helper.add("planned", String.format(Locale.US, "%ta % return attrs != null && attrs.contains(attr); } - @Override - public String toString() - { - final StringBuilder builder = new StringBuilder("Line("); - builder.append(label); - builder.append(")"); - return builder.toString(); - } - @Override public boolean equals(final Object o) { @@ -105,6 +97,12 @@ public final class Line implements Serializable, Comparable return Objects.hashCode(label); } + @Override + public String toString() + { + return MoreObjects.toStringHelper(this).addValue(label).toString(); + } + public int compareTo(final Line other) { final int productThis = PRODUCT_ORDER.indexOf(this.product); diff --git a/enabler/src/de/schildbach/pte/dto/LineDestination.java b/enabler/src/de/schildbach/pte/dto/LineDestination.java index 4dd888e1..035115f4 100644 --- a/enabler/src/de/schildbach/pte/dto/LineDestination.java +++ b/enabler/src/de/schildbach/pte/dto/LineDestination.java @@ -19,6 +19,7 @@ package de.schildbach.pte.dto; import java.io.Serializable; +import com.google.common.base.MoreObjects; import com.google.common.base.Objects; /** @@ -35,17 +36,6 @@ public final class LineDestination implements Serializable this.destination = destination; } - @Override - public String toString() - { - StringBuilder builder = new StringBuilder("LineDestination("); - builder.append(line != null ? line : "null"); - builder.append(","); - builder.append(destination != null ? destination : "null"); - builder.append(")"); - return builder.toString(); - } - @Override public boolean equals(final Object o) { @@ -66,4 +56,10 @@ public final class LineDestination implements Serializable { return Objects.hashCode(line, destination); } + + @Override + public String toString() + { + return MoreObjects.toStringHelper(this).add("line", line).add("destination", destination).omitNullValues().toString(); + } } diff --git a/enabler/src/de/schildbach/pte/dto/Location.java b/enabler/src/de/schildbach/pte/dto/Location.java index 4f1f0983..d46b0cfb 100644 --- a/enabler/src/de/schildbach/pte/dto/Location.java +++ b/enabler/src/de/schildbach/pte/dto/Location.java @@ -20,6 +20,8 @@ package de.schildbach.pte.dto; import java.io.Serializable; import java.util.Arrays; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Objects; /** @@ -152,13 +154,6 @@ public final class Location implements Serializable return null; } - @Override - public String toString() - { - return "[" + type + " " + id + " " + lat + "/" + lon + " " + (place != null ? "\"" + place + "\"" : "null") + " " - + (name != null ? "\"" + name + "\"" : "null") + "]"; - } - @Override public boolean equals(final Object o) { @@ -190,4 +185,13 @@ public final class Location implements Serializable else return Objects.hashCode(type, lat, lon); } + + @Override + public String toString() + { + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(type).addValue(id); + if (lat != 0 || lon != 0) + helper.addValue(lat + "/" + lon); + return helper.add("place", place).add("name", name).omitNullValues().toString(); + } } diff --git a/enabler/src/de/schildbach/pte/dto/NearbyStationsResult.java b/enabler/src/de/schildbach/pte/dto/NearbyStationsResult.java index 70d403ac..1f66c3a1 100644 --- a/enabler/src/de/schildbach/pte/dto/NearbyStationsResult.java +++ b/enabler/src/de/schildbach/pte/dto/NearbyStationsResult.java @@ -20,6 +20,9 @@ package de.schildbach.pte.dto; import java.io.Serializable; import java.util.List; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; + /** * @author Andreas Schildbach */ @@ -51,11 +54,9 @@ public final class NearbyStationsResult implements Serializable @Override public String toString() { - final StringBuilder builder = new StringBuilder(getClass().getSimpleName()); - builder.append("[").append(this.status); + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(status); if (stations != null) - builder.append(" ").append(stations.size()).append(stations); - builder.append("]"); - return builder.toString(); + helper.add("size", stations.size()).add("stations", stations); + return helper.toString(); } } diff --git a/enabler/src/de/schildbach/pte/dto/Point.java b/enabler/src/de/schildbach/pte/dto/Point.java index 7a1fdd17..843db067 100644 --- a/enabler/src/de/schildbach/pte/dto/Point.java +++ b/enabler/src/de/schildbach/pte/dto/Point.java @@ -39,12 +39,6 @@ public final class Point implements Serializable return new Point((int) Math.round(lat * 1E6), (int) Math.round(lon * 1E6)); } - @Override - public String toString() - { - return "[" + lat + "/" + lon + "]"; - } - @Override public boolean equals(final Object o) { @@ -65,4 +59,10 @@ public final class Point implements Serializable { return Objects.hashCode(lat, lon); } + + @Override + public String toString() + { + return lat + "/" + lon; + } } diff --git a/enabler/src/de/schildbach/pte/dto/QueryDeparturesResult.java b/enabler/src/de/schildbach/pte/dto/QueryDeparturesResult.java index 21cf8778..bc6472e3 100644 --- a/enabler/src/de/schildbach/pte/dto/QueryDeparturesResult.java +++ b/enabler/src/de/schildbach/pte/dto/QueryDeparturesResult.java @@ -21,6 +21,9 @@ import java.io.Serializable; import java.util.LinkedList; import java.util.List; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; + /** * @author Andreas Schildbach */ @@ -47,17 +50,6 @@ public final class QueryDeparturesResult implements Serializable this.status = status; } - @Override - public String toString() - { - final StringBuilder builder = new StringBuilder(getClass().getSimpleName()); - builder.append("[").append(this.status); - if (stationDepartures != null) - builder.append(" ").append(stationDepartures.size()).append(stationDepartures); - builder.append("]"); - return builder.toString(); - } - public StationDepartures findStationDepartures(final String stationId) { for (final StationDepartures departures : stationDepartures) @@ -68,4 +60,13 @@ public final class QueryDeparturesResult implements Serializable return null; } + + @Override + public String toString() + { + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(status); + if (stationDepartures != null) + helper.add("size", stationDepartures.size()).add("stationDepartures", stationDepartures); + return helper.toString(); + } } diff --git a/enabler/src/de/schildbach/pte/dto/QueryTripsResult.java b/enabler/src/de/schildbach/pte/dto/QueryTripsResult.java index 91a9d91e..0480290d 100644 --- a/enabler/src/de/schildbach/pte/dto/QueryTripsResult.java +++ b/enabler/src/de/schildbach/pte/dto/QueryTripsResult.java @@ -20,6 +20,9 @@ package de.schildbach.pte.dto; import java.io.Serializable; import java.util.List; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; + /** * @author Andreas Schildbach */ @@ -97,31 +100,25 @@ public final class QueryTripsResult implements Serializable @Override public String toString() { - final StringBuilder builder = new StringBuilder(getClass().getSimpleName()); - builder.append("[").append(this.status).append(" "); - + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(status); if (status == Status.OK) { if (trips != null) - builder.append(trips.size()).append(trips); + helper.add("size", trips.size()).add("trips", trips); } else if (status == Status.AMBIGUOUS) { if (ambiguousFrom != null) - builder.append(ambiguousFrom.size()).append(" ambiguous from, "); + helper.add("size", ambiguousFrom.size()).add("ambiguousFrom", ambiguousFrom); if (ambiguousVia != null) - builder.append(ambiguousVia.size()).append(" ambiguous via, "); + helper.add("size", ambiguousVia.size()).add("ambiguousVia", ambiguousVia); if (ambiguousTo != null) - builder.append(ambiguousTo.size()).append(" ambiguous to, "); + helper.add("size", ambiguousTo.size()).add("ambiguousTo", ambiguousTo); } else { - builder.append(this.status); + helper.addValue(status); } - - if (builder.substring(builder.length() - 2).equals(", ")) - builder.setLength(builder.length() - 2); - builder.append("]"); - return builder.toString(); + return helper.toString(); } } diff --git a/enabler/src/de/schildbach/pte/dto/ResultHeader.java b/enabler/src/de/schildbach/pte/dto/ResultHeader.java index 68c27945..9dee0c57 100644 --- a/enabler/src/de/schildbach/pte/dto/ResultHeader.java +++ b/enabler/src/de/schildbach/pte/dto/ResultHeader.java @@ -19,6 +19,8 @@ package de.schildbach.pte.dto; import java.io.Serializable; +import com.google.common.base.MoreObjects; + /** * @author Andreas Schildbach */ @@ -44,4 +46,11 @@ public final class ResultHeader implements Serializable this.serverTime = serverTime; this.context = context; } + + @Override + public String toString() + { + return MoreObjects.toStringHelper(this).add("serverProduct", serverProduct).add("serverVersion", serverVersion).add("serverTime", serverTime) + .add("context", context).omitNullValues().toString(); + } } diff --git a/enabler/src/de/schildbach/pte/dto/StationDepartures.java b/enabler/src/de/schildbach/pte/dto/StationDepartures.java index f9b415ce..5e2d8a50 100644 --- a/enabler/src/de/schildbach/pte/dto/StationDepartures.java +++ b/enabler/src/de/schildbach/pte/dto/StationDepartures.java @@ -20,6 +20,8 @@ package de.schildbach.pte.dto; import java.io.Serializable; import java.util.List; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Objects; /** @@ -38,19 +40,6 @@ public final class StationDepartures implements Serializable this.lines = lines; } - @Override - public String toString() - { - final StringBuilder builder = new StringBuilder(getClass().getSimpleName()); - builder.append("["); - if (location != null) - builder.append(location); - if (departures != null) - builder.append(" ").append(departures.size()).append(" departures"); - builder.append("]"); - return builder.toString(); - } - @Override public boolean equals(final Object o) { @@ -73,4 +62,13 @@ public final class StationDepartures implements Serializable { return Objects.hashCode(location, departures, lines); } + + @Override + public String toString() + { + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(location); + if (departures != null) + helper.add("size", departures.size()).add("departures", departures); + return helper.toString(); + } } diff --git a/enabler/src/de/schildbach/pte/dto/Stop.java b/enabler/src/de/schildbach/pte/dto/Stop.java index 1a0aa7ad..3ff28bbf 100644 --- a/enabler/src/de/schildbach/pte/dto/Stop.java +++ b/enabler/src/de/schildbach/pte/dto/Stop.java @@ -19,7 +19,10 @@ package de.schildbach.pte.dto; import java.io.Serializable; import java.util.Date; +import java.util.Locale; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Objects; /** @@ -195,31 +198,6 @@ public final class Stop implements Serializable return plannedArrivalTime; } - @Override - public String toString() - { - final StringBuilder builder = new StringBuilder("Stop('"); - builder.append(location); - builder.append("', arr: "); - builder.append(plannedArrivalTime != null ? plannedArrivalTime : "-"); - builder.append("/"); - builder.append(arrivalCancelled ? "cancelled" : (predictedArrivalTime != null ? predictedArrivalTime : "-")); - builder.append(", "); - builder.append(plannedArrivalPosition != null ? plannedArrivalPosition : "-"); - builder.append("/"); - builder.append(predictedArrivalPosition != null ? predictedArrivalPosition : "-"); - builder.append(", dep: "); - builder.append(plannedDepartureTime != null ? plannedDepartureTime : "-"); - builder.append("/"); - builder.append(departureCancelled ? "cancelled" : (predictedDepartureTime != null ? predictedDepartureTime : "-")); - builder.append(", "); - builder.append(plannedDeparturePosition != null ? plannedDeparturePosition : "-"); - builder.append("/"); - builder.append(predictedDeparturePosition != null ? predictedDeparturePosition : "-"); - builder.append(")"); - return builder.toString(); - } - @Override public boolean equals(final Object o) { @@ -260,4 +238,23 @@ public final class Stop implements Serializable arrivalCancelled, plannedDepartureTime, predictedDepartureTime, plannedDeparturePosition, predictedDeparturePosition, departureCancelled); } + + @Override + public String toString() + { + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(location); + if (plannedArrivalTime != null) + helper.add("plannedArrivalTime", String.format(Locale.US, "%ta % getLocations() { final List locations = new ArrayList(suggestedLocations.size()); @@ -71,4 +63,13 @@ public final class SuggestLocationsResult implements Serializable return locations; } + + @Override + public String toString() + { + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(status); + if (suggestedLocations != null) + helper.add("size", suggestedLocations.size()).add("suggestedLocations", suggestedLocations); + return helper.toString(); + } } diff --git a/enabler/src/de/schildbach/pte/dto/Trip.java b/enabler/src/de/schildbach/pte/dto/Trip.java index 5d02c569..81e55d9b 100644 --- a/enabler/src/de/schildbach/pte/dto/Trip.java +++ b/enabler/src/de/schildbach/pte/dto/Trip.java @@ -18,12 +18,13 @@ package de.schildbach.pte.dto; import java.io.Serializable; -import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.Locale; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Objects; /** @@ -196,23 +197,6 @@ public final class Trip implements Serializable return builder.toString(); } - @Override - public String toString() - { - final SimpleDateFormat FORMAT = new SimpleDateFormat("E HH:mm", Locale.US); - - final StringBuilder str = new StringBuilder(getId()); - str.append(' '); - final Date firstPublicLegDepartureTime = getFirstPublicLegDepartureTime(); - str.append(firstPublicLegDepartureTime != null ? FORMAT.format(firstPublicLegDepartureTime) : "null"); - str.append('-'); - final Date lastPublicLegArrivalTime = getLastPublicLegArrivalTime(); - str.append(lastPublicLegArrivalTime != null ? FORMAT.format(lastPublicLegArrivalTime) : "null"); - str.append(' ').append(numChanges).append("ch"); - - return str.toString(); - } - @Override public boolean equals(Object o) { @@ -230,6 +214,18 @@ public final class Trip implements Serializable return Objects.hashCode(getId()); } + @Override + public String toString() + { + final ToStringHelper helper = MoreObjects.toStringHelper(this).addValue(getId()); + final Date firstPublicLegDepartureTime = getFirstPublicLegDepartureTime(); + final Date lastPublicLegArrivalTime = getLastPublicLegArrivalTime(); + helper.addValue(firstPublicLegDepartureTime != null ? String.format(Locale.US, "%ta %