Skip to content
Snippets Groups Projects
Commit a50ec980 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

Add date formatted text

parent 9317065b
No related branches found
No related tags found
No related merge requests found
...@@ -2,11 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.impl; ...@@ -2,11 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.impl;
import static de.unikoblenz.fgbks.base.utils.boundary.BoundType.EXCLUSIVE; import static de.unikoblenz.fgbks.base.utils.boundary.BoundType.EXCLUSIVE;
import static de.unikoblenz.fgbks.base.utils.boundary.BoundType.INCLUSIVE; import static de.unikoblenz.fgbks.base.utils.boundary.BoundType.INCLUSIVE;
import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE;
import static java.time.temporal.ChronoField.HOUR_OF_DAY;
import static java.time.temporal.ChronoField.MINUTE_OF_HOUR;
import static java.time.temporal.ChronoField.SECOND_OF_MINUTE;
import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary; import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
import de.unikoblenz.fgbks.base.utils.boundary.BoundType; import de.unikoblenz.fgbks.base.utils.boundary.BoundType;
import de.unikoblenz.fgbks.base.utils.boundary.BoundaryParseException; import de.unikoblenz.fgbks.base.utils.boundary.BoundaryParseException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.Validate;
...@@ -19,9 +25,28 @@ public class DateBoundary extends AbstractGrowingBoundary<LocalDateTime> { ...@@ -19,9 +25,28 @@ public class DateBoundary extends AbstractGrowingBoundary<LocalDateTime> {
+ dateGroupName + dateGroupName
+ ">(?:19|20)\\d{2}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d)\"\\)$"; + ">(?:19|20)\\d{2}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d)\"\\)$";
public static final Pattern datePattern = Pattern.compile(datePatternString); public static final Pattern datePattern = Pattern.compile(datePatternString);
public static final DateTimeFormatter CAMUNDA_DATE_TIME_FORMAT;
static {
CAMUNDA_DATE_TIME_FORMAT =
new DateTimeFormatterBuilder()
.appendLiteral("date and time(\"")
.parseCaseInsensitive()
.append(ISO_LOCAL_DATE)
.appendLiteral('T')
.appendValue(HOUR_OF_DAY, 2)
.appendLiteral(':')
.appendValue(MINUTE_OF_HOUR, 2)
.optionalStart()
.appendLiteral(':')
.appendValue(SECOND_OF_MINUTE, 2)
.appendLiteral("\")")
.toFormatter();
}
public DateBoundary(String text) { public DateBoundary(String text) {
super(text, LocalDateTime.class); super(text, LocalDateTime.class);
System.out.println("---> " + getParsedText());
} }
private DateBoundary() { private DateBoundary() {
...@@ -45,12 +70,12 @@ public class DateBoundary extends AbstractGrowingBoundary<LocalDateTime> { ...@@ -45,12 +70,12 @@ public class DateBoundary extends AbstractGrowingBoundary<LocalDateTime> {
@Override @Override
public LocalDateTime getMinValue() { public LocalDateTime getMinValue() {
return LocalDateTime.MAX; return LocalDateTime.MIN;
} }
@Override @Override
public LocalDateTime getMaxValue() { public LocalDateTime getMaxValue() {
return LocalDateTime.MIN; return LocalDateTime.MAX;
} }
@Override @Override
...@@ -119,4 +144,26 @@ public class DateBoundary extends AbstractGrowingBoundary<LocalDateTime> { ...@@ -119,4 +144,26 @@ public class DateBoundary extends AbstractGrowingBoundary<LocalDateTime> {
throw new BoundaryParseException("Date value " + this.getText() + " couldn't be parsed."); throw new BoundaryParseException("Date value " + this.getText() + " couldn't be parsed.");
} }
} }
@Override
public String getParsedText() {
if (lowerBound.equals(getMinValue()) && upperBound.equals(getMaxValue())) {
return "";
}
StringBuilder sb = new StringBuilder();
if (lowerBound.equals(getMinValue())) {
sb.append("< ");
sb.append(CAMUNDA_DATE_TIME_FORMAT.format(upperBound));
} else if (upperBound.equals(getMaxValue())) {
sb.append("> ");
sb.append(CAMUNDA_DATE_TIME_FORMAT.format(lowerBound));
} else {
sb.append("[");
sb.append(CAMUNDA_DATE_TIME_FORMAT.format(lowerBound));
sb.append("..");
sb.append(CAMUNDA_DATE_TIME_FORMAT.format(upperBound));
sb.append("]");
}
return sb.toString();
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment