public GraphTripliser( Queryable input, GraphMapping graphMapping, GraphNodeTripliserFactory graphNodeTripliserFactory, TripliserManager tripliserManager, QueryService queryService, GraphTagger graphTagger) throws InvalidGraphMappingException, IgnoredGraphMappingException { this.input = input; this.graphMapping = graphMapping; this.graphNodeTripliserFactory = graphNodeTripliserFactory; this.tripliserManager = tripliserManager; this.graphTagger = graphTagger; List<Node> graphNodeList = new ArrayList<Node>(); graphNodeList.add(null); if (graphMapping.getQuery() != null) { try { graphNodeList = queryService.getNodes(input, graphMapping, null, tripliserManager.getGraphContext()); } catch (QueryException e) { throw new InvalidGraphMappingException("Invalid graph query", e); } if (graphNodeList.isEmpty()) { if (graphMapping.isRequired()) throw new InvalidGraphMappingException( "A required graph's query must return at least one result"); else throw new IgnoredGraphMappingException( "A non-required graph's query returned no results"); } } graphNodes = graphNodeList.iterator(); }
public void provideNamesForUnamedMappings(Mapping mapping) throws TripliserException { Set<String> usedNames = new HashSet<String>(); List<GraphMapping> graphMappings = mapping.getGraphMappings(); for (GraphMapping graphMapping : graphMappings) { if (graphMapping.getName() == null) { graphMapping.setName(createNewGraphName("graph", usedNames)); } else { usedNames.add(graphMapping.getName()); } List<ResourceMapping> resourceMappings = graphMapping.getResourceMappings(); for (ResourceMapping resourceMapping : resourceMappings) { if (resourceMapping.getName() == null) { resourceMapping.setName(createNewResourceName("resource", usedNames)); } else { usedNames.add(resourceMapping.getName()); } } } }