diff options
Diffstat (limited to 'src/main/java/com/orbekk/protobuf/ServiceHolder.java')
-rw-r--r-- | src/main/java/com/orbekk/protobuf/ServiceHolder.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/com/orbekk/protobuf/ServiceHolder.java b/src/main/java/com/orbekk/protobuf/ServiceHolder.java new file mode 100644 index 0000000..cab9a5e --- /dev/null +++ b/src/main/java/com/orbekk/protobuf/ServiceHolder.java @@ -0,0 +1,29 @@ +package com.orbekk.protobuf; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; + +import com.google.protobuf.Service; + +public class ServiceHolder { + private static final Logger logger = Logger.getLogger( + ServiceHolder.class.getName()); + private final ConcurrentHashMap<String, Service> services = + new ConcurrentHashMap<String, Service>(); + + public ServiceHolder() { + } + + public void registerService (Service service) { + String serviceName = service.getDescriptorForType().getFullName(); + Service previousService = services.put(serviceName, service); + if (previousService != null) { + logger.warning("Replaced service " + previousService + " with " + + service); + } + } + + public Service get(String fullServiceName) { + return services.get(fullServiceName); + } +} |