BaseNode.java 834 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.genersoft.iot.vmp.utils.node;
  2. import com.fasterxml.jackson.annotation.JsonInclude;
  3. import lombok.Data;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. /**
  7. * 节点基类
  8. *
  9. */
  10. @Data
  11. public class BaseNode<T> implements INode<T> {
  12. private static final long serialVersionUID = 1L;
  13. /**
  14. * 主键ID
  15. */
  16. protected int id;
  17. /**
  18. * 父节点ID
  19. */
  20. protected String parentId;
  21. /**
  22. * 子孙节点
  23. */
  24. @JsonInclude(JsonInclude.Include.NON_EMPTY)
  25. protected List<T> children = new ArrayList<T>();
  26. /**
  27. * 是否有子孙节点
  28. */
  29. @JsonInclude(JsonInclude.Include.NON_EMPTY)
  30. private Boolean hasChildren;
  31. /**
  32. * 是否有子孙节点
  33. *
  34. * @return Boolean
  35. */
  36. @Override
  37. public Boolean getHasChildren() {
  38. if (children.size() > 0) {
  39. return true;
  40. } else {
  41. return this.hasChildren;
  42. }
  43. }
  44. }