11# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
22# See LICENSE.txt for complete terms.
33
4+ from mixbox import fields
5+
46# internal
57import stix
68import stix .bindings .stix_common as common_binding
@@ -11,19 +13,16 @@ class KillChain(stix.Entity):
1113 _namespace = 'http://stix.mitre.org/common-1'
1214 _binding_class = _binding .KillChainType
1315
14- id_ = AttributeField ("id_ " )
16+ id_ = AttributeField ("id " )
1517 name = AttributeField ("name" )
1618 definer = AttributeField ("definer" )
1719 reference = AttributeField ("reference" )
1820 number_of_phases = AttributeField ("number_of_phases" )
19- kill_chain_phases = ElementField ("Kill_Chain_Phase" , multiple = True , key_name = "kill_chain_phases" )
20-
21- @classmethod
22- def initClassField (cls ):
23- cls .kill_chain_phases .type_ = KillChainPhase
21+ kill_chain_phases = ElementField ("Kill_Chain_Phase" , type_ = "stix.common.kill_chains.KillChainPhase" , multiple = True , key_name = "kill_chain_phases" )
2422
2523 def __init__ (self , id_ = None , name = None , definer = None , reference = None ):
26- self ._fields = {}
24+ super (KillChain , self ).__init__ ()
25+
2726 self .id_ = id_
2827 self .name = name
2928 self .definer = definer
@@ -33,23 +32,6 @@ def __init__(self, id_=None, name=None, definer=None, reference=None):
3332 def add_kill_chain_phase (self , value ):
3433 self .kill_chain_phases .append (value )
3534
36- """
37- def to_obj(self, return_obj=None, ns_info=None):
38- super(KillChain, self).to_obj(return_obj=return_obj, ns_info=ns_info)
39-
40- if not return_obj:
41- return_obj = self._binding_class()
42-
43- return_obj.id = self.id_
44- return_obj.name = self.name
45- return_obj.definer = self.definer
46- return_obj.reference = self.reference
47- return_obj.number_of_phases = self.number_of_phases
48- return_obj.Kill_Chain_Phase = self.kill_chain_phases.to_obj(ns_info=ns_info)
49-
50- return return_obj
51- """
52-
5335 def __eq__ (self , other ):
5436 if self is other :
5537 return True
@@ -62,41 +44,6 @@ def __eq__(self, other):
6244 def __ne__ (self , other ):
6345 return not self .__eq__ (other )
6446
65- """
66- @classmethod
67- def from_obj(cls, obj, return_obj=None):
68- if not obj:
69- return None
70- if not return_obj:
71- return_obj = cls()
72-
73- return_obj.id_ = obj.id
74- return_obj.name = obj.name
75- return_obj.definer = obj.definer
76- return_obj.reference = obj.reference
77- return_obj.number_of_phases = obj.number_of_phases
78- return_obj.kill_chain_phases = _KillChainPhases.from_obj(obj.Kill_Chain_Phase)
79-
80- return return_obj
81-
82- @classmethod
83- def from_dict(cls, d, return_obj=None):
84- if not d:
85- return None
86- if not return_obj:
87- return_obj = cls()
88-
89- get = d.get
90- return_obj.id_ = get('id')
91- return_obj.name = get('name')
92- return_obj.definer = get('definer')
93- return_obj.reference = get('reference')
94- return_obj.number_of_phases = get('number_of_phases')
95- return_obj.kill_chain_phases = \
96- _KillChainPhases.from_dict(get('kill_chain_phases'))
97-
98- return return_obj
99- """
10047
10148class KillChains (stix .EntityList ):
10249 _binding = common_binding
@@ -114,41 +61,15 @@ class KillChainPhase(stix.Entity):
11461
11562 phase_id = AttributeField ("phase_id" )
11663 name = AttributeField ("name" )
117- ordinality = AttributeField ("ordinality" )
64+ ordinality = fields . IntegerField ("ordinality" )
11865
11966 def __init__ (self , phase_id = None , name = None , ordinality = None ):
120- self ._fields = {}
67+ super (KillChainPhase , self ).__init__ ()
68+
12169 self .phase_id = phase_id
12270 self .name = name
12371 self .ordinality = ordinality
12472
125-
126- """
127- @property
128- def ordinality(self):
129- return self._ordinality
130-
131- @ordinality.setter
132- def ordinality(self, value):
133- if value is not None:
134- self._ordinality = int(value)
135- else:
136- self._ordinality = None
137- """
138- """
139- def to_obj(self, return_obj=None, ns_info=None):
140- if not return_obj:
141- return_obj = self._binding_class()
142-
143- super(KillChainPhase, self).to_obj(return_obj=return_obj, ns_info=ns_info)
144-
145- return_obj.phase_id = self.phase_id
146- return_obj.name = self.name
147- return_obj.ordinality = self.ordinality
148-
149- return return_obj
150- """
151-
15273 def __eq__ (self , other ):
15374 if other is self :
15475 return True
@@ -164,37 +85,6 @@ def __ne__(self, other):
16485 def __hash__ (self ):
16586 return hash (tuple (sorted (self .to_dict ().items ())))
16687
167- """
168- @classmethod
169- def from_obj(cls, obj, return_obj=None):
170- if not obj:
171- return None
172-
173- if not return_obj:
174- return_obj = cls()
175-
176- return_obj.phase_id = obj.phase_id
177- return_obj.name = obj.name
178- return_obj.ordinality = obj.ordinality
179-
180- return return_obj
181-
182- @classmethod
183- def from_dict(cls, d, return_obj=None):
184- if not d:
185- return None
186- if not return_obj:
187- return_obj = cls()
188-
189- return_obj.phase_id = d.get('phase_id')
190- return_obj.name = d.get('name')
191- return_obj.ordinality = d.get('ordinality')
192-
193- return return_obj
194-
195- def to_dict(self):
196- return super(KillChainPhase, self).to_dict()
197- """
19888
19989class KillChainPhaseReference (KillChainPhase ):
20090 _binding = common_binding
@@ -205,49 +95,10 @@ class KillChainPhaseReference(KillChainPhase):
20595 kill_chain_name = AttributeField ("kill_chain_name" )
20696
20797 def __init__ (self , phase_id = None , name = None , ordinality = None , kill_chain_id = None , kill_chain_name = None ):
208- self ._fields = {}
20998 super (KillChainPhaseReference , self ).__init__ (phase_id , name , ordinality )
21099 self .kill_chain_id = kill_chain_id
211100 self .kill_chain_name = kill_chain_name
212101
213- """
214- def to_obj(self, return_obj=None, ns_info=None):
215- if not return_obj:
216- return_obj = self._binding_class()
217-
218- super(KillChainPhaseReference, self).to_obj(return_obj=return_obj, ns_info=ns_info)
219- return_obj.kill_chain_id = self.kill_chain_id
220- return_obj.kill_chain_name = self.kill_chain_name
221- return return_obj
222-
223- @classmethod
224- def from_obj(cls, obj, return_obj=None):
225- if not obj:
226- return None
227- if not return_obj:
228- return_obj = cls()
229-
230- super(KillChainPhaseReference, cls).from_obj(obj, return_obj=return_obj)
231-
232- return_obj.kill_chain_id = obj.kill_chain_id
233- return_obj.kill_chain_name = obj.kill_chain_name
234- return return_obj
235-
236- def to_dict(self):
237- return super(KillChainPhaseReference, self).to_dict()
238-
239- @classmethod
240- def from_dict(cls, d, return_obj=None):
241- if not d:
242- return None
243- if not return_obj:
244- return_obj = cls()
245-
246- super(KillChainPhaseReference, cls).from_dict(d, return_obj=return_obj)
247- return_obj.kill_chain_id = d.get('kill_chain_id')
248- return_obj.kill_chain_name = d.get('kill_chain_name')
249- return return_obj
250- """
251102
252103class KillChainPhasesReference (stix .EntityList ):
253104 _binding = common_binding
0 commit comments