Browse Source

Changed the validation check for the references

Roland Haroutiounian 9 years ago
parent
commit
90c3c8518b
2 changed files with 16 additions and 19 deletions
  1. 13
    15
      lodel/leapi/datahandlers/reference.py
  2. 3
    4
      lodel/leapi/datahandlers/references/Dict.py

+ 13
- 15
lodel/leapi/datahandlers/reference.py View File

11
     def __init__(self, allowed=[], internal=False, **kwargs):
11
     def __init__(self, allowed=[], internal=False, **kwargs):
12
         self.allowed = allowed
12
         self.allowed = allowed
13
         self.internal = internal
13
         self.internal = internal
14
-        '''
15
-        if not self.is_ref_valid():
16
-            raise ValueError("The target of the reference is not valid")
17
-        '''
18
         super().__init__(internal=self.internal, **kwargs)
14
         super().__init__(internal=self.internal, **kwargs)
19
 
15
 
20
     ## @brief gets the target of the reference
16
     ## @brief gets the target of the reference
22
         return self._refs
18
         return self._refs
23
 
19
 
24
     ## @brief checks if the target is valid
20
     ## @brief checks if the target is valid
25
-    '''
26
-    def is_ref_valid(self):
27
-        relateds = self.get_relateds()
28
-        if not isinstance(relateds, self._refs_class):
29
-            return False
30
 
21
 
31
-        if isinstance(relateds, EmClass):
32
-            relateds = [relateds]
22
+    def check_data_value(self, value):
33
 
23
 
34
-        for related in relateds:
24
+        if not isinstance(value, self._refs_class):
25
+            return (value, "The reference should be an instance of %s, %s gotten" % (self._refs_class, value.__class__))
26
+
27
+        if isinstance(value, EmClass):
28
+            value = [value]
29
+
30
+        if isinstance(value, dict):
31
+            ref_values = value.values()
32
+            
33
+        for related in value:
35
             if not isinstance(related, EmClass):
34
             if not isinstance(related, EmClass):
36
-                return False
35
+                return (value, "The reference %s should be an instance of EmClass, %s gotten" % (related.display_name, related.__class__))
37
 
36
 
38
-        return True
39
-    '''
37
+        return (value, None)

+ 3
- 4
lodel/leapi/datahandlers/references/Dict.py View File

17
 
17
 
18
     ## @brief checks if the given target is valid
18
     ## @brief checks if the given target is valid
19
     # @return bool
19
     # @return bool
20
-    '''
21
-    def is_target_valid(self):
20
+    def _check_data_value(self, value):
22
         relateds = self.get_relateds()
21
         relateds = self.get_relateds()
23
 
22
 
24
         if not isinstance(relateds, self._refs_class):
23
         if not isinstance(relateds, self._refs_class):
25
-            return False
24
+            return
26
 
25
 
27
         for related in relateds.values():
26
         for related in relateds.values():
28
             if not isinstance(related, EmClass):
27
             if not isinstance(related, EmClass):
29
                 return False
28
                 return False
30
 
29
 
31
         return True
30
         return True
32
-    '''
31
+
33
     ## @brief adds a referenced element
32
     ## @brief adds a referenced element
34
     # @param ref_name str : key of the item in the reference dict
33
     # @param ref_name str : key of the item in the reference dict
35
     # @param emclass EmClass
34
     # @param emclass EmClass

Loading…
Cancel
Save