From c5a0e597baf7a1cbed027fd46844e53f813d103a Mon Sep 17 00:00:00 2001 From: frauzufall Date: Fri, 24 Apr 2020 16:00:57 +0200 Subject: [PATCH] AbstractOptions: implements Map #1 - this makes it possible to use options with the scijava CommandService.run(final Class commandClass, final boolean process, final Map inputMap) method --- .../org/scijava/optional/AbstractOptions.java | 64 ++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/scijava/optional/AbstractOptions.java b/src/main/java/org/scijava/optional/AbstractOptions.java index 0e6777a..eb6f998 100644 --- a/src/main/java/org/scijava/optional/AbstractOptions.java +++ b/src/main/java/org/scijava/optional/AbstractOptions.java @@ -1,9 +1,11 @@ package org.scijava.optional; +import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Set; -public abstract class AbstractOptions< T extends AbstractOptions< T > > implements Options< T > +public abstract class AbstractOptions< T extends AbstractOptions< T > > implements Options< T >, Map { final LinkedHashMap< String, Object > theOptions = new LinkedHashMap<>(); @@ -57,4 +59,64 @@ public String toString() sb.append( "}" ); return sb.toString(); } + + @Override + public int size() { + return theOptions.size(); + } + + @Override + public boolean isEmpty() { + return theOptions.isEmpty(); + } + + @Override + public boolean containsKey(Object key) { + return theOptions.containsKey(key); + } + + @Override + public boolean containsValue(Object value) { + return theOptions.containsValue(value); + } + + @Override + public Object get(Object key) { + return theOptions.get(key); + } + + @Override + public Object put(String key, Object value) { + return theOptions.put(key, value); + } + + @Override + public Object remove(Object key) { + return theOptions.remove(key); + } + + @Override + public void putAll(Map m) { + theOptions.putAll(m); + } + + @Override + public void clear() { + theOptions.clear(); + } + + @Override + public Set keySet() { + return theOptions.keySet(); + } + + @Override + public Collection values() { + return theOptions.values(); + } + + @Override + public Set> entrySet() { + return theOptions.entrySet(); + } }