@Override public int compare(TriplesMapLink o1, TriplesMapLink o2) { boolean o1IsSource = o1.getSourceMap().getId().compareTo(localTriplesMapId) == 0; boolean o2IsSource = o2.getSourceMap().getId().compareTo(localTriplesMapId) == 0; if((o1IsSource && o2IsSource)|| (!o1IsSource && !o2IsSource)) { return 0; } else if(o1IsSource && !o2IsSource) { return -1; } else { return 1; } }
private boolean allLinksAreIncoming(String triplesMapId, List<TriplesMapLink> links) { for(TriplesMapLink link : links) { if(link.getSourceMap().getId().compareTo(triplesMapId) == 0 && !link.isFlipped()) { return false; } } logger.debug("all links are in coming " + triplesMapId); return true; }
private void updateCache(TriplesMapLink link) { // Add source neighboring links to the cache List<TriplesMapLink> sourceNeighbouringLinks = neighboringTriplesMapCache.get(link.getSourceMap().getId()); if (sourceNeighbouringLinks == null) { sourceNeighbouringLinks = new LinkedList<>(); } sourceNeighbouringLinks.add(link); triplesMapIndex.put(link.getSourceMap().getId(),link.getSourceMap()); neighboringTriplesMapCache.put(link.getSourceMap().getId(), sourceNeighbouringLinks); // Add target neighboring links to the cache List<TriplesMapLink> targetNeighbouringLinks = neighboringTriplesMapCache.get(link.getTargetMap().getId()); if (targetNeighbouringLinks == null) { targetNeighbouringLinks = new LinkedList<>(); } targetNeighbouringLinks.add(link); triplesMapIndex.put(link.getTargetMap().getId(),link.getTargetMap()); neighboringTriplesMapCache.put(link.getTargetMap().getId(), targetNeighbouringLinks); }
private void stopTriplesMap(String rootId, List<String> tripleMapToStop, List<TriplesMapLink> remainedLinks, Set<String> visited) { visited.add(rootId); if (tripleMapToStop.contains(rootId)) { return; } Set<String> next = new HashSet<>(); List<TriplesMapLink> links = neighboringTriplesMapCache.get(rootId); if (links != null) { for (TriplesMapLink link : links) { if (link.getSourceMap().getId().equals(rootId)) { next.add(link.getTargetMap().getId()); remainedLinks.add(link); } } } for (String n : next) { if (!visited.contains(n)) { stopTriplesMap(n, tripleMapToStop, remainedLinks, visited); } } }
public List<String> removeLink(TriplesMapLink link) { List<String> removedTriplesMaps = new LinkedList<>(); links.remove(link); removedTriplesMaps.addAll(removeLinkFromCache(link, link.getTargetMap().getId())); removedTriplesMaps.addAll(removeLinkFromCache(link, link.getSourceMap().getId())); return removedTriplesMaps; }
private void killPredicateObjectMap(String rootId, List<String> POMToKill, List<TriplesMapLink> remainedLinks, Set<String> visited) { visited.add(rootId); Set<String> next = new HashSet<>(); List<TriplesMapLink> links = neighboringTriplesMapCache.get(rootId); if (links != null) { for (TriplesMapLink link : links) { if (link.getSourceMap().getId().equals(rootId) && !POMToKill.contains(link.getPredicateObjectMapLink().getId())) { next.add(link.getTargetMap().getId()); remainedLinks.add(link); } } } for (String n : next) { if (!visited.contains(n)) { killPredicateObjectMap(n, POMToKill, remainedLinks, visited); } } }
private void killTriplesMap(String rootId, List<String> tripleMapToKill, List<TriplesMapLink> remainedLinks, Set<String> visited) { visited.add(rootId); Set<String> next = new HashSet<>(); List<TriplesMapLink> links = neighboringTriplesMapCache.get(rootId); if (links != null) { for (TriplesMapLink link : links) { if (link.getSourceMap().getId().equals(rootId) && !tripleMapToKill.contains(link.getTargetMap().getId())) { next.add(link.getTargetMap().getId()); remainedLinks.add(link); } } } for (String n : next) { if (!visited.contains(n)) { killTriplesMap(n, tripleMapToKill, remainedLinks, visited); } } }
public TriplesMapGraph copyGraph(HashSet<String> triplesMapsIds) { TriplesMapGraph newGraph = new TriplesMapGraph(); for(TriplesMapLink link : links) { if (triplesMapsIds != null) { triplesMapsIds.add(link.getSourceMap().getId()); triplesMapsIds.add(link.getTargetMap().getId()); } newGraph.addLink(link); } return newGraph; }
TriplesMap source = graph.getTriplesMap(link.getSourceMap().getId()); TriplesMap target = graph.getTriplesMap(link.getTargetMap().getId()); if(source != null || target != null)
if(link.getSourceMap().getId().compareTo(triplesMapId) == 0) nextNode = link.getSourceMap().getId();
newGraph.removeLink(link); if(link.getSourceMap().getId().compareTo(triplesMapId) == 0 && (triplesMapId.compareTo(rootTriplesMapId) != 0))
for(TriplesMapLink link : links) if((link.getSourceMap() == map && !link.isFlipped()) || (link.getTargetMap() == map && link.isFlipped())) TriplesMap mapDependedOn = link.getSourceMap()==map? link.getTargetMap() : link.getSourceMap(); if(!mapToWorker.containsKey(mapDependedOn))
public TriplesMapGraph copyGraph() { TriplesMapGraph newGraph = new TriplesMapGraph(); for(TriplesMap triplesMap : triplesMapIndex.values()) { newGraph.addTriplesMap(triplesMap); } for(TriplesMapLink link : links) { newGraph.addLink(new TriplesMapLink(link.getSourceMap(), link.getTargetMap(), link.getPredicateObjectMapLink())); } return newGraph; } public TriplesMapGraph shallowCopyGraph() {
if(link.getSourceMap().getId().compareTo(triplesMap.getId()) ==0 && !link.isFlipped() || link.getTargetMap().getId().compareTo(triplesMap.getId()) == 0 && link.isFlipped()) if(link.isFlipped()) objectTriplesMap = link.getSourceMap(); LOG.error("Unable to generate plan for link " + link.getSourceMap().getId() + " " + link.getPredicateObjectMapLink().getPredicate().getId() + " " + link.getTargetMap().getId(), e);