+ @Override
+ public Collection<String> getPeerIds() {
+ return peerInfoMap.keySet();
+ }
+
+ @Override
+ public Collection<PeerInfo> getPeers() {
+ return peerInfoMap.values();
+ }
+
+ @Override
+ public PeerInfo getPeerInfo(String peerId) {
+ return peerInfoMap.get(peerId);
+ }
+
+ @Override
+ public String getPeerAddress(String peerId) {
+ String peerAddress = null;
+ PeerInfo peerInfo = peerInfoMap.get(peerId);
+ if(peerInfo != null) {
+ peerAddress = peerInfo.getAddress();
+ if(peerAddress == null) {
+ peerAddress = configParams.getPeerAddressResolver().resolve(peerId);
+ peerInfo.setAddress(peerAddress);
+ }
+ }
+
+ return peerAddress;