/*
* Copyright: Almende B.V. (2014), Rotterdam, The Netherlands
* License: The Apache Software License, Version 2.0
*/
package com.almende.eve.algorithms.clustering;
import java.util.HashMap;
import java.util.Map;
import com.almende.eve.capabilities.AbstractCapabilityBuilder;
/**
* The Class JSONRpcProtocolBuilder.
*/
public class GlobalAddressProtocolBuilder extends
AbstractCapabilityBuilder<GlobalAddressProtocol> {
private static final Map<String, GlobalAddressProtocol> INSTANCES = new HashMap<String, GlobalAddressProtocol>();
/*
* (non-Javadoc)
* @see
* com.almende.eve.capabilities.CapabilityService#get(com.fasterxml.jackson.
* databind
* .JsonNode, com.almende.eve.capabilities.handler.Handler, java.lang.Class)
*/
@Override
public GlobalAddressProtocol build() {
GlobalAddressProtocolConfig config = GlobalAddressProtocolConfig.decorate(getParams());
String id = config.getId();
GlobalAddressProtocol result;
if (INSTANCES.containsKey(id)) {
result = INSTANCES.get(id);
} else {
result = new GlobalAddressProtocol(getParams(), null);
}
INSTANCES.put(id, result);
return result;
}
/**
* Delete.
*
* @param id
* the id
*/
public static void delete(final String id) {
INSTANCES.remove(id);
}
}