/** * Copyright 2012 Universitat Pompeu Fabra. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ package org.onexus.resource.api; import java.util.HashMap; import java.util.Map; public class Parameters extends HashMap<ParameterKey, String> { public Parameters() { super(); } public Parameters(Map<ParameterKey, String> map) { super(map); } public String get(Object key) { if (!(key instanceof ParameterKey)) { throw new UnsupportedOperationException("Key object must implement ParameterKey interface"); } ParameterKey parameterKey = (ParameterKey) key; if (!parameterKey.isOptional() && !containsKey(key)) { throw new UnsupportedOperationException( "Parameter '" + parameterKey.getKey() + " - " + parameterKey.getDescription() + "' is mandatory"); } String value = super.get(key); if (value == null) { value = parameterKey.getDefault(); } return value; } }