11# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
22# See LICENSE.txt for complete terms.
33
4+ from mixbox import fields
5+
46import stix
57import stix .utils
68import stix .indicator .test_mechanism
@@ -15,67 +17,9 @@ class YaraTestMechanism(_BaseTestMechanism):
1517 _binding = yara_tm_binding
1618 _binding_class = _binding .YaraTestMechanismType
1719 _XSI_TYPE = "yaraTM:YaraTestMechanismType"
18-
19- def __init__ (self , id_ = None , idref = None ):
20- super (YaraTestMechanism , self ).__init__ (id_ = id_ , idref = idref )
21- self .version = None
22- self .rule = None
23-
24- @property
25- def rule (self ):
26- return self ._rule
27-
28- @rule .setter
29- def rule (self , value ):
30- if not value :
31- self ._rule = None
32- if isinstance (value , EncodedCDATA ):
33- self ._rule = value
34- else :
35- self ._rule = EncodedCDATA (value = value )
36-
37- @classmethod
38- def from_obj (cls , cls_obj ):
39- if not cls_obj :
40- return None
41-
42- obj = super (YaraTestMechanism , cls ).from_obj (cls_obj )
43-
44- obj .version = cls_obj .Version
45- obj .rule = EncodedCDATA .from_obj (cls_obj .Rule )
46-
47- return obj
48-
49- def to_obj (self , ns_info = None ):
50- obj = super (YaraTestMechanism , self ).to_obj (ns_info = ns_info )
5120
52- if self .version :
53- obj .Version = self .version
54- if self .rule :
55- obj .Rule = self .rule .to_obj (ns_info = ns_info )
56-
57- return obj
58-
59- @classmethod
60- def from_dict (cls , cls_dict ):
61- if not cls_dict :
62- return None
63-
64- obj = super (YaraTestMechanism , cls ).from_dict (cls_dict )
65-
66- obj .version = cls_dict .get ('version' )
67- obj .rule = EncodedCDATA .from_dict (cls_dict .get ('rule' ))
68-
69- return obj
70-
71- def to_dict (self ):
72- d = super (YaraTestMechanism , self ).to_dict ()
73-
74- if self .version :
75- d ['version' ] = self .version
76-
77- if self .rule :
78- d ['rule' ] = self .rule .to_dict ()
79-
80- return d
21+ version = fields .TypedField ("Version" )
22+ rule = fields .TypedField ("Rule" , EncodedCDATA )
8123
24+ def __init__ (self , id_ = None , idref = None ):
25+ super (YaraTestMechanism , self ).__init__ (id_ = id_ , idref = idref )
0 commit comments