private Executable<?> getExecutable(AbstractBlock block, Attributes attributes) { String language; if (SOURCE.equals(block.getStyle())) { language = attributes.getString(LANGUAGE); String source = unescapeHtml(block.getContent()); if (CYPHER.equals(language)) { return new CypherExecutable(source); } else { return new ScriptExecutable(language.toLowerCase(), source); } } else { // Use style for native Asciidoc blocks language = block.getStyle(); if (language == null) { // PlantUML extension language = (String) block.getAttributes().get(1); } if (language != null) { return new SourceExecutable<>(language.toLowerCase(), block, AbstractBlock.class); } else { LOGGER.warn("Cannot determine language for '" + block + "'."); } } return null; }
CypherExecutable executable = new CypherExecutable(cypher); Map<String, Boolean> required = extractRequiredConcepts(map, id); Map<String, Parameter> parameters = extractParameters(map, id, context);
private Executable<?> createExecutable(ExecutableRuleType executableRuleType) throws RuleException { SourceType source = executableRuleType.getSource(); if (source != null) { return new SourceExecutable<>(source.getLanguage().toLowerCase(), source.getValue(), String.class); } // for compatibility String cypher = executableRuleType.getCypher(); if (cypher != null) { return new CypherExecutable(cypher); } SourceType scriptType = executableRuleType.getScript(); if (scriptType != null) { return new ScriptExecutable(scriptType.getLanguage().toLowerCase(), scriptType.getValue()); } throw new RuleException("Cannot determine executable for " + executableRuleType.getId()); }