Add yang.common.Revision.MAX_VALUE 98/77098/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 19 Oct 2018 11:58:05 +0000 (13:58 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 19 Oct 2018 13:11:08 +0000 (15:11 +0200)
Since Revision is Comparable, it is useful to capture its maximum
value, so it can be used within Ranges composed of Revision and
some other Comparable.

Change-Id: Ib2e0dba348dc5cbc53b19bc4ae6d7062c6feabb6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java

index ce6b7ea74142470bca20d72ba04ed5261604bf11..70b749cb0cf59569bcb733a998fccbab9040d8f2 100644 (file)
@@ -41,6 +41,8 @@ public final class Revision implements Comparable<Revision>, Serializable {
     // Note: since we are using writeReplace() this version is not significant.
     private static final long serialVersionUID = 1L;
 
+    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
     @RegEx
     // FIXME: we should improve this to filter incorrect dates -- see constructor.
     private static final String STRING_FORMAT_PATTERN_STR = "\\d\\d\\d\\d\\-\\d\\d-\\d\\d";
@@ -50,7 +52,10 @@ public final class Revision implements Comparable<Revision>, Serializable {
      */
     public static final Pattern STRING_FORMAT_PATTERN = Pattern.compile(STRING_FORMAT_PATTERN_STR);
 
-    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    /**
+     * Revision which compares as greater than any other valid revision.
+     */
+    public static final Revision MAX_VALUE = Revision.of("9999-12-31");
 
     private final @NonNull String str;
 
@@ -88,7 +93,7 @@ public final class Revision implements Comparable<Revision>, Serializable {
      * @return An optional Revision instance.
      * @throws DateTimeParseException if the string format does not conform specification.
      */
-    public static Optional<Revision> ofNullable(final @Nullable String str) {
+    public static @NonNull Optional<Revision> ofNullable(final @Nullable String str) {
         return str == null ? Optional.empty() : Optional.of(new Revision(str));
     }