]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/model/PatternDetailsItem.java
complete fromRoomObject() to include date matching fields
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / model / PatternDetailsItem.java
index 43c77f72e5ff7416041a20383df421c71c4be4b0..52fa1dc7671c1f877be9590eb22a179dae95223e 100644 (file)
@@ -61,11 +61,32 @@ abstract public class PatternDetailsItem {
             header.setName(ph.getName());
             header.setPattern(ph.getRegularExpression());
             header.setTestText(ph.getTestText());
-            header.setTransactionDescription(ph.getTransactionDescription());
-            header.setTransactionComment(ph.getTransactionComment());
-            header.setDateDayMatchGroup(ph.getDateDayMatchGroup());
-            header.setDateMonthMatchGroup(ph.getDateMonthMatchGroup());
-            header.setDateYearMatchGroup(ph.getDateYearMatchGroup());
+
+            if (ph.getTransactionDescriptionMatchGroup() == null)
+                header.setTransactionDescription(ph.getTransactionDescription());
+            else
+                header.setTransactionDescriptionMatchGroup(
+                        ph.getTransactionDescriptionMatchGroup());
+
+            if (ph.getTransactionCommentMatchGroup() == null)
+                header.setTransactionComment(ph.getTransactionComment());
+            else
+                header.setTransactionCommentMatchGroup(ph.getTransactionCommentMatchGroup());
+
+            if (ph.getDateDayMatchGroup() == null)
+                header.setDateDay(ph.getDateDay());
+            else
+                header.setDateDayMatchGroup(ph.getDateDayMatchGroup());
+
+            if (ph.getDateMonthMatchGroup() == null)
+                header.setDateMonth(ph.getDateMonth());
+            else
+                header.setDateMonthMatchGroup(ph.getDateMonthMatchGroup());
+
+            if (ph.getDateYearMatchGroup() == null)
+                header.setDateYear(ph.getDateYear());
+            else
+                header.setDateYearMatchGroup(ph.getDateYearMatchGroup());
 
             return header;
         }
@@ -228,6 +249,16 @@ abstract public class PatternDetailsItem {
         public void switchToLiteral() {
             literalValue = true;
         }
+        public String toString() {
+            if (literalValue)
+                if (value == null)
+                    return "<null>";
+                else
+                    return value.toString();
+            if (matchGroup > 0)
+                return "grp:" + matchGroup;
+            return "<null>";
+        }
     }
 
     public static class TYPE {
@@ -404,7 +435,8 @@ abstract public class PatternDetailsItem {
         @Override
         public String toString() {
             return super.toString() +
-                   String.format(" name[%s] pat[%s] test[%s]", name, pattern, testText);
+                   String.format(" name[%s] pat[%s] test[%s] tran[%s] com[%s]", name, pattern,
+                           testText, transactionDescription, transactionComment);
         }
         public String getTestText() {
             return testText;
@@ -528,13 +560,13 @@ abstract public class PatternDetailsItem {
         public int getTransactionDescriptionMatchGroup() {
             return transactionDescription.getMatchGroup();
         }
-        public void setTransactionDescriptionMatchGroup(short group) {
+        public void setTransactionDescriptionMatchGroup(int group) {
             transactionDescription.setMatchGroup(group);
         }
         public int getTransactionCommentMatchGroup() {
             return transactionComment.getMatchGroup();
         }
-        public void setTransactionCommentMatchGroup(short group) {
+        public void setTransactionCommentMatchGroup(int group) {
             transactionComment.setMatchGroup(group);
         }
         public void switchToLiteralDateYear() {