/**
* Copyright (C) 2003-2008 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.etk.core.rest.method;
import javax.ws.rs.core.MultivaluedMap;
/**
* Can create object by using String value. For each type of object should be
* created new instance of TypeProducer.
*
*/
public interface TypeProducer {
/**
* @param param parameter name, parameter name should be getting from
* parameter annotation
* @param values all value which can be used for construct object, it can be
* header parameters, path parameters, query parameters, etc
* @param defaultValue default value which can be used if in value can't be
* found required value with name <i>param</i>
* @return newly created object
* @throws Exception if any errors occurs
*/
Object createValue(String param, MultivaluedMap<String, String> values, String defaultValue) throws Exception;
}