Subgraph.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import HashSet from '../../../../java/util/HashSet'
  2. import NodeMap from './NodeMap'
  3. import ArrayList from '../../../../java/util/ArrayList'
  4. export default class Subgraph {
  5. constructor() {
  6. Subgraph.constructor_.apply(this, arguments)
  7. }
  8. static constructor_() {
  9. this._parentGraph = null
  10. this._edges = new HashSet()
  11. this._dirEdges = new ArrayList()
  12. this._nodeMap = new NodeMap()
  13. const parentGraph = arguments[0]
  14. this._parentGraph = parentGraph
  15. }
  16. dirEdgeIterator() {
  17. return this._dirEdges.iterator()
  18. }
  19. edgeIterator() {
  20. return this._edges.iterator()
  21. }
  22. getParent() {
  23. return this._parentGraph
  24. }
  25. nodeIterator() {
  26. return this._nodeMap.iterator()
  27. }
  28. contains(e) {
  29. return this._edges.contains(e)
  30. }
  31. add(e) {
  32. if (this._edges.contains(e)) return null
  33. this._edges.add(e)
  34. this._dirEdges.add(e.getDirEdge(0))
  35. this._dirEdges.add(e.getDirEdge(1))
  36. this._nodeMap.add(e.getDirEdge(0).getFromNode())
  37. this._nodeMap.add(e.getDirEdge(1).getFromNode())
  38. }
  39. }