/** * Metadata => Visitor */ void visitor(ASTQuery ast) { if (ast.hasMetadata(Metadata.METADATA)){ add(new MetadataVisitor()); } if (ast.hasMetadata(Metadata.VISITOR)) { for (String name : ast.getMetadata().getValues(Metadata.VISITOR)) { try { Class visClass = Class.forName(name); Object obj = visClass.newInstance(); if (obj instanceof QueryVisitor) { add((QueryVisitor) obj); } else { logger.error("Undefined QueryVisitor: " + name); } } catch (ClassNotFoundException ex) { logger.error("Undefined QueryVisitor: " + name); } catch (InstantiationException ex) { logger.error("Undefined QueryVisitor: " + name); } catch (IllegalAccessException ex) { logger.error("Undefined QueryVisitor: " + name); } } } }
/** * Metadata => Visitor */ void visitor(ASTQuery ast) { if (ast.hasMetadata(Metadata.METADATA)){ add(new MetadataVisitor()); } if (ast.hasMetadata(Metadata.VISITOR)) { for (String name : ast.getMetadata().getValues(Metadata.VISITOR)) { try { Class visClass = Class.forName(name); Object obj = visClass.newInstance(); if (obj instanceof QueryVisitor) { add((QueryVisitor) obj); } else { logger.error("Undefined QueryVisitor: " + name); } } catch (ClassNotFoundException ex) { logger.error("Undefined QueryVisitor: " + name); } catch (InstantiationException ex) { logger.error("Undefined QueryVisitor: " + name); } catch (IllegalAccessException ex) { logger.error("Undefined QueryVisitor: " + name); } } } }
/** * Generate a complementary Query that checks: definition of class/property */ void check(Triple tt, Edge edge) { ASTQuery aa = new Checker(ast).check(tt); if (aa != null) { Transformer tr = Transformer.create(); Query qq = tr.transform(aa); add(edge, qq); } }
/** * Generate a complementary Query that checks: definition of class/property */ void check(Triple tt, Edge edge) { ASTQuery aa = new Checker(ast).check(tt); if (aa != null) { Transformer tr = Transformer.create(); Query qq = tr.transform(aa); add(edge, qq); } }
protected Transformer transformer(){ Transformer transformer = Transformer.create(); transformer.setSPARQLEngine(this); if (sort != null) { transformer.set(sort); } if (getVisitorList()!=null){ transformer.add(getVisitorList()); } return transformer; }
protected Transformer transformer(){ Transformer transformer = Transformer.create(); transformer.setSPARQLEngine(this); if (sort != null) { transformer.set(sort); } if (getVisitorList()!=null){ transformer.add(getVisitorList()); } return transformer; }
/** * use case: * @federate <s1> * @federate <s2> * select * where { } * Rewrite every triple t as: service <s1> <s2> { t } */ void federate(ASTQuery ast) { if (ast.hasMetadata(Metadata.FEDERATION) && !ast.hasMetadata(Metadata.FEDERATE)) { add(new FederateVisitor(getSPARQLEngine())); } else if (ast.getServiceList() == null && getServiceList() != null) { // default service list ast.setServiceList(getServiceList()); if (ast.getServiceList().size() == 1) { ast.defService(ast.getServiceList().get(0).getLabel()); } } if (ast.getServiceList() != null && ast.getServiceList().size() > 1) { ast.defService((String) null); add(new FederateVisitor(getSPARQLEngine())); } }
/** * use case: * @federate <s1> * @federate <s2> * select * where { } * Rewrite every triple t as: service <s1> <s2> { t } */ void federate(ASTQuery ast) { if (ast.hasMetadata(Metadata.FEDERATION) && !ast.hasMetadata(Metadata.FEDERATE)) { add(new FederateVisitor(getSPARQLEngine())); } else if (ast.getServiceList() == null && getServiceList() != null) { // default service list ast.setServiceList(getServiceList()); if (ast.getServiceList().size() == 1) { ast.defService(ast.getServiceList().get(0).getLabel()); } } if (ast.getServiceList() != null && ast.getServiceList().size() > 1) { ast.defService((String) null); add(new FederateVisitor(getSPARQLEngine())); } }
add(select, exp);
add(select, exp);