def gradient(self, gradient): ret = handle_object_placement(self.__gradient, gradient, Gradient) if ret: self.__gradient = ret else: try: loadChecker(type(self).__name__, gradient, ['colors', 'minValue', 'maxValue'], "gradient") self.__gradient = Gradient(gradient['colors'], gradient['minValue'], gradient['maxValue']) except MissingParameters as e: handler(type(self).__name__, 'Gradient {} is missing parameters: ' '{}. Skipping.' .format(gradient, e))
def versions(self, versions): ret = handle_object_placement(self.__versions, versions, Versions) if ret: self.__versions = ret else: typeChecker(type(self).__name__, versions, dict, "version") attack = UNSETVALUE if 'attack' in versions: attack = versions['attack'] try: loadChecker(type(self).__name__, versions, ['layer', 'navigator'], "versions") self.__versions = Versions(versions['layer'], attack, versions['navigator']) except MissingParameters as e: handler(type(self).__name__, 'versions {} is missing parameters: ' '{}. Skipping.' .format(versions, e))
def legendItems(self, legendItems): typeChecker(type(self).__name__, legendItems, list, "legendItems") self.__legendItems = [] for entry in legendItems: ret = handle_object_placement(self.__legendItems, entry, LegendItem, list=True) if ret: self.__legendItems = ret else: try: loadChecker(type(self).__name__, entry, ['label', 'color'], "legendItem") temp = LegendItem(entry['label'], entry['color']) self.__legendItems.append(temp) except MissingParameters as e: handler(type(self).__name__, 'Legend Item {} is missing parameters: ' '{}. Skipping.' .format(entry, e))
def filters(self, filters): ret = handle_object_placement(self.__filters, filters, Filter) if ret: self.__filters = ret else: temp = Filter(self.domain) try: loadChecker(type(self).__name__, filters, ['platforms'], "filters") # force upgrade to v4 if 'stages' in filters: print('[Filters] - V3 Field "stages" detected. Upgrading Filters object to V4.') temp.platforms = filters['platforms'] self.__filters = temp except MissingParameters as e: handler(type(self).__name__, 'Filters {} is missing parameters: ' '{}. Skipping.' .format(filters, e))
def techniques(self, techniques): typeChecker(type(self).__name__, techniques, list, "techniques") self.__techniques = [] for entry in techniques: ret = handle_object_placement(self.__techniques, entry, Technique, list=True) if ret: self.__techniques = ret else: try: loadChecker(type(self).__name__, entry, ['techniqueID'], "technique") temp = Technique(entry['techniqueID']) temp._loader(entry) self.__techniques.append(temp) except MissingParameters as e: handler(type(self).__name__, 'Technique {} is missing parameters: ' '{}. Skipping.' .format(entry, e))
def metadata(self, metadata): typeChecker(type(self).__name__, metadata, list, "metadata") self.__metadata = [] for entry in metadata: ret = handle_object_placement(self.__metadata, entry, Metadata, list=True) if ret: self.__metadata = ret else: try: if "divider" in entry: self.__metadata.append(MetaDiv(entry["divider"])) else: loadChecker(type(self).__name__, entry, ['name', 'value'], "metadata") self.__metadata.append(Metadata(entry['name'], entry['value'])) except MissingParameters as e: handler( type(self).__name__, 'Metadata {} is missing parameters: {}. Skipping.'.format(entry, e) )