]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
HM-5: Added unknown date
authorcesarvh <cesarv.h@berkeley.edu>
Thu, 18 Oct 2018 23:47:27 +0000 (16:47 -0700)
committercesarvh <cesarv.h@berkeley.edu>
Tue, 19 Mar 2019 19:40:15 +0000 (12:40 -0700)
services/structureddate/structureddate/src/main/antlr4/org/collectionspace/services/structureddate/antlr/StructuredDate.g4
services/structureddate/structureddate/src/main/java/org/collectionspace/services/structureddate/antlr/ANTLRStructuredDateEvaluator.java
services/structureddate/structureddate/src/test/resources/test-dates.yaml

index d1cb9a49f9905806443632929e7b7c2d67f1ef55..3afaf9f5f0e25a442ae4dcf0779652afd8cc8fa7 100644 (file)
@@ -8,17 +8,12 @@ grammar StructuredDate;
 /*
  * Parser rules
  */
-// unknownDisplayDate:    
-
-oneDisplayDate:        displayDate ( DOT | QUESTION )? EOF ;
+oneDisplayDate:        displayDate ( DOT | QUESTION )? EOF;
 
 displayDate:           uncertainDate
 |                      certainDate
-/* TODO: Need to decide what "before" and "after" actually mean
-|                      beforeOrAfterDate
-*/
 |                      beforeOrAfterDate
-// |                      unknownDate
+|                      unknownDate
 ;
 
 uncertainDate:         CIRCA certainDate ;
@@ -35,7 +30,6 @@ hyphenatedRange:       singleInterval ( HYPHEN | DASH ) singleInterval
 |                      quarterInYearRange
 |                      strDayInMonthRange
 |                      numDayInMonthRange
-// |                      numMonthInYearsRange
 ;
 
 singleInterval:        yearSpanningWinter
@@ -128,7 +122,7 @@ numYear:               NUMBER ;
 numMonth:              NUMBER ;
 numDayOfMonth:         NUMBER ;
 num:                   NUMBER ;
-// unknownDate:           UNKNOWN ;
+unknownDate:           UNKNOWN ;
 
 /*
  * Lexer rules
@@ -168,6 +162,6 @@ DASH:           [—–] ; /* EM DASH, EN DASH */
 SLASH:          '/' ;
 DOT:            '.' ;
 QUESTION:       '?' ;
-STRING:         [a-z]+ ;
 OTHER:          . ;
-// UNKNOWN:        'unknown';
\ No newline at end of file
+UNKNOWN:        'unknown';
+STRING:         [a-z]+ ;
\ No newline at end of file
index b0de8cc52ca80f5c285f38a48c1c285789e85a0a..560fa020b232440da3514e5edcef100b1469b0fd 100644 (file)
@@ -86,6 +86,7 @@ import org.collectionspace.services.structureddate.antlr.StructuredDateParser.St
 import org.collectionspace.services.structureddate.antlr.StructuredDateParser.StrSeasonContext;
 import org.collectionspace.services.structureddate.antlr.StructuredDateParser.StrSeasonInYearRangeContext;
 import org.collectionspace.services.structureddate.antlr.StructuredDateParser.UncertainDateContext;
+import org.collectionspace.services.structureddate.antlr.StructuredDateParser.UnknownDateContext;
 import org.collectionspace.services.structureddate.antlr.StructuredDateParser.YearContext;
 import org.collectionspace.services.structureddate.antlr.StructuredDateParser.YearSpanningWinterContext;
 
@@ -166,6 +167,14 @@ public class ANTLRStructuredDateEvaluator extends StructuredDateBaseListener imp
                result.setEarliestSingleDate(earliestDate);
                result.setLatestDate(latestDate);
        }
+       @Override
+       public void exitUnknownDate(UnknownDateContext ctx) {
+               if (ctx.exception != null) return;
+
+               // Dummy dates
+               stack.push(new Date());
+               stack.push(new Date());
+       }
 
        @Override
        public void exitBeforeOrAfterDate(BeforeOrAfterDateContext ctx) {
@@ -1182,7 +1191,6 @@ public class ANTLRStructuredDateEvaluator extends StructuredDateBaseListener imp
                stack.push(num);
        }
 
-
        protected String getErrorMessage(RecognitionException re) {
                String message = "";
 
index 82c238c95afe32ef845f98d8f3a6576ae8a7914a..412f35faf549e98cf677212ba5bb3d90e2c9aa19 100644 (file)
   "04/1995-04/2018":                    # Month/Year - Month/Year date
                                          earliestSingleDate: [1995,  4, 1, CE]
                                          latestDate:         [2018,  4, 30, CE]
-  # "unknown":
-  #                                        earliestSingleDate: []
+
+  "unknown":                            # Unknown date: Should result in empty fields
+                                         earliestSingleDate: []
 
 # -------------------------------------------------------------------------------------------------------
 # Invalid dates