View Javadoc
1   package emissary.client.response;
2   
3   import jakarta.xml.bind.annotation.XmlAccessType;
4   import jakarta.xml.bind.annotation.XmlAccessorType;
5   import jakarta.xml.bind.annotation.XmlElement;
6   import jakarta.xml.bind.annotation.XmlRootElement;
7   import org.slf4j.Logger;
8   import org.slf4j.LoggerFactory;
9   
10  import java.util.HashSet;
11  import java.util.Set;
12  
13  @XmlRootElement(name = "peers")
14  @XmlAccessorType(XmlAccessType.NONE)
15  public class PeersResponseEntity extends BaseResponseEntity {
16  
17      private static final long serialVersionUID = 5686691885767273319L;
18  
19      private static final Logger logger = LoggerFactory.getLogger(PeersResponseEntity.class);
20  
21      @XmlElement(name = "local")
22      private PeerList local = new PeerList();
23  
24      @XmlElement(name = "cluster")
25      private Set<PeerList> cluster = new HashSet<>();
26  
27      public PeersResponseEntity() {}
28  
29      public PeersResponseEntity(PeerList local) {
30          this.local = local;
31      }
32  
33      public void addClusterPeers(PeerList pl) {
34          if (cluster == null) {
35              cluster = new HashSet<>();
36          }
37          this.cluster.add(pl);
38      }
39  
40      public PeerList getLocal() {
41          return local;
42      }
43  
44      public void setLocal(PeerList local) {
45          this.local = local;
46      }
47  
48      public Set<PeerList> getCluster() {
49          return cluster;
50      }
51  
52      @Override
53      public void append(BaseEntity e) {
54          addErrors(e.getErrors());
55          if (e instanceof PeersResponseEntity) {
56              PeersResponseEntity pre = this.getClass().cast(e);
57              addClusterPeers(pre.getLocal());
58          }
59      }
60  
61      @Override
62      public void dumpToConsole() {
63          getLocal().dumpToConsole();
64          for (PeerList peer : getCluster()) {
65              if (null != peer) {
66                  peer.dumpToConsole();
67              }
68          }
69          Set<String> errors = getErrors();
70          if (!errors.isEmpty()) {
71              StringBuilder sb = new StringBuilder("\nErrors");
72              for (String error : errors) {
73                  sb.append(error);
74              }
75              logger.error("{}", sb);
76          }
77      }
78  }