Minor refactoring of XML import code
[moonshot-ui.git] / src / moonshot-id.vala
index 27d1c8b..2dc9ac2 100644 (file)
@@ -71,8 +71,8 @@ public class IdCard : Object
     public string display_name { get; set; default = ""; }
   
     public string username { get; set; default = ""; }
-    #if GNOME_KEYRING
-        private unowned string _password;
+#if GNOME_KEYRING
+    private unowned string _password;
     public string password {
         get {
             return (_password!=null) ? _password : "";
@@ -86,14 +86,24 @@ public class IdCard : Object
                 _password = GnomeKeyring.memory_strdup(value); 
         }
     }
-    #else
-        public string password { get; set; default = null; }
-    #endif
+#else
+    public string password { get; set; default = null; }
+#endif
 
-        public string issuer { get; set; default = ""; }
+    public string issuer { get; set; default = ""; }
   
-    public Rule[] rules {get; set; default = {};}
-    public string[] services { get; set; default = {}; }
+    private Rule[] _rules = {};
+    public Rule[] rules {
+        get {return _rules;}
+        internal set {_rules = value ?? {};}
+    }
+
+    private string[] _services = {};
+    public string[] services {
+        get {return _services;}
+        internal set {_services = value ?? {};}
+    }
+
     public bool temporary {get; set; default = false; }
 
     public TrustAnchor trust_anchor  { get; set; default = new TrustAnchor (); }
@@ -141,7 +151,7 @@ public class IdCard : Object
         if (this.trust_anchor.Compare(other.trust_anchor)!=0)
             diff |= 1 << DiffFlags.TRUST_ANCHOR;
 
-        stdout.printf("Diff Flags: %x\n", diff);
+        // stdout.printf("Diff Flags: %x\n", diff);
         return diff;
     }
 
@@ -155,6 +165,14 @@ public class IdCard : Object
     ~IdCard() {
         password = null;
     }
+
+    internal void add_rule(Rule rule) {
+        _rules += rule;
+    }
+
+    internal void add_service(string service) {
+        _services += service;
+    }
 }
 
 public int CompareRules(Rule[] a, Rule[] b)