From b1c8641a63a67e3c64d948f9e8dce5c01e11e2dd Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 5 May 2010 15:29:01 +0000 Subject: Merged feature branch mocca-1.2.13-id@r724 back to trunk. git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@725 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../gv/egiz/bku/binding/InputDecoderFactory.java | 148 +++++++++++---------- 1 file changed, 75 insertions(+), 73 deletions(-) (limited to 'bkucommon/src/main/java/at/gv/egiz/bku/binding/InputDecoderFactory.java') diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/binding/InputDecoderFactory.java b/bkucommon/src/main/java/at/gv/egiz/bku/binding/InputDecoderFactory.java index 211deee7..081d24d4 100644 --- a/bkucommon/src/main/java/at/gv/egiz/bku/binding/InputDecoderFactory.java +++ b/bkucommon/src/main/java/at/gv/egiz/bku/binding/InputDecoderFactory.java @@ -14,76 +14,78 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package at.gv.egiz.bku.binding; - -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Factory to get a matching instance for a encoded input stream when reading a http request. - * - */ -public class InputDecoderFactory { - - public final static String MULTIPART_FORMDATA = "multipart/form-data"; - public final static String URL_ENCODED = "application/x-www-form-urlencoded"; - - private static InputDecoderFactory instance = new InputDecoderFactory(); - private static Log log = LogFactory.getLog(InputDecoderFactory.class); - - private String defaultEncoding = URL_ENCODED; - private Map> decoderMap = new HashMap>(); - - private InputDecoderFactory() { - decoderMap.put(MULTIPART_FORMDATA, MultiPartFormDataInputDecoder.class); - decoderMap.put(URL_ENCODED, XWWWFormUrlInputDecoder.class); - } - - public static InputDecoder getDefaultDecoder(InputStream is) { - return getDecoder(instance.defaultEncoding, is); - } - - /** - * - * @param contentType - * @param is - * @return null if the content type is not supported - */ - public static InputDecoder getDecoder(String contentType, InputStream is) { - String prefix = contentType.split(";")[0].trim().toLowerCase(); - Class dec = instance.decoderMap.get(prefix); - if (dec == null) { - log.info("Unknown encoding prefix " + contentType); - return null; - } - InputDecoder id; - try { - id = dec.newInstance(); - id.setContentType(contentType); - id.setInputStream(is); - return id; - } catch (InstantiationException e) { - log.error(e); - throw new IllegalArgumentException( - "Cannot get an input decoder for content type: " + contentType); - } catch (IllegalAccessException e) { - log.error(e); - throw new IllegalArgumentException( - "Cannot get an input decoder for content type: " + contentType); - } - } - - /** - * Allows to register decoders for special mime types. - * @param mimeType - * @param decoder - */ - public static void registerDecoder(String mimeType, - Class decoder) { - instance.decoderMap.put(mimeType.toLowerCase(), decoder); - } -} +package at.gv.egiz.bku.binding; + +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Factory to get a matching instance for a encoded input stream when reading a http request. + * + */ +public class InputDecoderFactory { + + public final static String MULTIPART_FORMDATA = "multipart/form-data"; + public final static String URL_ENCODED = "application/x-www-form-urlencoded"; + + private static InputDecoderFactory instance = new InputDecoderFactory(); + + private String defaultEncoding = URL_ENCODED; + private Map> decoderMap = new HashMap>(); + + private InputDecoderFactory() { + decoderMap.put(MULTIPART_FORMDATA, MultiPartFormDataInputDecoder.class); + decoderMap.put(URL_ENCODED, XWWWFormUrlInputDecoder.class); + } + + public static InputDecoder getDefaultDecoder(InputStream is) { + return getDecoder(instance.defaultEncoding, is); + } + + /** + * + * @param contentType + * @param is + * @return null if the content type is not supported + */ + public static InputDecoder getDecoder(String contentType, InputStream is) { + + Logger log = LoggerFactory.getLogger(InputDecoderFactory.class); + + String prefix = contentType.split(";")[0].trim().toLowerCase(); + Class dec = instance.decoderMap.get(prefix); + if (dec == null) { + log.info("Unknown encoding prefix " + contentType); + return null; + } + InputDecoder id; + try { + id = dec.newInstance(); + id.setContentType(contentType); + id.setInputStream(is); + return id; + } catch (InstantiationException e) { + log.error("Failed to instantiate InputDecoder.", e); + throw new IllegalArgumentException( + "Cannot get an input decoder for content type: " + contentType); + } catch (IllegalAccessException e) { + log.error("Failed to instantiate InputDecoder.", e); + throw new IllegalArgumentException( + "Cannot get an input decoder for content type: " + contentType); + } + } + + /** + * Allows to register decoders for special mime types. + * @param mimeType + * @param decoder + */ + public static void registerDecoder(String mimeType, + Class decoder) { + instance.decoderMap.put(mimeType.toLowerCase(), decoder); + } +} -- cgit v1.2.3