summaryrefslogtreecommitdiffstats
path: root/src/org/uic/barcode/ticket/api/utils
diff options
context:
space:
mode:
authorCGantert345 <57003061+CGantert345@users.noreply.github.com>2021-03-19 15:51:40 +0100
committerCGantert345 <57003061+CGantert345@users.noreply.github.com>2021-03-19 15:51:40 +0100
commit26ca7242605261c3bf1c27fb427ece203504ee51 (patch)
tree87ba2e32aef122c6878c0354ae6c554ca9b5816e /src/org/uic/barcode/ticket/api/utils
parentnew release (diff)
downloadUIC-barcode-26ca7242605261c3bf1c27fb427ece203504ee51.tar
UIC-barcode-26ca7242605261c3bf1c27fb427ece203504ee51.tar.gz
UIC-barcode-26ca7242605261c3bf1c27fb427ece203504ee51.tar.bz2
UIC-barcode-26ca7242605261c3bf1c27fb427ece203504ee51.tar.lz
UIC-barcode-26ca7242605261c3bf1c27fb427ece203504ee51.tar.xz
UIC-barcode-26ca7242605261c3bf1c27fb427ece203504ee51.tar.zst
UIC-barcode-26ca7242605261c3bf1c27fb427ece203504ee51.zip
Diffstat (limited to '')
-rw-r--r--src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java14
-rw-r--r--src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java16
-rw-r--r--src/org/uic/barcode/ticket/api/utils/DateTimeUtils.java (renamed from src/org/uic/barcode/ticket/api/asn/omv1/DateTimeUtils.java)69
-rw-r--r--src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java15
-rw-r--r--src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java7
5 files changed, 81 insertions, 40 deletions
diff --git a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java b/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java
index 78deb8a..5bc419c 100644
--- a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java
+++ b/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java
@@ -881,7 +881,7 @@ public class Api2OpenAsnEncoder {
asnData.setTariffs(encodeTariffCollection(document.getTariffs()));
- asnData.setActivatedDays(document.getActivatedDays(),document.getValidFrom());
+ asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays()));
if (document.getClassCode() != ITravelClassType.second){
asnData.setClassCode(convertTravelClass(document.getClassCode()));
@@ -1558,13 +1558,7 @@ public class Api2OpenAsnEncoder {
}
- if(document.getActivatedDays()!= null && document.getActivatedDays().size() > 0) {
- if (document.getValidFrom() != null) {
- asnData.setActivatedDays(document.getActivatedDays(),document.getValidFrom());
- } else {
- asnData.setActivatedDays(document.getActivatedDays(),issuingDate);
- }
- }
+ asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays()));
asnData.setClassCode(convertTravelClass(document.getClassCode()));
@@ -1697,9 +1691,7 @@ public class Api2OpenAsnEncoder {
asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate);
- if(document.getActivatedDays()!= null && document.getActivatedDays().size() > 0) {
- asnData.setActivatedDays(document.getActivatedDays(), document.getValidFrom());
- }
+ asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays()));
asnData.setExtension(encodeExtension(document.getExtension()));
diff --git a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java b/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java
index 97abcfa..48583b9 100644
--- a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java
+++ b/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java
@@ -886,7 +886,7 @@ public class Api2OpenAsnEncoderV2 {
asnData.setTariffs(encodeTariffCollection(document.getTariffs()));
- asnData.setActivatedDays(document.getActivatedDays(),document.getValidFrom());
+ asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays()));
if (document.getClassCode() != ITravelClassType.second && document.getClassCode() != null){
asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name()));
@@ -1562,14 +1562,8 @@ public class Api2OpenAsnEncoderV2 {
}
}
-
- if(document.getActivatedDays()!= null && document.getActivatedDays().size() > 0) {
- if (document.getValidFrom() != null) {
- asnData.setActivatedDays(document.getActivatedDays(),document.getValidFrom());
- } else {
- asnData.setActivatedDays(document.getActivatedDays(),issuingDate);
- }
- }
+ asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays()));
+
if (document.getClassCode() != null) {
asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name()));
}
@@ -1703,9 +1697,7 @@ public class Api2OpenAsnEncoderV2 {
asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate);
- if(document.getActivatedDays()!= null && document.getActivatedDays().size() > 0) {
- asnData.setActivatedDays(document.getActivatedDays(), document.getValidFrom());
- }
+ asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays()));
asnData.setExtension(encodeExtension(document.getExtension()));
diff --git a/src/org/uic/barcode/ticket/api/asn/omv1/DateTimeUtils.java b/src/org/uic/barcode/ticket/api/utils/DateTimeUtils.java
index 6e62a4a..a0283c7 100644
--- a/src/org/uic/barcode/ticket/api/asn/omv1/DateTimeUtils.java
+++ b/src/org/uic/barcode/ticket/api/utils/DateTimeUtils.java
@@ -1,6 +1,8 @@
-package org.uic.barcode.ticket.api.asn.omv1;
+package org.uic.barcode.ticket.api.utils;
+import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Collection;
import java.util.Date;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
@@ -11,10 +13,41 @@ public class DateTimeUtils {
if (issuingDate == null || localDate == null) return null;
+ Calendar startCal = Calendar.getInstance();
+ startCal.clear();
+ startCal.setTime(issuingDate);
+ startCal.setTimeZone(TimeZone.getTimeZone("UTC"));
+ startCal.set(Calendar.HOUR_OF_DAY, 0);
+ startCal.set(Calendar.MINUTE, 0);
+ startCal.set(Calendar.SECOND, 0);
+ startCal.set(Calendar.MILLISECOND, 0);
+ Date start = startCal.getTime();
+
+ Calendar endCal = Calendar.getInstance();
+ endCal.clear();
+ endCal.setTime(localDate);
+ endCal.setTimeZone(TimeZone.getTimeZone("UTC"));
+ endCal.set(Calendar.HOUR_OF_DAY, 0);
+ endCal.set(Calendar.MINUTE, 0);
+ endCal.set(Calendar.SECOND, 0);
+ endCal.set(Calendar.MILLISECOND, 0);
+ Date end = endCal.getTime();
+
+ long diff = TimeUnit.DAYS.convert(end.getTime() - start.getTime(), TimeUnit.MILLISECONDS );
+ //long diff = localDate.getTime() - issuingDate.getTime();
+ //long dayDiff = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
+
+ return new Long(diff);
+
+ }
+
+ public static Long getDateDifferenceLocal(Date referenceDate, Date localDate) {
+
+ if (referenceDate == null || localDate == null) return null;
+
Calendar issuingCal = Calendar.getInstance();
issuingCal.clear();
- issuingCal.setTime(issuingDate);
- issuingCal.setTimeZone(TimeZone.getTimeZone("UTC"));
+ issuingCal.setTime(referenceDate);
issuingCal.set(Calendar.HOUR_OF_DAY, 0);
issuingCal.set(Calendar.MINUTE, 0);
issuingCal.set(Calendar.SECOND, 0);
@@ -23,13 +56,12 @@ public class DateTimeUtils {
Calendar fromCal = Calendar.getInstance();
fromCal.clear();
fromCal.setTime(localDate);
- fromCal.setTimeZone(TimeZone.getTimeZone("UTC"));
fromCal.set(Calendar.HOUR_OF_DAY, 0);
fromCal.set(Calendar.MINUTE, 0);
fromCal.set(Calendar.SECOND, 0);
fromCal.set(Calendar.MILLISECOND, 0);
- long diff = localDate.getTime() - issuingDate.getTime();
+ long diff = localDate.getTime() - referenceDate.getTime();
long dayDiff = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
return new Long(dayDiff);
@@ -122,12 +154,14 @@ public class DateTimeUtils {
cal.add(Calendar.DAY_OF_YEAR, date.intValue());
- DateTimeUtils.setTime(cal,time);
-
+ if (time == null) {
+ DateTimeUtils.setTime(cal,0L);
+ } else {
+ DateTimeUtils.setTime(cal,time);
+ }
return cal.getTime();
}
-
/**
@@ -193,6 +227,25 @@ public class DateTimeUtils {
return cal.getTime();
}
+
+
+ public static Collection<Long> getActivatedDays(Date referenceDate, Collection<Date> days) {
+
+ ArrayList<Long> lDays = new ArrayList<Long>();
+
+ if (referenceDate == null) return lDays;
+
+ for (Date day : days) {
+ long dateDiff2 = DateTimeUtils.getDateDifference(referenceDate,day);
+ lDays.add(dateDiff2);
+ }
+
+ return lDays;
+
+ }
+ public static Date dateToUTC(Date date){
+ return new Date(date.getTime() - Calendar.getInstance().getTimeZone().getOffset(date.getTime()));
+ }
}
diff --git a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java b/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java
index 46f201d..46d2c1b 100644
--- a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java
+++ b/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java
@@ -189,7 +189,12 @@ public class OpenAsn2ApiDecoder {
}
if (asnUicRailTicketData.getTransportDocument() != null && !asnUicRailTicketData.getTransportDocument().isEmpty()) {
- populateTravelDocuments(asnUicRailTicketData.getTransportDocument(),uicRailTicket,uicRailTicket.getIssuerDetails().getIssuingDate() );
+
+ // date is already converted to local time, use UTC for internal calculations
+ Date localIssuingDate = uicRailTicket.getIssuerDetails().getIssuingDate();
+ Date issuingDate = DateTimeUtils.dateToUTC(localIssuingDate);
+
+ populateTravelDocuments(asnUicRailTicketData.getTransportDocument(),uicRailTicket, issuingDate);
}
@@ -1627,13 +1632,7 @@ public class OpenAsn2ApiDecoder {
document.setValidUntil(asnDocument.getValidUntilDate(issuingDate));
document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset());
- if (asnDocument.getActivatedDay()!=null && !asnDocument.getActivatedDay().isEmpty()) {
- if (document.getValidFrom() != null) {
- document.getActivatedDays().addAll(asnDocument.getActivatedDays(document.getValidFrom()));
- } else {
- document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate));
- }
- }
+ document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate));
document.setExtension(convertExtension(asnDocument.getExtension()));
document.setInfoText(asnDocument.getInfoText());
diff --git a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java b/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java
index 4aca9eb..c6eac0e 100644
--- a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java
+++ b/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java
@@ -191,7 +191,12 @@ public class OpenAsn2ApiDecoderV2 {
}
if (asnUicRailTicketData.getTransportDocument() != null && !asnUicRailTicketData.getTransportDocument().isEmpty()) {
- populateTravelDocuments(asnUicRailTicketData.getTransportDocument(),uicRailTicket,uicRailTicket.getIssuerDetails().getIssuingDate() );
+
+ // date is already converted to local time, use UTC for internal calculations
+ Date localIssuingDate = uicRailTicket.getIssuerDetails().getIssuingDate();
+ Date issuingDate = DateTimeUtils.dateToUTC(localIssuingDate);
+
+ populateTravelDocuments(asnUicRailTicketData.getTransportDocument(),uicRailTicket, issuingDate);
}