|
2 | 2 | # See LICENSE.txt for complete terms. |
3 | 3 |
|
4 | 4 | # external |
5 | | -from mixbox import fields |
| 5 | +from mixbox import fields, entities |
6 | 6 |
|
7 | 7 | from cybox.core import Observable, ObservableComposition |
8 | 8 | from cybox.common import Time |
@@ -190,7 +190,7 @@ class Indicator(stix.BaseCoreComponent): |
190 | 190 | kill_chain_phases = fields.TypedField("Kill_Chain_Phases", KillChainPhasesReference) |
191 | 191 | valid_time_positions = fields.TypedField("Valid_Time_Position", ValidTime, multiple=True, key_name="valid_time_positions") |
192 | 192 | related_indicators = fields.TypedField("Related_Indicators", RelatedIndicators) |
193 | | - related_campaigns = fields.TypedField("Related_Campaigns", type_="stix.indicator.RelatedCampaigns") |
| 193 | + related_campaigns = fields.TypedField("Related_Campaigns", type_="stix.indicator.RelatedCampaignRefs") |
194 | 194 | likely_impact = fields.TypedField("Likely_Impact", Statement) |
195 | 195 | negate = fields.TypedField("negate") |
196 | 196 | related_packages = fields.TypedField("Related_Packages", RelatedPackageRefs) |
@@ -745,8 +745,8 @@ def add_object(self, object_): |
745 | 745 | self.add_observable(observable) |
746 | 746 |
|
747 | 747 |
|
748 | | - def to_obj(self, return_obj=None, ns_info=None): |
749 | | - obj = super(Indicator, self).to_obj(return_obj=return_obj, ns_info=ns_info) |
| 748 | + def to_obj(self, ns_info=None): |
| 749 | + obj = super(Indicator, self).to_obj(ns_info=ns_info) |
750 | 750 |
|
751 | 751 | if self.observables: |
752 | 752 | if len(self.observables) > 1: |
@@ -841,7 +841,7 @@ def from_dict(cls, dict_repr, return_obj=None): |
841 | 841 | return return_obj |
842 | 842 | """ |
843 | 843 |
|
844 | | -class CompositeIndicatorExpression(stix.EntityList): |
| 844 | +class CompositeIndicatorExpression(entities.EntityList): |
845 | 845 | """Implementation of the STIX ``CompositeIndicatorExpressionType``. |
846 | 846 |
|
847 | 847 | The ``CompositeIndicatorExpression`` class implements methods found on |
@@ -891,26 +891,20 @@ class CompositeIndicatorExpression(stix.EntityList): |
891 | 891 | OP_OR = "OR" |
892 | 892 | OPERATORS = (OP_AND, OP_OR) |
893 | 893 |
|
894 | | - def __init__(self, operator="OR", *args): |
895 | | - super(CompositeIndicatorExpression, self).__init__(*args) |
896 | | - self.operator = operator |
897 | | - |
898 | | - @property |
899 | | - def operator(self): |
900 | | - return self._operator |
901 | | - |
902 | | - @operator.setter |
903 | | - def operator(self, value): |
| 894 | + def check_operator(self, value): |
| 895 | + raise ValueError("always") |
904 | 896 | if not value: |
905 | 897 | raise ValueError("operator must not be None or empty") |
906 | 898 | elif value not in self.OPERATORS: |
907 | 899 | raise ValueError("operator must be one of: %s" % (self.OPERATORS,)) |
908 | | - else: |
909 | | - self._operator = value |
| 900 | + |
| 901 | + operator = fields.TypedField("operator", preset_hook=check_operator) |
910 | 902 |
|
911 | | - def __nonzero__(self): |
912 | | - return super(CompositeIndicatorExpression, self).__nonzero__() |
| 903 | + def __init__(self, operator="OR", *args): |
| 904 | + super(CompositeIndicatorExpression, self).__init__(*args) |
| 905 | + self.operator = operator |
913 | 906 |
|
| 907 | + """ |
914 | 908 | def to_obj(self, return_obj=None, ns_info=None): |
915 | 909 | list_obj = super(CompositeIndicatorExpression, self).to_obj(return_obj=return_obj, ns_info=ns_info) |
916 | 910 | list_obj.operator = self.operator |
@@ -943,7 +937,7 @@ def from_dict(cls, dict_repr, return_obj=None): |
943 | 937 | super(CompositeIndicatorExpression, cls).from_dict(dict_repr, return_obj=return_obj) |
944 | 938 | return_obj.operator = dict_repr.get('operator') |
945 | 939 | return return_obj |
946 | | - |
| 940 | + """ |
947 | 941 |
|
948 | 942 | class RelatedCampaignRefs(GenericRelationshipList): |
949 | 943 | _namespace = "http://stix.mitre.org/Indicator-2" |
|
0 commit comments