Move `creator_of` to DataStore/DataSource
parent
078474259a
commit
d355d1827e
|
@ -108,6 +108,7 @@ class Environment(object):
|
||||||
get = DataStore.__dict__['get']
|
get = DataStore.__dict__['get']
|
||||||
all_versions = DataStore.__dict__['all_versions']
|
all_versions = DataStore.__dict__['all_versions']
|
||||||
query = DataStore.__dict__['query']
|
query = DataStore.__dict__['query']
|
||||||
|
creator_of = DataStore.__dict__['creator_of']
|
||||||
relationships = DataStore.__dict__['relationships']
|
relationships = DataStore.__dict__['relationships']
|
||||||
related_to = DataStore.__dict__['related_to']
|
related_to = DataStore.__dict__['related_to']
|
||||||
add = DataStore.__dict__['add']
|
add = DataStore.__dict__['add']
|
||||||
|
@ -127,22 +128,3 @@ class Environment(object):
|
||||||
def parse(self, *args, **kwargs):
|
def parse(self, *args, **kwargs):
|
||||||
return _parse(*args, **kwargs)
|
return _parse(*args, **kwargs)
|
||||||
parse.__doc__ = _parse.__doc__
|
parse.__doc__ = _parse.__doc__
|
||||||
|
|
||||||
def creator_of(self, obj):
|
|
||||||
"""Retrieve the Identity refered to by the object's `created_by_ref`.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
obj: The STIX object whose `created_by_ref` property will be looked
|
|
||||||
up.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The STIX object's creator, or
|
|
||||||
None, if the object contains no `created_by_ref` property or the
|
|
||||||
object's creator cannot be found.
|
|
||||||
|
|
||||||
"""
|
|
||||||
creator_id = obj.get('created_by_ref', '')
|
|
||||||
if creator_id:
|
|
||||||
return self.get(creator_id)
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
|
@ -99,6 +99,26 @@ class DataStore(object):
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
raise AttributeError('%s has no data source to query' % self.__class__.__name__)
|
raise AttributeError('%s has no data source to query' % self.__class__.__name__)
|
||||||
|
|
||||||
|
def creator_of(self, *args, **kwargs):
|
||||||
|
"""Retrieve the Identity refered to by the object's `created_by_ref`.
|
||||||
|
|
||||||
|
Translate creator_of() call to the appropriate DataSource call.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
obj: The STIX object whose `created_by_ref` property will be looked
|
||||||
|
up.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The STIX object's creator, or
|
||||||
|
None, if the object contains no `created_by_ref` property or the
|
||||||
|
object's creator cannot be found.
|
||||||
|
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return self.source.creator_of(*args, **kwargs)
|
||||||
|
except AttributeError:
|
||||||
|
raise AttributeError('%s has no data source to query' % self.__class__.__name__)
|
||||||
|
|
||||||
def relationships(self, *args, **kwargs):
|
def relationships(self, *args, **kwargs):
|
||||||
"""Retrieve Relationships involving the given STIX object.
|
"""Retrieve Relationships involving the given STIX object.
|
||||||
|
|
||||||
|
@ -258,6 +278,25 @@ class DataSource(with_metaclass(ABCMeta)):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def creator_of(self, obj):
|
||||||
|
"""Retrieve the Identity refered to by the object's `created_by_ref`.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
obj: The STIX object whose `created_by_ref` property will be looked
|
||||||
|
up.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The STIX object's creator, or
|
||||||
|
None, if the object contains no `created_by_ref` property or the
|
||||||
|
object's creator cannot be found.
|
||||||
|
|
||||||
|
"""
|
||||||
|
creator_id = obj.get('created_by_ref', '')
|
||||||
|
if creator_id:
|
||||||
|
return self.get(creator_id)
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
def relationships(self, obj, relationship_type=None, source_only=False, target_only=False):
|
def relationships(self, obj, relationship_type=None, source_only=False, target_only=False):
|
||||||
"""Retrieve Relationships involving the given STIX object.
|
"""Retrieve Relationships involving the given STIX object.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue