Skip to content

Commit ab5ebbc

Browse files
authored
[enturno] Remove org.apache.commons (openhab#14406)
* Remove org.apache.commons * Fix warnings Also-by: Jacob Laursen <[email protected]> Signed-off-by: Leo Siepel <[email protected]>
1 parent a357f7f commit ab5ebbc

File tree

15 files changed

+120
-34
lines changed

15 files changed

+120
-34
lines changed

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.openhab.binding.enturno.internal.connection.EnturCommunicationException;
2727
import org.openhab.binding.enturno.internal.connection.EnturConfigurationException;
2828
import org.openhab.binding.enturno.internal.connection.EnturNoConnection;
29-
import org.openhab.binding.enturno.internal.model.simplified.DisplayData;
29+
import org.openhab.binding.enturno.internal.dto.simplified.DisplayData;
3030
import org.openhab.core.library.types.DateTimeType;
3131
import org.openhab.core.library.types.StringType;
3232
import org.openhab.core.thing.Channel;

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java

+9-20
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import java.util.concurrent.TimeoutException;
3333
import java.util.stream.Collectors;
3434

35-
import org.apache.commons.lang3.StringUtils;
3635
import org.eclipse.jdt.annotation.NonNullByDefault;
3736
import org.eclipse.jdt.annotation.Nullable;
3837
import org.eclipse.jetty.client.HttpClient;
@@ -42,10 +41,11 @@
4241
import org.eclipse.jetty.http.HttpHeader;
4342
import org.openhab.binding.enturno.internal.EnturNoConfiguration;
4443
import org.openhab.binding.enturno.internal.EnturNoHandler;
45-
import org.openhab.binding.enturno.internal.model.EnturJsonData;
46-
import org.openhab.binding.enturno.internal.model.estimated.EstimatedCalls;
47-
import org.openhab.binding.enturno.internal.model.simplified.DisplayData;
48-
import org.openhab.binding.enturno.internal.model.stopplace.StopPlace;
44+
import org.openhab.binding.enturno.internal.dto.EnturJsonData;
45+
import org.openhab.binding.enturno.internal.dto.estimated.EstimatedCalls;
46+
import org.openhab.binding.enturno.internal.dto.simplified.DisplayData;
47+
import org.openhab.binding.enturno.internal.dto.stopplace.StopPlace;
48+
import org.openhab.binding.enturno.internal.util.DateUtil;
4949
import org.slf4j.Logger;
5050
import org.slf4j.LoggerFactory;
5151

@@ -189,10 +189,8 @@ private String getRequestBody(Map<String, String> params) throws IOException {
189189
}
190190

191191
private List<DisplayData> processData(StopPlace stopPlace, String lineCode) {
192-
Map<String, List<EstimatedCalls>> departures = stopPlace.estimatedCalls.stream()
193-
.filter(call -> StringUtils.equalsIgnoreCase(
194-
StringUtils.trimToEmpty(call.serviceJourney.journeyPattern.line.publicCode),
195-
StringUtils.trimToEmpty(lineCode)))
192+
Map<String, List<EstimatedCalls>> departures = stopPlace.estimatedCalls.stream().filter(
193+
call -> call.serviceJourney.journeyPattern.line.publicCode.strip().equalsIgnoreCase(lineCode.strip()))
196194
.collect(groupingBy(call -> call.quay.id));
197195

198196
List<DisplayData> processedData = new ArrayList<>();
@@ -214,8 +212,8 @@ private DisplayData getDisplayData(StopPlace stopPlace, Map<String, List<Estimat
214212
List<String> keys = new ArrayList<>(departures.keySet());
215213
DisplayData processedData = new DisplayData();
216214
List<EstimatedCalls> quayCalls = departures.get(keys.get(quayIndex));
217-
List<String> departureTimes = quayCalls.stream().map(eq -> eq.expectedDepartureTime).map(this::getIsoDateTime)
218-
.collect(Collectors.toList());
215+
List<String> departureTimes = quayCalls.stream().map(eq -> eq.expectedDepartureTime)
216+
.map(DateUtil::getIsoDateTime).collect(Collectors.toList());
219217

220218
List<String> estimatedFlags = quayCalls.stream().map(es -> es.realtime).collect(Collectors.toList());
221219

@@ -233,13 +231,4 @@ private DisplayData getDisplayData(StopPlace stopPlace, Map<String, List<Estimat
233231
processedData.transportMode = stopPlace.transportMode;
234232
return processedData;
235233
}
236-
237-
private String getIsoDateTime(String dateTimeWithoutColonInZone) {
238-
String dateTime = StringUtils.substringBeforeLast(dateTimeWithoutColonInZone, "+");
239-
String offset = StringUtils.substringAfterLast(dateTimeWithoutColonInZone, "+");
240-
241-
StringBuilder builder = new StringBuilder();
242-
return builder.append(dateTime).append("+").append(StringUtils.substring(offset, 0, 2)).append(":00")
243-
.toString();
244-
}
245234
}

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/Data.java bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/dto/Data.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model;
13+
package org.openhab.binding.enturno.internal.dto;
1414

15-
import org.openhab.binding.enturno.internal.model.stopplace.StopPlace;
15+
import org.openhab.binding.enturno.internal.dto.stopplace.StopPlace;
1616

1717
/**
1818
* Generated Plain Old Java Objects class for {@link Data} from JSON.

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturData.java bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/dto/EnturData.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model;
13+
package org.openhab.binding.enturno.internal.dto;
1414

1515
/**
1616
* Generated Plain Old Java Objects class for {@link Data} from JSON.

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturJsonData.java bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/dto/EnturJsonData.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model;
13+
package org.openhab.binding.enturno.internal.dto;
1414

1515
/**
1616
* {@link EnturJsonData} is a root level class to holding reference of data generated from JSON.
+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.estimated;
13+
package org.openhab.binding.enturno.internal.dto.estimated;
1414

1515
/**
1616
* Generated Plain Old Java Objects class for {@link DestinationDisplay} from JSON.
+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.estimated;
13+
package org.openhab.binding.enturno.internal.dto.estimated;
1414

1515
/**
1616
* Generated Plain Old Java Objects class for {@link EstimatedCalls} from JSON.
+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.estimated;
13+
package org.openhab.binding.enturno.internal.dto.estimated;
1414

1515
/**
1616
* Generated Plain Old Java Objects class for {@link JourneyPattern} from JSON.

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Line.java bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/dto/estimated/Line.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.estimated;
13+
package org.openhab.binding.enturno.internal.dto.estimated;
1414

1515
/**
1616
* Generated Plain Old Java Objects class for {@link Line} from JSON.

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Quay.java bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/dto/estimated/Quay.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.estimated;
13+
package org.openhab.binding.enturno.internal.dto.estimated;
1414

1515
/**
1616
* Generated Plain Old Java Objects class for {@link Quay} from JSON.
+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.estimated;
13+
package org.openhab.binding.enturno.internal.dto.estimated;
1414

1515
/**
1616
* Generated Plain Old Java Objects class for {@link ServiceJourney} from JSON.
+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.simplified;
13+
package org.openhab.binding.enturno.internal.dto.simplified;
1414

1515
import java.util.List;
1616

bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/stopplace/StopPlace.java bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/dto/stopplace/StopPlace.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
*
1111
* SPDX-License-Identifier: EPL-2.0
1212
*/
13-
package org.openhab.binding.enturno.internal.model.stopplace;
13+
package org.openhab.binding.enturno.internal.dto.stopplace;
1414

15-
import org.openhab.binding.enturno.internal.model.estimated.EstimatedCalls;
15+
import org.openhab.binding.enturno.internal.dto.estimated.EstimatedCalls;
1616

1717
/**
1818
* Generated Plain Old Java Objects class for {@link StopPlace} from JSON.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* Copyright (c) 2010-2023 Contributors to the openHAB project
3+
*
4+
* See the NOTICE file(s) distributed with this work for additional
5+
* information.
6+
*
7+
* This program and the accompanying materials are made available under the
8+
* terms of the Eclipse Public License 2.0 which is available at
9+
* http://www.eclipse.org/legal/epl-2.0
10+
*
11+
* SPDX-License-Identifier: EPL-2.0
12+
*/
13+
package org.openhab.binding.enturno.internal.util;
14+
15+
import java.time.ZonedDateTime;
16+
import java.time.format.DateTimeFormatter;
17+
import java.time.format.DateTimeParseException;
18+
19+
import org.eclipse.jdt.annotation.NonNullByDefault;
20+
21+
/**
22+
* EnturNo date utility methods.
23+
*
24+
* @author Jacob Laursen - Initial contribution
25+
*/
26+
@NonNullByDefault
27+
public class DateUtil {
28+
/**
29+
* Converts a zoned date time string that lacks a colon in the zone to an ISO-8601 formatted string.
30+
*
31+
* @param dateTimeWithoutColonInZone
32+
* @return ISO-8601 formatted string
33+
*/
34+
public static String getIsoDateTime(String dateTimeWithoutColonInZone) {
35+
ZonedDateTime zonedDateTime = null;
36+
try {
37+
zonedDateTime = ZonedDateTime.parse(dateTimeWithoutColonInZone);
38+
} catch (DateTimeParseException e) {
39+
// Skip
40+
}
41+
try {
42+
zonedDateTime = ZonedDateTime.parse(dateTimeWithoutColonInZone.replaceAll("(\\d{2})(\\d{2})$", "$1:$2"));
43+
} catch (DateTimeParseException e) {
44+
// Skip
45+
}
46+
if (zonedDateTime != null) {
47+
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(zonedDateTime);
48+
}
49+
return dateTimeWithoutColonInZone;
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/**
2+
* Copyright (c) 2010-2023 Contributors to the openHAB project
3+
*
4+
* See the NOTICE file(s) distributed with this work for additional
5+
* information.
6+
*
7+
* This program and the accompanying materials are made available under the
8+
* terms of the Eclipse Public License 2.0 which is available at
9+
* http://www.eclipse.org/legal/epl-2.0
10+
*
11+
* SPDX-License-Identifier: EPL-2.0
12+
*/
13+
package org.openhab.binding.enturno.internal.util;
14+
15+
import static org.hamcrest.CoreMatchers.*;
16+
import static org.hamcrest.MatcherAssert.assertThat;
17+
18+
import java.util.stream.Stream;
19+
20+
import org.eclipse.jdt.annotation.NonNullByDefault;
21+
import org.junit.jupiter.params.ParameterizedTest;
22+
import org.junit.jupiter.params.provider.Arguments;
23+
import org.junit.jupiter.params.provider.MethodSource;
24+
25+
/**
26+
* Tests for {@link DateUtil}.
27+
*
28+
* @author Jacob Laursen - Initial contribution
29+
*/
30+
@NonNullByDefault
31+
public class DateUtilTest {
32+
@ParameterizedTest
33+
@MethodSource("provideTestCasesForGetIsoDateTime")
34+
void getIsoDateTime(String value, String expected) {
35+
assertThat(DateUtil.getIsoDateTime(value), is(expected));
36+
}
37+
38+
private static Stream<Arguments> provideTestCasesForGetIsoDateTime() {
39+
return Stream.of( //
40+
Arguments.of("2023-10-25T09:01:00+0200", "2023-10-25T09:01:00+02:00"),
41+
Arguments.of("2023-10-25T09:01:00+02:00", "2023-10-25T09:01:00+02:00"),
42+
Arguments.of("2023-10-25T09:01:00-0300", "2023-10-25T09:01:00-03:00"),
43+
Arguments.of("2023-10-25T09:01:00+02:30", "2023-10-25T09:01:00+02:30"),
44+
Arguments.of("2023-10-25T09:01:00", "2023-10-25T09:01:00"));
45+
}
46+
}

0 commit comments

Comments
 (0)