export default class GraphComponent {
  constructor() {
    GraphComponent.constructor_.apply(this, arguments)
  }
  static constructor_() {
    this._isMarked = false
    this._isVisited = false
    this._data = null
  }
  static getComponentWithVisitedState(i, visitedState) {
    while (i.hasNext()) {
      const comp = i.next()
      if (comp.isVisited() === visitedState) return comp
    }
    return null
  }
  static setVisited(i, visited) {
    while (i.hasNext()) {
      const comp = i.next()
      comp.setVisited(visited)
    }
  }
  static setMarked(i, marked) {
    while (i.hasNext()) {
      const comp = i.next()
      comp.setMarked(marked)
    }
  }
  setVisited(isVisited) {
    this._isVisited = isVisited
  }
  isMarked() {
    return this._isMarked
  }
  setData(data) {
    this._data = data
  }
  getData() {
    return this._data
  }
  setMarked(isMarked) {
    this._isMarked = isMarked
  }
  getContext() {
    return this._data
  }
  isVisited() {
    return this._isVisited
  }
  setContext(data) {
    this._data = data
  }
}