/* * (non-Javadoc) * @see de.hpi.bpt.hypergraph.abs.IDirectedHyperGraph#getEdgesWithSourcesAndTargets(java.util.Collection, java.util.Collection) */ public Collection<E> getEdgesWithSourcesAndTargets(Collection<V> ss, Collection<V> ts) { Collection<E> result = new ArrayList<E>(); if (ss == null && ts == null) return result; if (ss.size() == 0 && ts.size() == 0) return result; if (ss != null && ss.size() > 0) { V v = ss.iterator().next(); Collection<E> es = this.getEdgesWithSource(v); if (es == null) return result; Iterator<E> i = es.iterator(); while (i.hasNext()) { E e = i.next(); if (e.hasSources(ss) && e.hasTargets(ts)) result.add(e); } } else if (ts != null && ts.size() > 0) { V v = ts.iterator().next(); Collection<E> es = this.getEdgesWithTarget(v); if (es == null) return result; Iterator<E> i = es.iterator(); while (i.hasNext()) { E e = i.next(); if (e.hasSources(ss) && e.hasTargets(ts)) result.add(e); } } return result; }
/* * (non-Javadoc) * @see de.hpi.bpt.hypergraph.abs.IDirectedHyperGraph#getEdgesWithSources(java.util.Collection) */ public Collection<E> getEdgesWithSources(Collection<V> vs) { Collection<E> result = new ArrayList<E>(); if (vs == null || vs.size() == 0) return result; Iterator<E> i = this.getEdges(vs.iterator().next()).iterator(); while (i.hasNext()) { E e = i.next(); if (e.hasSources(vs)) result.add(e); } return result; }