def parse(self, parse_context, graph, node): klass = URIRef(MAIN_NAMESPACE + "Command") check_node_class(self.subclasses, parse_context, graph, node, klass, ErrorMode.IGNORE) base = BaseScriptInfoParser(self.transformer, self.script_kind).parse( parse_context, graph, node) more = CommandScriptInfo() str1_parser = ZeroOnePredicate(URIRef(MAIN_NAMESPACE + "scriptURL"), IRILiteral(ErrorMode.WARNING), ErrorMode.WARNING) str1 = str1_parser.parse(parse_context, graph, node) str2_parser = ZeroOnePredicate( URIRef(MAIN_NAMESPACE + "commandString"), StringLiteral(ErrorMode.WARNING), ErrorMode.WARNING) str2 = str2_parser.parse(parse_context, graph, node) # if str1 is None and str2 is None: # msg = parse_context.translate("Both :scriptURL and :commandString can't be missing in node {node}.").format(node=node) # parse_context.throw(ErrorMode.WARNING, msg) if str1 is not None and str2 is not None: msg = parse_context.translate( "Both :scriptURL and :commandString can't be present in node {node}." ).format(node=node) parse_context.throw(ErrorMode.WARNING, msg) more.script_url = str1 more.command_string = str2 if not more.script_url and len(more.params) != 0: def s(): return parse_context.translate("Cannot provide params for commandString script {node}.").\ format(node=node) parse_context.throw(ErrorMode.FATAL, s) min_parser = ZeroOnePredicate(URIRef(MAIN_NAMESPACE + "minVersion"), StringLiteral(ErrorMode.WARNING), ErrorMode.WARNING) more.min_version = min_parser.parse(parse_context, graph, node) max_parser = ZeroOnePredicate(URIRef(MAIN_NAMESPACE + "maxVersion"), StringLiteral(ErrorMode.WARNING), ErrorMode.WARNING) more.max_version = max_parser.parse(parse_context, graph, node) language_parser = OnePredicate(URIRef(MAIN_NAMESPACE + "language"), IRILiteral(ErrorMode.WARNING), ErrorMode.WARNING) more.language = language_parser.parse(parse_context, graph, node) params_parser = ZeroOnePredicate(URIRef(MAIN_NAMESPACE + "params"), ListParser(_ParamParser(), ErrorMode.FATAL), ErrorMode.WARNING, default_value=[]) more.params = params_parser.parse(parse_context, graph, node) return ScriptInfo(base=base, more=more)
def parse(self, parse_context, graph, node): klass = URIRef(MAIN_NAMESPACE + "Transformer") check_node_class(self.subclasses, parse_context, graph, node, klass, ErrorHandler.IGNORE) result = Transformer() source_namespaces_parser = OneOrMorePredicate( URIRef(MAIN_NAMESPACE + "sourceNamespace"), IRILiteral(ErrorHandler.WARNING), ErrorHandler.WARNING) result.source_namespaces = source_namespaces_parser.parse( parse_context, graph, node) target_namespaces_parser = ZeroOrMorePredicate( URIRef(MAIN_NAMESPACE + "targetNamespace"), IRILiteral(ErrorHandler.WARNING)) result.target_namespaces = target_namespaces_parser.parse( parse_context, graph, node) precedence_parser = ZeroOnePredicate( URIRef(MAIN_NAMESPACE + "precedence"), IRILiteral(ErrorHandler.WARNING), ErrorHandler.WARNING) result.precedence = precedence_parser.parse(parse_context, graph, node) inwardness_parser = ZeroOnePredicate( URIRef(MAIN_NAMESPACE + "inward"), BooleanLiteral(ErrorHandler.WARNING), ErrorHandler.WARNING, True) result.inwardness = inwardness_parser.parse(parse_context, graph, node) ignore_target_parser = ZeroOnePredicate( URIRef(MAIN_NAMESPACE + "ignoreTarget"), BooleanLiteral(ErrorHandler.WARNING), ErrorHandler.WARNING) result.ignore_target = ignore_target_parser.parse( parse_context, graph, node) universal_parser = ZeroOnePredicate( URIRef(MAIN_NAMESPACE + "universal"), BooleanLiteral(ErrorHandler.WARNING), ErrorHandler.WARNING) result.universal = universal_parser.parse(parse_context, graph, node) script_node_parser = ScriptInfoParser(result, self.subclasses, ScriptKindEnum.TRANSFORMER) script_parser = OneOrMorePredicate(URIRef( (MAIN_NAMESPACE + "script")), script_node_parser, ErrorHandler.WARNING) result.scripts = script_parser.parse(parse_context, graph, node) return result
def parse(self, parse_context, graph, node): klass = URIRef(MAIN_NAMESPACE + "WebService") check_node_class(self.subclasses, parse_context, graph, node, klass, ErrorMode.IGNORE) base = BaseScriptInfoParser(self.transformer, self.script_kind).parse( parse_context, graph, node) more = CommandScriptInfo() action_parser = OnePredicate(URIRef(MAIN_NAMESPACE + "action"), IRILiteral(ErrorMode.WARNING)) more.action = action_parser.parse(parse_context, graph, node) method_parser = OnePredicate(URIRef(MAIN_NAMESPACE + "method"), IRILiteral(ErrorMode.WARNING)) more.method = method_parser.parse(parse_context, graph, node) xml_field_parser = OnePredicate(URIRef(MAIN_NAMESPACE + "xmlField"), IRILiteral(ErrorMode.WARNING)) more.xml_field = xml_field_parser.parse(parse_context, graph, node) return ScriptInfo(base=base, more=more)
def scan_see_also(self, graph, kind_URI): nodes = list(graph[:RDFS.seeAlso]) # Can be simplified using OnePredicate class if len(nodes) == 0: return [] if len(nodes) > 1: s = ', '.join([n[0] for n in nodes]) msg = self.parse_context.translate( "Multiple rdfs:seeAlso in asset: {s}").format(s) self.parse_context.throw(ErrorMode.FATAL, msg) return ListParser(IRILiteral(ErrorMode.WARNING)).parse( self.parse_context, graph, nodes[0][1])
def scan_see_also(self, graph, kind_URI): nodes = list(graph[:RDFS.seeAlso]) # Can be simplified using OnePredicate class if len(nodes) == 0: return [] if len(nodes) > 1: # TODO: Show URL of the asset msg = self.parse_context.translate( "Multiple rdfs:seeAlso in asset") #.format() self.parse_context.throw(ErrorHandler.FATAL, msg) return ListParser(IRILiteral(ErrorHandler.WARNING)).parse( self.parse_context, graph, nodes[0])
def __init__(self, execution_context, graph): self.graph = graph self.execution_context = context_for_logger( execution_context, Contexts.default_logger('interpreters-file')) list_node = next(graph[URIRef(PREFIX + "boiler"):URIRef(PREFIX + "interpretersList")]) the_list = ListParser(IRILiteral(ErrorHandler.FATAL), ErrorHandler.FATAL).parse( ParseContext(execution_context), graph, list_node) self.order = {k: v for v, k in enumerate(the_list)}
def parse(self, parse_context, graph, node): ns = OnePredicate(URIRef(MAIN_NAMESPACE + "NS"), IRILiteral(ErrorMode.WARNING), ErrorMode.WARNING).\ parse(parse_context, graph, node) name = OnePredicate(URIRef(MAIN_NAMESPACE + "name"), StringLiteral(ErrorMode.WARNING), ErrorMode.WARNING).\ parse(parse_context, graph, node) return AttributeParam(ns, name)