
com.xxl.rpc.registry.impl.LocalServiceRegistry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xxl-rpc-core Show documentation
Show all versions of xxl-rpc-core Show documentation
A high performance, distributed RPC framework.
package com.xxl.rpc.registry.impl;
import com.xxl.rpc.registry.ServiceRegistry;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
/**
* service registry for "local"
*
* @author xuxueli 2018-10-17
*/
public class LocalServiceRegistry extends ServiceRegistry {
/**
* registry data
*/
private Map> registryData;
/**
* @param param ignore, not use
*/
@Override
public void start(Map param) {
registryData = new HashMap>();
}
@Override
public void stop() {
registryData.clear();
}
@Override
public boolean registry(Set keys, String value) {
if (keys==null || keys.size()==0 || value==null || value.trim().length()==0) {
return false;
}
for (String key : keys) {
TreeSet values = registryData.get(key);
if (values == null) {
values = new TreeSet<>();
registryData.put(key, values);
}
values.add(value);
}
return true;
}
@Override
public boolean remove(Set keys, String value) {
if (keys==null || keys.size()==0 || value==null || value.trim().length()==0) {
return false;
}
for (String key : keys) {
TreeSet values = registryData.get(key);
if (values != null) {
values.remove(value);
}
}
return true;
}
@Override
public Map> discovery(Set keys) {
if (keys==null || keys.size()==0) {
return null;
}
Map> registryDataTmp = new HashMap>();
for (String key : keys) {
TreeSet valueSetTmp = discovery(key);
if (valueSetTmp != null) {
registryDataTmp.put(key, valueSetTmp);
}
}
return registryDataTmp;
}
@Override
public TreeSet discovery(String key) {
return registryData.get(key);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy