Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. trait Node {
  2. abstract final String name
  3. Node parent = null
  4.  
  5. List<Node> children = [];
  6.  
  7. Node(name: name) {
  8. this.name = name
  9. }
  10.  
  11. @Override
  12. void setChildren(List<Node> nodes) {
  13. nodes.each { -> node
  14. node.parent = this
  15. }
  16. this.children = nodes
  17. }
  18.  
  19. @Override
  20. List<Node> getChildren() {
  21. this.children
  22. }
  23.  
  24. void addChild(Node node) {
  25. node.parent = this
  26. this.children << node
  27. }
  28.  
  29. @Override
  30. Node getParent() {
  31. this.parent?
  32. }
  33.  
  34. @Override
  35. void setParent(Node node) {
  36. if (this.parent?)
  37. throw new Exception("Parent already set for node: ${node}")
  38. this.parent = node
  39. }
  40.  
  41. Boolean isRoot() {
  42. !this.parent ? true : false
  43. }
  44. }
  45.  
  46.  
  47. class Tree {
  48. List<Node> nodes
  49.  
  50. void walk() {}
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement