Author: niallp
Date: Fri Jun 29 20:04:13 2007
New Revision: 552084
URL: http://svn.apache.org/viewvc?view=rev&rev=552084
Log:
BEANUTILS-286 - New Facade converter implementation - hide non-Converter public
APIs
Added:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/converters/ConverterFacade.java
(with props)
Modified:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java
Modified:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java?view=diff&rev=552084&r1=552083&r2=552084
==============================================================================
---
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java
(original)
+++
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java
Fri Jun 29 20:04:13 2007
@@ -35,6 +35,7 @@
import org.apache.commons.beanutils.converters.CalendarConverter;
import org.apache.commons.beanutils.converters.CharacterConverter;
import org.apache.commons.beanutils.converters.ClassConverter;
+import org.apache.commons.beanutils.converters.ConverterFacade;
import org.apache.commons.beanutils.converters.DateConverter;
import org.apache.commons.beanutils.converters.DoubleConverter;
import org.apache.commons.beanutils.converters.FileConverter;
@@ -789,7 +790,7 @@
/** strictly for convenience since it has same parameter order as Map.put
*/
private void register(Class clazz, Converter converter) {
- register(converter, clazz);
+ register(new ConverterFacade(converter), clazz);
}
/**
Added:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/converters/ConverterFacade.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/converters/ConverterFacade.java?view=auto&rev=552084
==============================================================================
---
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/converters/ConverterFacade.java
(added)
+++
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/converters/ConverterFacade.java
Fri Jun 29 20:04:13 2007
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.commons.beanutils.converters;
+
+import org.apache.commons.beanutils.Converter;
+
+/**
+ * Provides a facade for [EMAIL PROTECTED] Converter} implementations
+ * preventing access to any public API in the implementation,
+ * other than that specified by [EMAIL PROTECTED] Converter}.
+ * <p />
+ * This implementation can be used to prevent registered [EMAIL PROTECTED]
Converter}
+ * implementations that provide configuration options from being
+ * retrieved and modified.
+ *
+ * @version $Revision$ $Date$
+ * @since 1.8.0
+ */
+public final class ConverterFacade implements Converter {
+
+ private final Converter converter;
+
+ /**
+ * Construct a converter which delegates to the specified
+ * [EMAIL PROTECTED] Converter} implementation.
+ *
+ * @param converter The converter to delegate to
+ */
+ public ConverterFacade(Converter converter) {
+ if (converter == null) {
+ throw new IllegalArgumentException("Converter is missing");
+ }
+ this.converter = converter;
+ }
+
+ /**
+ * Convert the input object into an output object of the
+ * specified type by delegating to the underlying [EMAIL PROTECTED]
Converter}
+ * implementation.
+ *
+ * @param type Data type to which this value should be converted
+ * @param value The input value to be converted
+ * @return The converted value.
+ */
+ public Object convert(Class type, Object value) {
+ return converter.convert(type, value);
+ }
+
+ /**
+ * Provide a String representation of this facade implementation
+ * sand the underlying [EMAIL PROTECTED] Converter} it delegates to.
+ *
+ * @return A String representation of this facade implementation
+ * sand the underlying [EMAIL PROTECTED] Converter} it delegates to
+ */
+ public String toString() {
+ return "ConverterFacade[" + converter.toString() + "]";
+ }
+
+}
Propchange:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/converters/ConverterFacade.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/converters/ConverterFacade.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]