package com.robonobo.sonar.beans;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import com.robonobo.core.api.proto.CoreApi.EndPoint;
import com.robonobo.core.api.proto.CoreApi.Node;
/** Hibernate wrapper class around CoreApi.Node */
public class SonarNode {
private String id;
private String applicationUri;
private Date lastSeen;
private int protocolVersion;
private boolean supernode;
private Set<SonarEndPoint> endPoints = new HashSet<SonarEndPoint>();
public SonarNode() {
}
public SonarNode(Node nodeMsg) {
id = nodeMsg.getId();
applicationUri = nodeMsg.getApplicationUri();
protocolVersion = nodeMsg.getProtocolVersion();
supernode = nodeMsg.getSupernode();
for (EndPoint epMsg : nodeMsg.getEndPointList()) {
SonarEndPoint ep = new SonarEndPoint(epMsg);
ep.setNode(this);
endPoints.add(ep);
}
}
public Node toMsg() {
Node.Builder bldr = Node.newBuilder();
bldr.setId(id);
bldr.setApplicationUri(applicationUri);
bldr.setProtocolVersion(protocolVersion);
bldr.setSupernode(supernode);
for (SonarEndPoint ep : endPoints) {
bldr.addEndPoint(ep.toMsg());
}
return bldr.build();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getApplicationUri() {
return applicationUri;
}
public void setApplicationUri(String applicationUri) {
this.applicationUri = applicationUri;
}
public Date getLastSeen() {
return lastSeen;
}
public void setLastSeen(Date lastSeen) {
this.lastSeen = lastSeen;
}
public int getProtocolVersion() {
return protocolVersion;
}
public void setProtocolVersion(int protocolVersion) {
this.protocolVersion = protocolVersion;
}
public boolean isSupernode() {
return supernode;
}
public void setSupernode(boolean supernode) {
this.supernode = supernode;
}
public Set<SonarEndPoint> getEndPoints() {
return endPoints;
}
public void setEndPoints(Set<SonarEndPoint> sonarEndPoints) {
this.endPoints = sonarEndPoints;
}
}