public TriplesMapGraph getTriplesMapGraph(String triplesMapId) { for(TriplesMapGraph graph : graphs) { if(graph.getTriplesMapIds().contains(triplesMapId)) { return graph; } } return null; } public void addTriplesMap(TriplesMap triplesMap)
public String findRoot(TriplesMapGraph graph){ if(graph.getTriplesMapIds().isEmpty()) { return null; } else { return graph.getTriplesMapIds().iterator().next(); } } }
@Override public String findRoot(TriplesMapGraph graph) { if(graph.getTriplesMapIds().contains(rootTriplesMapId)) return rootTriplesMapId; return this.backupStrategy.findRoot(graph); }
if(graph.getTriplesMapIds().isEmpty()) if(graph.getTriplesMapIds().size() == 1) results.addAll(graph.getTriplesMapIds()); return results;
private Map<TriplesMap, TriplesMapWorker> generatePlan(TriplesMapGraph graph, TriplesMapPlan plan, RootStrategy strategy) { unprocessedTriplesMapsIds.addAll(graph.getTriplesMapIds()); //add strategy Map<TriplesMap, TriplesMapWorker> mapToWorker = new HashMap<>(); if(strategy == null) { strategy = new SteinerTreeRootStrategy(new WorksheetDepthRootStrategy()); } String triplesMapId = graph.findRoot(strategy); do { if(triplesMapId == null) { triplesMapId = unprocessedTriplesMapsIds.iterator().next(); } TriplesMap map = graph.getTriplesMap(triplesMapId); generateTriplesMapWorker(mapToWorker, graph, map, plan); triplesMapId = null; } while(!unprocessedTriplesMapsIds.isEmpty()); return mapToWorker; } private void generateTriplesMapWorker(
@Override public String findRoot(TriplesMapGraph graph) { for(String triplesMapId :graph.getTriplesMapIds()) { if(graph.getTriplesMap(triplesMapId).getSubject().isSteinerTreeRootNode()) { return triplesMapId; } } return this.backupStrategy.findRoot(graph); }
@Override public String findRoot(TriplesMapGraph graph) { Set<String> triplesMapIds = graph.getTriplesMapIds(); int minDepth = Integer.MAX_VALUE; String root = null; for(String triplesMapId : triplesMapIds) { TriplesMap map = graph.getTriplesMap(triplesMapId); int depth = ColumnTemplateTerm.calculateMaximumColumnPathLength(map.getSubject().getTemplate().getAllColumnNameTermElements()); if(depth < minDepth) { minDepth = depth; root = triplesMapId; } } if(root == null) { return backupStrategy.findRoot(graph); } return root; }
for(TriplesMapGraph graph : graphTriplesMapsProcessingOrder.keySet()) if(graph.getTriplesMapIds().contains(triplesMap.getId()))