Node.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import DirectedEdgeStar from './DirectedEdgeStar'
  2. import HashSet from '../../../../java/util/HashSet'
  3. import DirectedEdge from './DirectedEdge'
  4. import GraphComponent from './GraphComponent'
  5. export default class Node extends GraphComponent {
  6. constructor() {
  7. super()
  8. Node.constructor_.apply(this, arguments)
  9. }
  10. static constructor_() {
  11. this._pt = null
  12. this._deStar = null
  13. if (arguments.length === 1) {
  14. const pt = arguments[0]
  15. Node.constructor_.call(this, pt, new DirectedEdgeStar())
  16. } else if (arguments.length === 2) {
  17. const pt = arguments[0], deStar = arguments[1]
  18. this._pt = pt
  19. this._deStar = deStar
  20. }
  21. }
  22. static getEdgesBetween(node0, node1) {
  23. const edges0 = DirectedEdge.toEdges(node0.getOutEdges().getEdges())
  24. const commonEdges = new HashSet(edges0)
  25. const edges1 = DirectedEdge.toEdges(node1.getOutEdges().getEdges())
  26. commonEdges.retainAll(edges1)
  27. return commonEdges
  28. }
  29. isRemoved() {
  30. return this._pt === null
  31. }
  32. addOutEdge(de) {
  33. this._deStar.add(de)
  34. }
  35. getCoordinate() {
  36. return this._pt
  37. }
  38. getOutEdges() {
  39. return this._deStar
  40. }
  41. remove() {
  42. if (arguments.length === 0) {
  43. this._pt = null
  44. } else if (arguments.length === 1) {
  45. const de = arguments[0]
  46. this._deStar.remove(de)
  47. }
  48. }
  49. getIndex(edge) {
  50. return this._deStar.getIndex(edge)
  51. }
  52. getDegree() {
  53. return this._deStar.getDegree()
  54. }
  55. }