You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by tv...@apache.org on 2011/11/11 01:05:30 UTC
svn commit: r1200653 [1/2] - in /turbine/fulcrum/trunk/intake: ./
src/changes/ src/java/org/apache/fulcrum/intake/
src/java/org/apache/fulcrum/intake/model/
src/java/org/apache/fulcrum/intake/transform/
src/java/org/apache/fulcrum/intake/validator/ src...
Author: tv
Date: Fri Nov 11 00:05:28 2011
New Revision: 1200653
URL: http://svn.apache.org/viewvc?rev=1200653&view=rev
Log:
Introduce JDK 1.5 Generics
Added:
turbine/fulcrum/trunk/intake/src/changes/changes.xml (contents, props changed)
- copied, changed from r1169864, turbine/fulcrum/trunk/intake/xdocs/changes.xml
Removed:
turbine/fulcrum/trunk/intake/xdocs/changes.xml
Modified:
turbine/fulcrum/trunk/intake/pom.xml
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/IntakeServiceImpl.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BigDecimalField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BooleanField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DateStringField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DoubleField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Field.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FieldFactory.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FileItemField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FloatField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Group.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/IntegerField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/LongField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/ShortField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/StringField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/transform/XmlToAppData.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BigDecimalValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BooleanValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateStringValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DefaultValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DoubleValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FileValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FloatValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/InitableByConstraintMap.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/IntegerRangeValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/IntegerValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/LongValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/NumberValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/ShortValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/StringValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/Validator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/xmlmodel/AppData.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/xmlmodel/XmlField.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/xmlmodel/XmlGroup.java
turbine/fulcrum/trunk/intake/src/test/intake1.xml
turbine/fulcrum/trunk/intake/src/test/org/apache/fulcrum/intake/IntakeTest.java
Modified: turbine/fulcrum/trunk/intake/pom.xml
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/pom.xml?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/pom.xml (original)
+++ turbine/fulcrum/trunk/intake/pom.xml Fri Nov 11 00:05:28 2011
@@ -24,7 +24,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>fulcrum-intake</artifactId>
- <version>1.0.7-SNAPSHOT</version>
+ <version>1.1.0-SNAPSHOT</version>
<name>Fulcrum Intake</name>
<inceptionYear>2005</inceptionYear>
<description>Fulcrum Intake Service</description>
@@ -102,6 +102,7 @@
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
@@ -169,8 +170,10 @@
</profiles>
<properties>
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
<!-- This bits are used for the staging directory -->
- <fulcrum.release.version>1.0.6</fulcrum.release.version>
+ <fulcrum.release.version>1.1.0</fulcrum.release.version>
<fulcrum.rc.version>RC1</fulcrum.rc.version>
<fulcrum.deployment.protocol>scpexe</fulcrum.deployment.protocol>
</properties>
Copied: turbine/fulcrum/trunk/intake/src/changes/changes.xml (from r1169864, turbine/fulcrum/trunk/intake/xdocs/changes.xml)
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/changes/changes.xml?p2=turbine/fulcrum/trunk/intake/src/changes/changes.xml&p1=turbine/fulcrum/trunk/intake/xdocs/changes.xml&r1=1169864&r2=1200653&rev=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/xdocs/changes.xml (original)
+++ turbine/fulcrum/trunk/intake/src/changes/changes.xml Fri Nov 11 00:05:28 2011
@@ -25,7 +25,10 @@
</properties>
<body>
- <release version="1.0.7-SNAPSHOT" date="in Subversion">
+ <release version="1.1.0" date="in Subversion">
+ <action type="update" dev="tv">
+ Introduce JDK 1.5 Generics
+ </action>
<action type="fix" dev="tv">
Groups were not initialized correctly from a parser.
</action>
Propchange: turbine/fulcrum/trunk/intake/src/changes/changes.xml
------------------------------------------------------------------------------
cvs2svn:cvs-rev = 1.9
Propchange: turbine/fulcrum/trunk/intake/src/changes/changes.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: turbine/fulcrum/trunk/intake/src/changes/changes.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/IntakeServiceImpl.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/IntakeServiceImpl.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/IntakeServiceImpl.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/IntakeServiceImpl.java Fri Nov 11 00:05:28 2011
@@ -24,6 +24,7 @@ import java.beans.PropertyDescriptor;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -32,7 +33,6 @@ import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -73,32 +73,32 @@ public class IntakeServiceImpl extends A
Serviceable
{
/** Map of groupNames -> appData elements */
- private Map groupNames;
+ private Map<String, AppData> groupNames;
/** The cache of group names. */
- private Map groupNameMap;
+ private Map<String, String> groupNameMap;
/** The cache of group keys. */
- private Map groupKeyMap;
+ private Map<String, String> groupKeyMap;
/** The cache of property getters. */
- private Map getterMap;
+ private Map<String, Map<String, Method>> getterMap;
/** The cache of property setters. */
- private Map setterMap;
+ private Map<String, Map<String, Method>> setterMap;
/** AppData -> keyed Pools Map */
- private Map keyedPools;
+ private Map<AppData, KeyedObjectPool> keyedPools;
/** The Avalon Container root directory */
private String applicationRoot;
/** List of configured xml specification files */
- private List xmlPathes = null;
-
+ private List<String> xmlPathes = null;
+
/** Configured location of the serialization file */
- private String serialDataPath = null;
-
+ private String serialDataPath = null;
+
/**
* Registers a given group name in the system
*
@@ -140,14 +140,13 @@ public class IntakeServiceImpl extends A
groupNameMap.put(group.getKey(), groupName);
}
- List classNames = group.getMapToObjects();
- for (Iterator iter2 = classNames.iterator(); iter2.hasNext();)
+ List<String> classNames = group.getMapToObjects();
+ for (String className : classNames)
{
- String className = (String) iter2.next();
if (!getterMap.containsKey(className))
{
- getterMap.put(className, new HashMap());
- setterMap.put(className, new HashMap());
+ getterMap.put(className, new HashMap<String, Method>());
+ setterMap.put(className, new HashMap<String, Method>());
}
}
return true;
@@ -163,7 +162,7 @@ public class IntakeServiceImpl extends A
* @return A map with appData objects loaded from the file or null if the
* map could not be loaded.
*/
- private Map loadSerialized(String serialDataPath, long timeStamp)
+ private Map<AppData, File> loadSerialized(String serialDataPath, long timeStamp)
{
getLogger().debug(
"Entered loadSerialized(" + serialDataPath + ", " + timeStamp
@@ -189,7 +188,7 @@ public class IntakeServiceImpl extends A
}
InputStream in = null;
- Map serialData = null;
+ Map<AppData, File> serialData = null;
try
{
@@ -199,7 +198,7 @@ public class IntakeServiceImpl extends A
if (o instanceof Map)
{
- serialData = (Map) o;
+ serialData = (Map<AppData, File>) o;
}
else
{
@@ -212,7 +211,7 @@ public class IntakeServiceImpl extends A
// around
}
}
- catch (Exception e)
+ catch (IOException e)
{
getLogger().error("Serialized File could not be read.", e);
@@ -220,6 +219,14 @@ public class IntakeServiceImpl extends A
// Null out serialData to be sure
serialData = null;
}
+ catch (ClassNotFoundException e)
+ {
+ getLogger().error("Objects could not be read from serialized file.", e);
+
+ // This should not happen
+ // Null out serialData to be sure
+ serialData = null;
+ }
finally
{
// Could be null if we opened a file, didn't find it to be a
@@ -231,7 +238,7 @@ public class IntakeServiceImpl extends A
in.close();
}
}
- catch (Exception e)
+ catch (IOException e)
{
getLogger().error("Exception while closing file", e);
}
@@ -251,7 +258,7 @@ public class IntakeServiceImpl extends A
* @param appDataElements
* A Map containing all of the XML parsed appdata elements
*/
- private void saveSerialized(String serialDataPath, Map appDataElements)
+ private void saveSerialized(String serialDataPath, Map<AppData, File> appDataElements)
{
getLogger().debug(
@@ -270,7 +277,7 @@ public class IntakeServiceImpl extends A
serialData.createNewFile();
serialData.delete();
}
- catch (Exception e)
+ catch (IOException e)
{
getLogger().info(
"Could not create serialized file " + serialDataPath
@@ -297,12 +304,17 @@ public class IntakeServiceImpl extends A
getLogger().debug("Serializing successful");
}
- catch (Exception e)
+ catch (IOException e)
{
getLogger().info(
"Could not write serialized file to " + serialDataPath
+ ", not serializing the XML data");
}
+ catch (ClassNotFoundException e)
+ {
+ getLogger().info(
+ "Could not re-read serialized file from " + serialDataPath);
+ }
finally
{
try
@@ -311,12 +323,19 @@ public class IntakeServiceImpl extends A
{
out.close();
}
+ }
+ catch (IOException e)
+ {
+ getLogger().error("Exception while closing file", e);
+ }
+ try
+ {
if (in != null)
{
in.close();
}
}
- catch (Exception e)
+ catch (IOException e)
{
getLogger().error("Exception while closing file", e);
}
@@ -337,13 +356,14 @@ public class IntakeServiceImpl extends A
{
Group group = null;
- AppData appData = (AppData) groupNames.get(groupName);
+ AppData appData = groupNames.get(groupName);
if (groupName == null)
{
throw new IntakeException(
"Intake IntakeServiceImpl.getGroup(groupName) is null");
}
+
if (appData == null)
{
throw new IntakeException(
@@ -352,8 +372,7 @@ public class IntakeServiceImpl extends A
}
try
{
- group = (Group) ((KeyedObjectPool) keyedPools.get(appData))
- .borrowObject(groupName);
+ group = (Group) keyedPools.get(appData).borrowObject(groupName);
}
catch (Exception e)
{
@@ -376,7 +395,7 @@ public class IntakeServiceImpl extends A
if (instance != null)
{
String groupName = instance.getIntakeGroupName();
- AppData appData = (AppData) groupNames.get(groupName);
+ AppData appData = groupNames.get(groupName);
if (appData == null)
{
@@ -388,8 +407,7 @@ public class IntakeServiceImpl extends A
try
{
- ((KeyedObjectPool) keyedPools.get(appData)).returnObject(
- groupName, instance);
+ keyedPools.get(appData).returnObject(groupName, instance);
}
catch (Exception e)
{
@@ -409,7 +427,7 @@ public class IntakeServiceImpl extends A
*/
public int getSize(String groupName) throws IntakeException
{
- AppData appData = (AppData) groupNames.get(groupName);
+ AppData appData = groupNames.get(groupName);
if (appData == null)
{
throw new IntakeException(
@@ -417,7 +435,7 @@ public class IntakeServiceImpl extends A
+ groupName + " found");
}
- KeyedObjectPool kop = (KeyedObjectPool) keyedPools.get(groupName);
+ KeyedObjectPool kop = keyedPools.get(groupName);
return kop.getNumActive(groupName) + kop.getNumIdle(groupName);
}
@@ -429,7 +447,7 @@ public class IntakeServiceImpl extends A
*/
public String[] getGroupNames()
{
- return (String[]) groupNames.keySet().toArray(new String[0]);
+ return groupNames.keySet().toArray(new String[0]);
}
/**
@@ -441,7 +459,7 @@ public class IntakeServiceImpl extends A
*/
public String getGroupKey(String groupName)
{
- return (String) groupKeyMap.get(groupName);
+ return groupKeyMap.get(groupName);
}
/**
@@ -453,7 +471,7 @@ public class IntakeServiceImpl extends A
*/
public String getGroupName(String groupKey)
{
- return (String) groupNameMap.get(groupKey);
+ return groupNameMap.get(groupKey);
}
/**
@@ -470,7 +488,7 @@ public class IntakeServiceImpl extends A
public Method getFieldSetter(String className, String propName)
throws ClassNotFoundException, IntrospectionException
{
- Map settersForClassName = (Map) setterMap.get(className);
+ Map<String, Method> settersForClassName = setterMap.get(className);
if (settersForClassName == null)
{
@@ -478,7 +496,7 @@ public class IntakeServiceImpl extends A
+ " available!");
}
- Method setter = (Method) settersForClassName.get(propName);
+ Method setter = settersForClassName.get(propName);
if (setter == null)
{
@@ -499,7 +517,7 @@ public class IntakeServiceImpl extends A
// save it so we do not have to repeat
synchronized (getterMap)
{
- Map gettersForClassName = (Map) getterMap.get(className);
+ Map<String, Method> gettersForClassName = getterMap.get(className);
if (gettersForClassName != null)
{
@@ -528,7 +546,7 @@ public class IntakeServiceImpl extends A
public Method getFieldGetter(String className, String propName)
throws ClassNotFoundException, IntrospectionException
{
- Map gettersForClassName = (Map) getterMap.get(className);
+ Map<String, Method> gettersForClassName = getterMap.get(className);
if (gettersForClassName == null)
{
@@ -536,7 +554,7 @@ public class IntakeServiceImpl extends A
+ " available!");
}
- Method getter = (Method) gettersForClassName.get(propName);
+ Method getter = gettersForClassName.get(propName);
if (getter == null)
{
@@ -557,7 +575,7 @@ public class IntakeServiceImpl extends A
// save it so we do not have to repeat
synchronized (setterMap)
{
- Map settersForClassName = (Map) getterMap.get(className);
+ Map<String, Method> settersForClassName = getterMap.get(className);
if (settersForClassName != null)
{
@@ -580,7 +598,7 @@ public class IntakeServiceImpl extends A
{
final Configuration xmlPaths = conf.getChild(XML_PATHS, false);
- xmlPathes = new ArrayList();
+ xmlPathes = new ArrayList<String>();
if (xmlPaths == null)
{
@@ -619,23 +637,22 @@ public class IntakeServiceImpl extends A
*/
public void initialize() throws Exception
{
- Map appDataElements = null;
+ Map<AppData, File> appDataElements = null;
- groupNames = new HashMap();
- groupKeyMap = new HashMap();
- groupNameMap = new HashMap();
- getterMap = new HashMap();
- setterMap = new HashMap();
- keyedPools = new HashMap();
+ groupNames = new HashMap<String, AppData>();
+ groupKeyMap = new HashMap<String, String>();
+ groupNameMap = new HashMap<String, String>();
+ getterMap = new HashMap<String, Map<String,Method>>();
+ setterMap = new HashMap<String, Map<String,Method>>();
+ keyedPools = new HashMap<AppData, KeyedObjectPool>();
- Set xmlFiles = new HashSet();
+ Set<File> xmlFiles = new HashSet<File>();
long timeStamp = 0;
- for (Iterator it = xmlPathes.iterator(); it.hasNext();)
+ for (String xmlPath : xmlPathes)
{
// Files are webapp.root relative
- String xmlPath = (String) it.next();
File xmlFile = new File(applicationRoot, xmlPath).getAbsoluteFile();
getLogger().debug("Path for XML File: " + xmlFile);
@@ -649,7 +666,7 @@ public class IntakeServiceImpl extends A
throw new Exception(READ_ERR);
}
- xmlFiles.add(xmlFile.toString());
+ xmlFiles.add(xmlFile);
getLogger().debug("Added " + xmlPath + " as File to parse");
@@ -660,7 +677,7 @@ public class IntakeServiceImpl extends A
.lastModified() : timeStamp;
}
- Map serializedMap = loadSerialized(serialDataPath, timeStamp);
+ Map<AppData, File> serializedMap = loadSerialized(serialDataPath, timeStamp);
if (serializedMap != null)
{
@@ -671,38 +688,35 @@ public class IntakeServiceImpl extends A
else
{
// Parse all the given XML files
- appDataElements = new HashMap();
+ appDataElements = new HashMap<AppData, File>();
- for (Iterator it = xmlFiles.iterator(); it.hasNext();)
+ for (File xmlFile : xmlFiles)
{
- String xmlPath = (String) it.next();
AppData appData = null;
- getLogger().debug("Now parsing: " + xmlPath);
+ getLogger().debug("Now parsing: " + xmlFile);
XmlToAppData xmlApp = new XmlToAppData();
xmlApp.enableLogging(getLogger());
- appData = xmlApp.parseFile(xmlPath);
+ appData = xmlApp.parseFile(xmlFile);
- appDataElements.put(appData, xmlPath);
- getLogger().debug("Saving appData for " + xmlPath);
+ appDataElements.put(appData, xmlFile);
+ getLogger().debug("Saving appData for " + xmlFile);
}
saveSerialized(serialDataPath, appDataElements);
}
- for (Iterator it = appDataElements.keySet().iterator(); it.hasNext();)
+ for (AppData appData : appDataElements.keySet())
{
- AppData appData = (AppData) it.next();
-
int maxPooledGroups = 0;
- List glist = appData.getGroups();
+ List<XmlGroup> glist = appData.getGroups();
String groupPrefix = appData.getGroupPrefix();
for (int i = glist.size() - 1; i >= 0; i--)
{
- XmlGroup g = (XmlGroup) glist.get(i);
+ XmlGroup g = glist.get(i);
String groupName = g.getName();
boolean registerUnqualified = registerGroup(groupName, g,
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BigDecimalField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BigDecimalField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BigDecimalField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BigDecimalField.java Fri Nov 11 00:05:28 2011
@@ -34,7 +34,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class BigDecimalField
- extends Field
+ extends Field<BigDecimal>
{
/**
* Constructor.
@@ -109,7 +109,7 @@ public class BigDecimalField
{
if (values[i] == null)
{
- values[i] = (BigDecimal) getEmptyValue();
+ values[i] = getEmptyValue();
}
}
@@ -117,7 +117,7 @@ public class BigDecimalField
}
else
{
- setTestValue(parser.getBigDecimal(getKey(), (BigDecimal)getEmptyValue()));
+ setTestValue(parser.getBigDecimal(getKey(), getEmptyValue()));
}
}
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BooleanField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BooleanField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BooleanField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/BooleanField.java Fri Nov 11 00:05:28 2011
@@ -29,7 +29,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class BooleanField
- extends Field
+ extends Field<Boolean>
{
/**
* Constructor.
@@ -125,8 +125,8 @@ public class BooleanField
for (int i = 0; i < inputs.length; i++)
{
- values[i] = inputs[i] == null
- ? ((Boolean) getEmptyValue()).booleanValue()
+ values[i] = inputs[i] == null
+ ? (getEmptyValue()).booleanValue()
: inputs[i].booleanValue();
}
@@ -134,7 +134,7 @@ public class BooleanField
}
else
{
- setTestValue(parser.getBooleanObject(getKey(), (Boolean)getEmptyValue()));
+ setTestValue(parser.getBooleanObject(getKey(), getEmptyValue()));
}
}
@@ -149,7 +149,7 @@ public class BooleanField
boolean result = false;
try
{
- result = ((Boolean) getValue()).booleanValue();
+ result = (getValue()).booleanValue();
}
catch (Exception e)
{
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DateStringField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DateStringField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DateStringField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DateStringField.java Fri Nov 11 00:05:28 2011
@@ -21,11 +21,9 @@ package org.apache.fulcrum.intake.model;
import java.text.DateFormat;
import java.text.ParseException;
-
import java.util.Date;
import org.apache.commons.lang.StringUtils;
-
import org.apache.fulcrum.intake.IntakeException;
import org.apache.fulcrum.intake.IntakeRuntimeException;
import org.apache.fulcrum.intake.validator.DateStringValidator;
@@ -43,7 +41,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class DateStringField
- extends Field
+ extends Field<Date>
{
/** date format */
private DateFormat df = null;
@@ -144,7 +142,7 @@ public class DateStringField
try
{
values[i] = StringUtils.isNotEmpty(inputs[i])
- ? getDate(inputs[i]) : (Date) getEmptyValue();
+ ? getDate(inputs[i]) : getEmptyValue();
}
catch (ParseException e)
{
@@ -158,7 +156,7 @@ public class DateStringField
String val = parser.getString(getKey());
try
{
- setTestValue(StringUtils.isNotEmpty(val) ? getDate(val) : (Date) getEmptyValue());
+ setTestValue(StringUtils.isNotEmpty(val) ? getDate(val) : getEmptyValue());
}
catch (ParseException e)
{
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DoubleField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DoubleField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DoubleField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/DoubleField.java Fri Nov 11 00:05:28 2011
@@ -30,7 +30,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class DoubleField
- extends Field
+ extends Field<Double>
{
/**
* Constructor.
@@ -127,8 +127,8 @@ public class DoubleField
for (int i = 0; i < inputs.length; i++)
{
- values[i] = inputs[i] == null
- ? ((Double) getEmptyValue()).doubleValue()
+ values[i] = inputs[i] == null
+ ? (getEmptyValue()).doubleValue()
: inputs[i].doubleValue();
}
@@ -136,7 +136,7 @@ public class DoubleField
}
else
{
- setTestValue(parser.getDoubleObject(getKey(), (Double)getEmptyValue()));
+ setTestValue(parser.getDoubleObject(getKey(), getEmptyValue()));
}
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Field.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Field.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Field.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Field.java Fri Nov 11 00:05:28 2011
@@ -49,7 +49,7 @@ import org.apache.fulcrum.parser.ValuePa
* @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
* @version $Id$
*/
-public abstract class Field
+public abstract class Field<T>
{
/** Empty Value */
private static final String EMPTY = "";
@@ -71,14 +71,14 @@ public abstract class Field
/** Key used to identify the field in the parser */
protected final String key;
- /** Display name of the field to be used on data entry forms... */
- protected String displayName;
+ /** Display size of the field */
+ protected final String displaySize;
/** Class name of the object to which the field is mapped */
protected final String mapToObject;
/** Used to validate the contents of the field */
- protected Validator validator;
+ protected final Validator<T> validator;
/** Getter method in the mapped object used to populate the field */
protected final Method getter;
@@ -102,16 +102,16 @@ public abstract class Field
* Value of the field if an error occurs while getting
* the value from the mapped object
*/
- protected Object onError;
+ protected T onError;
/** Default value of the field */
- protected Object defaultValue;
+ protected T defaultValue;
- /** Value of the field to use if the mapped parameter is empty or non-existant */
- protected Object emptyValue;
+ /** Value of the field to use if the mapped parameter is empty or non-existent */
+ protected T emptyValue;
- /** Display size of the field */
- private String displaySize;
+ /** Display name of the field to be used on data entry forms... */
+ protected String displayName;
/** Max size of the field */
private String maxSize;
@@ -139,17 +139,24 @@ public abstract class Field
/** Mapped object used to set the initial field value */
protected Retrievable retrievable;
+ /** Locale of the field */
private Locale locale;
+
/** String value of the field */
private String stringValue;
- /** String valuess of the field if isMultiValued=true */
+
+ /** String values of the field if isMultiValued=true */
private String[] stringValues;
+
/** Stores the value of the field from the Retrievable object */
- private Object validValue;
+ private T validValue;
+
/** Stores the value of the field from the parser */
private Object testValue;
- /** Used to pass testValue to the setter mathod through reflection */
- private Object[] valArray;
+
+ /** Used to pass testValue to the setter method through reflection */
+ private final Object[] valArray;
+
/** The object containing the field data. */
protected ValueParser parser;
@@ -215,7 +222,7 @@ public abstract class Field
{
try
{
- validator = (Validator)
+ validator = (Validator<T>)
Class.forName(validatorClassName).newInstance();
}
catch (InstantiationException e)
@@ -249,16 +256,20 @@ public abstract class Field
+ "InitableByConstraintMap");
}
}
+ else
+ {
+ validator = null;
+ }
// field may have been declared as always required in the xml spec
- Rule reqRule = (Rule) field.getRuleMap().get("required");
+ Rule reqRule = field.getRuleMap().get("required");
if (reqRule != null)
{
alwaysRequired = Boolean.valueOf(reqRule.getValue()).booleanValue();
ifRequiredMessage = reqRule.getMessage();
}
- Rule maxLengthRule = (Rule) field.getRuleMap().get("maxLength");
+ Rule maxLengthRule = field.getRuleMap().get("maxLength");
if (maxLengthRule != null)
{
maxSize = maxLengthRule.getValue();
@@ -314,7 +325,7 @@ public abstract class Field
* @throws IntakeException this exception is only thrown by subclasses
* overriding this implementation.
*/
- public Field init(ValueParser pp)
+ public Field<T> init(ValueParser pp)
throws IntakeException
{
this.parser = pp;
@@ -356,7 +367,7 @@ public abstract class Field
* @param obj a <code>Retrievable</code> value
* @return a <code>Field</code> value
*/
- public Field init(Retrievable obj)
+ public Field<T> init(Retrievable obj)
{
if (!initialized)
{
@@ -403,7 +414,7 @@ public abstract class Field
* Gets the Validator object for this field.
* @return a <code>Validator</code> object
*/
- public Validator getValidator()
+ public Validator<T> getValidator()
{
return validator;
}
@@ -652,7 +663,7 @@ public abstract class Field
{
// set the test value as a String which might be replaced by
// the correct type if the input is valid.
- setTestValue(parser.getString(getKey()));
+ setTestValue(stringValue);
try
{
@@ -671,7 +682,7 @@ public abstract class Field
doSetValue();
}
}
-
+
validated = true;
return validFlag;
@@ -689,21 +700,13 @@ public abstract class Field
* Set the empty Value. This value is used if Intake
* maps a field to a parameter returned by the user and
* the corresponding field is either empty (empty string)
- * or non-existant.
+ * or non-existent.
*
* @param prop The value to use if the field is empty.
*/
public abstract void setEmptyValue(String prop);
/**
- * @deprecated Use doSetValue() instead (with no parameters).
- */
- protected void doSetValue(ValueParser pp)
- {
- doSetValue();
- }
-
- /**
* Sets the value of the field from data in the parser.
*/
protected abstract void doSetValue();
@@ -714,7 +717,7 @@ public abstract class Field
*
* @param obj an <code>Object</code> value
*/
- void setInitialValue(Object obj)
+ void setInitialValue(T obj)
{
validValue = obj;
}
@@ -729,7 +732,7 @@ public abstract class Field
* @exception IntakeException indicates the value could not be
* returned from the mapped object
*/
- public Object getInitialValue() throws IntakeException
+ public T getInitialValue() throws IntakeException
{
if (validValue == null)
{
@@ -742,6 +745,7 @@ public abstract class Field
getDefault();
}
}
+
return validValue;
}
@@ -775,9 +779,9 @@ public abstract class Field
*
* @return an <code>Object</code> value
*/
- public Object getValue()
+ public T getValue()
{
- Object val = null;
+ T val = null;
try
{
val = getInitialValue();
@@ -790,13 +794,14 @@ public abstract class Field
if (getTestValue() != null)
{
- val = getTestValue();
+ val = (T) getTestValue();
}
if (val == null)
{
val = onError;
}
+
return val;
}
@@ -846,7 +851,7 @@ public abstract class Field
{
try
{
- validValue = getter.invoke(obj, (Object[])null);
+ validValue = (T)getter.invoke(obj);
}
catch (IllegalAccessException e)
{
@@ -868,7 +873,6 @@ public abstract class Field
/**
* Loads the default value from the object
*/
-
public void getDefault()
{
validValue = getDefaultValue();
@@ -974,7 +978,7 @@ public abstract class Field
*
* @return the default value
*/
- public Object getDefaultValue()
+ public T getDefaultValue()
{
return defaultValue;
}
@@ -984,7 +988,7 @@ public abstract class Field
*
* @return the value to use if the field is empty.
*/
- public Object getEmptyValue()
+ public T getEmptyValue()
{
return emptyValue;
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FieldFactory.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FieldFactory.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FieldFactory.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FieldFactory.java Fri Nov 11 00:05:28 2011
@@ -37,15 +37,15 @@ import org.apache.fulcrum.intake.xmlmode
*/
public abstract class FieldFactory
{
- private static Map fieldCtors = initFieldCtors();
+ private static Map<String, FieldFactory.FieldCtor> fieldCtors = initFieldCtors();
- private static Map initFieldCtors()
+ private static Map<String, FieldFactory.FieldCtor> initFieldCtors()
{
- fieldCtors = new HashMap();
+ fieldCtors = new HashMap<String, FieldFactory.FieldCtor>();
fieldCtors.put("int", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new IntegerField(f, g);
@@ -54,7 +54,7 @@ public abstract class FieldFactory
);
fieldCtors.put("boolean", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new BooleanField(f, g);
@@ -63,7 +63,7 @@ public abstract class FieldFactory
);
fieldCtors.put("String", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new StringField(f, g);
@@ -72,7 +72,7 @@ public abstract class FieldFactory
);
fieldCtors.put("BigDecimal", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new BigDecimalField(f, g);
@@ -81,7 +81,7 @@ public abstract class FieldFactory
);
fieldCtors.put("FileItem", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new FileItemField(f, g);
@@ -90,7 +90,7 @@ public abstract class FieldFactory
);
fieldCtors.put("DateString", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new DateStringField(f, g);
@@ -99,7 +99,7 @@ public abstract class FieldFactory
);
fieldCtors.put("float", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new FloatField(f, g);
@@ -108,7 +108,7 @@ public abstract class FieldFactory
);
fieldCtors.put("double", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new DoubleField(f, g);
@@ -117,7 +117,7 @@ public abstract class FieldFactory
);
fieldCtors.put("short", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new ShortField(f, g);
@@ -126,7 +126,7 @@ public abstract class FieldFactory
);
fieldCtors.put("long", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
return new LongField(f, g);
@@ -135,7 +135,7 @@ public abstract class FieldFactory
);
fieldCtors.put("custom", new FieldFactory.FieldCtor()
{
- public Field getInstance(XmlField f, Group g)
+ public Field<?> getInstance(XmlField f, Group g)
throws IntakeException
{
String fieldClass = f.getFieldClass();
@@ -148,15 +148,15 @@ public abstract class FieldFactory
if (fieldClass != null)
{
- Class field;
+ Class<?> field;
try
{
field = Class.forName(fieldClass);
- Constructor constructor =
- field.getConstructor(new Class[] { XmlField.class, Group.class });
+ Constructor<?> constructor =
+ field.getConstructor(XmlField.class, Group.class);
- return (Field)constructor.newInstance(new Object[] { f, g });
+ return (Field<?>)constructor.newInstance(f, g);
}
catch (ClassNotFoundException e)
{
@@ -182,12 +182,9 @@ public abstract class FieldFactory
return fieldCtors;
}
- protected static abstract class FieldCtor
+ protected interface FieldCtor
{
- public Field getInstance(XmlField f, Group g) throws IntakeException
- {
- return null;
- }
+ public Field<?> getInstance(XmlField f, Group g) throws IntakeException;
}
/**
@@ -198,14 +195,14 @@ public abstract class FieldFactory
* @return a <code>Field</code> value
* @throws IntakeException indicates that an unknown type was specified for a field.
*/
- public static final Field getInstance(XmlField xmlField, Group xmlGroup)
+ public static final Field<?> getInstance(XmlField xmlField, Group xmlGroup)
throws IntakeException
{
FieldCtor fieldCtor = null;
- Field field = null;
+ Field<?> field = null;
String type = xmlField.getType();
- fieldCtor = (FieldCtor) fieldCtors.get(type);
+ fieldCtor = fieldCtors.get(type);
if (fieldCtor == null)
{
throw new IntakeException("An Unsupported type has been specified for " +
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FileItemField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FileItemField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FileItemField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FileItemField.java Fri Nov 11 00:05:28 2011
@@ -35,7 +35,7 @@ import org.apache.fulcrum.parser.ValuePa
* @version $Id$
*/
public class FileItemField
- extends Field
+ extends Field<FileItem>
{
/**
@@ -111,14 +111,12 @@ public class FileItemField
* @return a <code>Field</code> value
* @exception IntakeException if an error occurs
*/
- public Field init(ValueParser vp)
+ public Field<FileItem> init(ValueParser vp)
throws IntakeException
{
- try
- {
- super.parser = (ParameterParser) vp;
- }
- catch (ClassCastException e)
+ super.parser = vp;
+
+ if (!(vp instanceof ParameterParser))
{
throw new IntakeException(
"FileItemFields can only be used with ParameterParser");
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FloatField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FloatField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FloatField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/FloatField.java Fri Nov 11 00:05:28 2011
@@ -30,7 +30,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class FloatField
- extends Field
+ extends Field<Float>
{
/**
* Constructor.
@@ -66,7 +66,7 @@ public class FloatField
* Set the empty Value. This value is used if Intake
* maps a field to a parameter returned by the user and
* the corresponding field is either empty (empty string)
- * or non-existant.
+ * or non-existent.
*
* @param prop The value to use if the field is empty.
*/
@@ -79,7 +79,7 @@ public class FloatField
return;
}
- emptyValue = new Double(prop);
+ emptyValue = new Float(prop);
}
/**
@@ -127,8 +127,8 @@ public class FloatField
for (int i = 0; i < inputs.length; i++)
{
- values[i] = inputs[i] == null
- ? ((Float) getEmptyValue()).floatValue()
+ values[i] = inputs[i] == null
+ ? (getEmptyValue()).floatValue()
: inputs[i].floatValue();
}
@@ -136,7 +136,7 @@ public class FloatField
}
else
{
- setTestValue(parser.getFloatObject(getKey(), (Float)getEmptyValue()));
+ setTestValue(parser.getFloatObject(getKey(), getEmptyValue()));
}
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Group.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Group.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Group.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/Group.java Fri Nov 11 00:05:28 2011
@@ -21,7 +21,6 @@ package org.apache.fulcrum.intake.model;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -81,17 +80,17 @@ public class Group
/**
* A map of the fields in this group mapped by field name.
*/
- protected Map fields;
+ protected Map<String, Field<?>> fields;
/**
* Map of the fields by mapToObject
*/
- protected Map mapToObjectFields;
+ protected Map<String, Field<?>[]> mapToObjectFields;
/**
* An array of fields in this group.
*/
- protected Field[] fieldsArray;
+ protected Field<?>[] fieldsArray;
/**
* The object id used to associate this group to a bean
@@ -123,35 +122,38 @@ public class Group
name = group.getName();
poolCapacity = Integer.parseInt(group.getPoolCapacity());
- List inputFields = group.getFields();
+ List<XmlField> inputFields = group.getFields();
int size = inputFields.size();
- fields = new HashMap((int) (1.25 * size + 1));
- mapToObjectFields = new HashMap((int) (1.25 * size + 1));
+ fields = new HashMap<String, Field<?>>((int) (1.25 * size + 1));
+ Map<String, List<Field<?>>> mapToObjectFieldLists =
+ new HashMap<String, List<Field<?>>>((int) (1.25 * size + 1));
+
fieldsArray = new Field[size];
for (int i = size - 1; i >= 0; i--)
{
- XmlField f = (XmlField) inputFields.get(i);
- Field field = FieldFactory.getInstance(f, this);
+ XmlField f = inputFields.get(i);
+ Field<?> field = FieldFactory.getInstance(f, this);
fieldsArray[i] = field;
fields.put(f.getName(), field);
// map fields by their mapToObject
- List tmpFields = (List) mapToObjectFields.get(f.getMapToObject());
+ List<Field<?>> tmpFields = mapToObjectFieldLists.get(f.getMapToObject());
if (tmpFields == null)
{
- tmpFields = new ArrayList(size);
- mapToObjectFields.put(f.getMapToObject(), tmpFields);
+ tmpFields = new ArrayList<Field<?>>(size);
+ mapToObjectFieldLists.put(f.getMapToObject(), tmpFields);
}
+
tmpFields.add(field);
}
// Change the mapToObjectFields values to Field[]
- for (Iterator keys = mapToObjectFields.keySet().iterator(); keys.hasNext();)
+ mapToObjectFields = new HashMap<String, Field<?>[]>((int) (1.25 * size + 1));
+
+ for (Map.Entry<String, List<Field<?>>> entry : mapToObjectFieldLists.entrySet())
{
- Object key = keys.next();
- List tmpFields = (List) mapToObjectFields.get(key);
- mapToObjectFields.put(key,
- tmpFields.toArray(new Field[tmpFields.size()]));
+ mapToObjectFields.put(entry.getKey(),
+ entry.getValue().toArray(new Field[entry.getValue().size()]));
}
}
@@ -201,10 +203,10 @@ public class Group
{
this.oid = obj.getQueryKey();
- Class cls = obj.getClass();
+ Class<?> cls = obj.getClass();
while (cls != null)
{
- Field[] flds = (Field[]) mapToObjectFields.get(cls.getName());
+ Field<?>[] flds = mapToObjectFields.get(cls.getName());
if (flds != null)
{
for (int i = flds.length - 1; i >= 0; i--)
@@ -214,11 +216,11 @@ public class Group
}
// Also check any interfaces
- Class[] interfaces = cls.getInterfaces();
+ Class<?>[] interfaces = cls.getInterfaces();
for (int idx = 0; idx < interfaces.length; idx++)
{
- Field[] interfaceFields =
- (Field[]) mapToObjectFields.get(interfaces[idx].getName());
+ Field<?>[] interfaceFields =
+ mapToObjectFields.get(interfaces[idx].getName());
if (interfaceFields != null)
{
for (int i = 0; i < interfaceFields.length; i++)
@@ -309,13 +311,13 @@ public class Group
* @return an <code>ArrayList</code> value
* @exception IntakeException if an error occurs
*/
- public ArrayList getObjects(ValueParser pp) throws IntakeException
+ public List<Group> getObjects(ValueParser pp) throws IntakeException
{
- ArrayList objs = null;
+ ArrayList<Group> objs = null;
String[] oids = pp.getStrings(gid);
if (oids != null)
{
- objs = new ArrayList(oids.length);
+ objs = new ArrayList<Group>(oids.length);
for (int i = oids.length - 1; i >= 0; i--)
{
objs.add(IntakeServiceFacade.getGroup(name).init(oids[i], pp));
@@ -329,12 +331,12 @@ public class Group
* @return Field.
* @throws IntakeException indicates the field could not be found.
*/
- public Field get(String fieldName)
+ public Field<?> get(String fieldName)
throws IntakeException
{
if (fields.containsKey(fieldName))
{
- return (Field) fields.get(fieldName);
+ return fields.get(fieldName);
}
else
{
@@ -373,7 +375,7 @@ public class Group
*/
public void setProperties(Object obj) throws IntakeException
{
- Class cls = obj.getClass();
+ Class<?> cls = obj.getClass();
while (cls != null)
{
@@ -382,7 +384,7 @@ public class Group
log.debug("setProperties(" + cls.getName() + ")");
}
- Field[] flds = (Field[]) mapToObjectFields.get(cls.getName());
+ Field<?>[] flds = mapToObjectFields.get(cls.getName());
if (flds != null)
{
for (int i = flds.length - 1; i >= 0; i--)
@@ -392,11 +394,11 @@ public class Group
}
// Also check any interfaces
- Class[] interfaces = cls.getInterfaces();
+ Class<?>[] interfaces = cls.getInterfaces();
for (int idx = 0; idx < interfaces.length; idx++)
{
- Field[] interfaceFields =
- (Field[]) mapToObjectFields.get(interfaces[idx].getName());
+ Field<?>[] interfaceFields =
+ mapToObjectFields.get(interfaces[idx].getName());
if (interfaceFields != null)
{
for (int i = 0; i < interfaceFields.length; i++)
@@ -421,10 +423,10 @@ public class Group
*/
public void setValidProperties(Object obj)
{
- Class cls = obj.getClass();
+ Class<?> cls = obj.getClass();
while (cls != null)
{
- Field[] flds = (Field[]) mapToObjectFields.get(cls.getName());
+ Field<?>[] flds = mapToObjectFields.get(cls.getName());
if (flds != null)
{
for (int i = flds.length - 1; i >= 0; i--)
@@ -441,11 +443,11 @@ public class Group
}
// Also check any interfaces
- Class[] interfaces = cls.getInterfaces();
+ Class<?>[] interfaces = cls.getInterfaces();
for (int idx = 0; idx < interfaces.length; idx++)
{
- Field[] interfaceFields =
- (Field[]) mapToObjectFields.get(interfaces[idx].getName());
+ Field<?>[] interfaceFields =
+ mapToObjectFields.get(interfaces[idx].getName());
if (interfaceFields != null)
{
for (int i = 0; i < interfaceFields.length; i++)
@@ -478,10 +480,11 @@ public class Group
*/
public void getProperties(Object obj) throws IntakeException
{
- Class cls = obj.getClass();
+ Class<?> cls = obj.getClass();
+
while (cls != null)
{
- Field[] flds = (Field[]) mapToObjectFields.get(cls.getName());
+ Field<?>[] flds = mapToObjectFields.get(cls.getName());
if (flds != null)
{
for (int i = flds.length - 1; i >= 0; i--)
@@ -491,11 +494,11 @@ public class Group
}
// Also check any interfaces
- Class[] interfaces = cls.getInterfaces();
+ Class<?>[] interfaces = cls.getInterfaces();
for (int idx = 0; idx < interfaces.length; idx++)
{
- Field[] interfaceFields =
- (Field[]) mapToObjectFields.get(interfaces[idx].getName());
+ Field<?>[] interfaceFields =
+ mapToObjectFields.get(interfaces[idx].getName());
if (interfaceFields != null)
{
for (int i = 0; i < interfaceFields.length; i++)
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/IntegerField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/IntegerField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/IntegerField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/IntegerField.java Fri Nov 11 00:05:28 2011
@@ -29,7 +29,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class IntegerField
- extends Field
+ extends Field<Integer>
{
/**
* Constructor.
@@ -126,8 +126,8 @@ public class IntegerField
for (int i = 0; i < inputs.length; i++)
{
- values[i] = inputs[i] == null
- ? ((Integer) getEmptyValue()).intValue()
+ values[i] = inputs[i] == null
+ ? (getEmptyValue()).intValue()
: inputs[i].intValue();
}
@@ -135,7 +135,7 @@ public class IntegerField
}
else
{
- setTestValue(parser.getIntObject(getKey(), (Integer)getEmptyValue()));
+ setTestValue(parser.getIntObject(getKey(), getEmptyValue()));
}
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/LongField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/LongField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/LongField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/LongField.java Fri Nov 11 00:05:28 2011
@@ -29,7 +29,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class LongField
- extends Field
+ extends Field<Long>
{
/**
@@ -126,8 +126,8 @@ public class LongField
for (int i = 0; i < inputs.length; i++)
{
- values[i] = inputs[i] == null
- ? ((Long) getEmptyValue()).longValue()
+ values[i] = inputs[i] == null
+ ? (getEmptyValue()).longValue()
: inputs[i].longValue();
}
@@ -135,7 +135,7 @@ public class LongField
}
else
{
- setTestValue(parser.getLongObject(getKey(), (Long)getEmptyValue()));
+ setTestValue(parser.getLongObject(getKey(), getEmptyValue()));
}
}
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/ShortField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/ShortField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/ShortField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/ShortField.java Fri Nov 11 00:05:28 2011
@@ -29,7 +29,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class ShortField
- extends Field
+ extends Field<Short>
{
/**
* Constructor.
@@ -126,8 +126,8 @@ public class ShortField
for (int i = 0; i < inputs.length; i++)
{
- values[i] = inputs[i] == null
- ? ((Short) getEmptyValue()).shortValue()
+ values[i] = inputs[i] == null
+ ? (getEmptyValue()).shortValue()
: inputs[i].shortValue();
}
@@ -136,7 +136,7 @@ public class ShortField
else
{
Integer value = parser.getIntObject(getKey());
-
+
if (value == null)
{
setTestValue(getEmptyValue());
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/StringField.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/StringField.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/StringField.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/model/StringField.java Fri Nov 11 00:05:28 2011
@@ -20,7 +20,6 @@ package org.apache.fulcrum.intake.model;
*/
import org.apache.commons.lang.StringUtils;
-
import org.apache.fulcrum.intake.IntakeException;
import org.apache.fulcrum.intake.validator.StringValidator;
import org.apache.fulcrum.intake.xmlmodel.XmlField;
@@ -34,7 +33,7 @@ import org.apache.fulcrum.intake.xmlmode
* @version $Id$
*/
public class StringField
- extends Field
+ extends Field<String>
{
/**
@@ -144,7 +143,7 @@ public class StringField
}
else
{
- if (!setFlag || StringUtils.isEmpty((String) getTestValue()))
+ if (!setFlag || StringUtils.isEmpty((String)getTestValue()))
{
validFlag = false;
this.message = message;
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/transform/XmlToAppData.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/transform/XmlToAppData.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/transform/XmlToAppData.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/transform/XmlToAppData.java Fri Nov 11 00:05:28 2011
@@ -20,6 +20,7 @@ package org.apache.fulcrum.intake.transf
*/
import java.io.BufferedReader;
+import java.io.File;
import java.io.FileReader;
import java.io.IOException;
@@ -55,7 +56,7 @@ public class XmlToAppData extends Defaul
/** Logging */
private Logger log;
- private AppData app;
+ private final AppData app;
private XmlGroup currGroup;
private XmlField currField;
private Rule currRule;
@@ -88,16 +89,16 @@ public class XmlToAppData extends Defaul
* @throws SAXException
* @throws IOException
*/
- public AppData parseFile(String xmlFile)
+ public AppData parseFile(File xmlFile)
throws ParserConfigurationException, SAXException, IOException
{
SAXParser parser = saxFactory.newSAXParser();
FileReader fr = new FileReader(xmlFile);
BufferedReader br = new BufferedReader(fr);
-
+
chars = new StringBuffer();
-
+
try
{
InputSource is = new InputSource(br);
@@ -113,13 +114,13 @@ public class XmlToAppData extends Defaul
/**
* Provide an Avalon logger
- *
+ *
* @see org.apache.avalon.framework.logger.LogEnabled#enableLogging(org.apache.avalon.framework.logger.Logger)
*/
public void enableLogging(Logger logger)
{
this.log = logger.getChildLogger("XmlToAppData");
-
+
}
/**
@@ -159,7 +160,7 @@ public class XmlToAppData extends Defaul
/**
* Handles closing elements of the xml file.
- *
+ *
* @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
*/
public void endElement(String uri, String localName, String name) throws SAXException
@@ -175,7 +176,7 @@ public class XmlToAppData extends Defaul
"'required' rule instead.");
currField.setIfRequiredMessage(chars.toString());
}
-
+
chars = new StringBuffer();
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BigDecimalValidator.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BigDecimalValidator.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BigDecimalValidator.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BigDecimalValidator.java Fri Nov 11 00:05:28 2011
@@ -25,8 +25,6 @@ import java.text.ParseException;
import java.util.Locale;
import java.util.Map;
-import org.apache.commons.lang.StringUtils;
-import org.apache.fulcrum.intake.model.Field;
/**
* Validates BigDecimals with the following constraints in addition to those
@@ -49,22 +47,18 @@ import org.apache.fulcrum.intake.model.F
* @version $Id$
*/
public class BigDecimalValidator
- extends NumberValidator
+ extends NumberValidator<BigDecimal>
{
- private BigDecimal minValue = null;
- private BigDecimal maxValue = null;
-
/**
- * Constructor to use when initialising Object
+ * Constructor to use when initializing Object
*
* @param paramMap
* @throws InvalidMaskException
*/
- public BigDecimalValidator(Map paramMap)
+ public BigDecimalValidator(Map<String, Constraint> paramMap)
throws InvalidMaskException
{
- this();
- init(paramMap);
+ super(paramMap);
}
/**
@@ -72,149 +66,19 @@ public class BigDecimalValidator
*/
public BigDecimalValidator()
{
+ super();
invalidNumberMessage = "Entry was not a valid BigDecimal";
}
/**
- * Method to initialise Object
- *
- * @param paramMap
- * @throws InvalidMaskException
- */
- public void init(Map paramMap)
- throws InvalidMaskException
- {
- super.init(paramMap);
-
- Constraint constraint = (Constraint) paramMap.get(MIN_VALUE_RULE_NAME);
- if (constraint != null)
- {
- String param = constraint.getValue();
- minValue = new BigDecimal(param);
- minValueMessage = constraint.getMessage();
- }
-
- constraint = (Constraint) paramMap.get(MAX_VALUE_RULE_NAME);
- if (constraint != null)
- {
- String param = constraint.getValue();
- maxValue = new BigDecimal(param);
- maxValueMessage = constraint.getMessage();
- }
- }
-
- /**
- * Determine whether a field meets the criteria specified
- * in the constraints defined for this validator
- *
- * @param field a <code>Field</code> to be tested
- * @exception ValidationException containing an error message if the
- * testValue did not pass the validation tests.
- */
- public void assertValidity(Field field)
- throws ValidationException
- {
- Locale locale = field.getLocale();
-
- if (field.isMultiValued())
- {
- String[] stringValues = (String[])field.getTestValue();
-
- for (int i = 0; i < stringValues.length; i++)
- {
- assertValidity(stringValues[i], locale);
- }
- }
- else
- {
- assertValidity((String)field.getTestValue(), locale);
- }
- }
-
- /**
- * Determine whether a testValue meets the criteria specified
- * in the constraints defined for this validator
- *
- * @param testValue a <code>String</code> to be tested
- * @param locale the Locale of the associated field
- * @exception ValidationException containing an error message if the
- * testValue did not pass the validation tests.
- */
- public void assertValidity(String testValue, Locale locale)
- throws ValidationException
- {
- super.assertValidity(testValue);
-
- if (required || StringUtils.isNotEmpty(testValue))
- {
- BigDecimal bd = null;
- NumberFormat nf = NumberFormat.getInstance(locale);
- try
- {
- Number number = nf.parse(testValue);
- bd = new BigDecimal(number.doubleValue());
- }
- catch (ParseException e)
- {
- errorMessage = invalidNumberMessage;
- throw new ValidationException(invalidNumberMessage);
- }
-
- if (minValue != null && bd.compareTo(minValue) < 0)
- {
- errorMessage = minValueMessage;
- throw new ValidationException(minValueMessage);
- }
- if (maxValue != null && bd.compareTo(maxValue) > 0)
- {
- errorMessage = maxValueMessage;
- throw new ValidationException(maxValueMessage);
- }
- }
- }
-
-
- // ************************************************************
- // ** Bean accessor methods **
- // ************************************************************
-
- /**
- * Get the value of minValue.
- *
- * @return value of minValue.
- */
- public BigDecimal getMinValue()
- {
- return minValue;
- }
-
- /**
- * Set the value of minValue.
- *
- * @param minValue Value to assign to minValue.
- */
- public void setMinValue(BigDecimal minValue)
- {
- this.minValue = minValue;
- }
-
- /**
- * Get the value of maxValue.
- *
- * @return value of maxValue.
+ * @see org.apache.fulcrum.intake.validator.NumberValidator#parseNumber(java.lang.String, java.util.Locale)
*/
- public BigDecimal getMaxValue()
+ @Override
+ protected BigDecimal parseNumber(String stringValue, Locale locale) throws ParseException
{
- return maxValue;
- }
+ NumberFormat nf = NumberFormat.getInstance(locale);
- /**
- * Set the value of maxValue.
- *
- * @param maxValue Value to assign to maxValue.
- */
- public void setMaxValue(BigDecimal maxValue)
- {
- this.maxValue = maxValue;
+ Number number = nf.parse(stringValue);
+ return new BigDecimal(number.doubleValue());
}
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BooleanValidator.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BooleanValidator.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BooleanValidator.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/BooleanValidator.java Fri Nov 11 00:05:28 2011
@@ -20,7 +20,6 @@ package org.apache.fulcrum.intake.valida
*/
import java.text.ParseException;
-
import java.util.Map;
import org.apache.commons.lang.StringUtils;
@@ -28,9 +27,9 @@ import org.apache.commons.lang.StringUti
/**
* Validator for boolean field types.<br><br>
*
- * Values are validated by attemting to match the value to
+ * Values are validated by attempting to match the value to
* a list of strings for true and false values. The string
- * values are compared without reguard to case.<br>
+ * values are compared without regard to case.<br>
*
* Valid values for Boolean.TRUE:
* <ul>
@@ -57,7 +56,7 @@ import org.apache.commons.lang.StringUti
* @version $Id$
*/
public class BooleanValidator
- extends DefaultValidator
+ extends DefaultValidator<Boolean>
{
/** String values which would evaluate to Boolean.TRUE */
private static String[] trueValues = {"TRUE","T","YES","Y","1","ON"};
@@ -70,6 +69,7 @@ public class BooleanValidator
*/
public BooleanValidator()
{
+ super();
}
/**
@@ -78,7 +78,7 @@ public class BooleanValidator
* @param paramMap
* @throws InvalidMaskException
*/
- public BooleanValidator(Map paramMap)
+ public BooleanValidator(Map<String, Constraint> paramMap)
throws InvalidMaskException
{
super(paramMap);
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java Fri Nov 11 00:05:28 2011
@@ -25,17 +25,16 @@ package org.apache.fulcrum.intake.valida
* @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
* @version $Id: DateStringValidator.java 534527 2007-05-02 16:10:59Z tv $
*/
-public interface CompareCallback
+public interface CompareCallback<T>
{
/**
* Compare the given values using the compare operation provided
- *
+ *
* @param compare type of compare operation
* @param thisValue value of this field
* @param refValue value of the reference field
- *
+ *
* @return the result of the comparison
*/
- public boolean compareValues(int compare, Object thisValue, Object refValue)
- throws ClassCastException;
+ public boolean compareValues(int compare, T thisValue, T refValue);
}
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java Fri Nov 11 00:05:28 2011
@@ -22,7 +22,6 @@ package org.apache.fulcrum.intake.valida
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -67,15 +66,15 @@ public class DateRangeValidator
extends DateStringValidator
{
/** List of FieldReferences for multiple comparisons */
- List fieldReferences;
+ List<FieldReference> fieldReferences;
/** Callback for the actual compare operation */
- CompareCallback compareCallback;
+ CompareCallback<Date> compareCallback;
- public DateRangeValidator(final Map paramMap)
+ public DateRangeValidator(Map<String, Constraint> paramMap)
throws IntakeException
{
- init(paramMap);
+ super(paramMap);
}
/**
@@ -92,63 +91,58 @@ public class DateRangeValidator
* @param paramMap
* @throws InvalidMaskException
*/
- public void init(final Map paramMap)
+ public void init(Map<String, ? extends Constraint> paramMap)
throws InvalidMaskException
{
super.init(paramMap);
-
- compareCallback = new CompareCallback()
+
+ compareCallback = new CompareCallback<Date>()
{
/**
* Compare the given values using the compare operation provided
- *
+ *
* @param compare type of compare operation
* @param thisValue value of this field
* @param refValue value of the reference field
- *
+ *
* @return the result of the comparison
*/
- public boolean compareValues(int compare, Object thisValue, Object refValue)
- throws ClassCastException
+ public boolean compareValues(int compare, Date thisValue, Date refValue)
{
boolean result = true;
-
- Date thisDate = (Date)thisValue;
- Date otherDate = (Date)refValue;
-
+
switch (compare)
{
case FieldReference.COMPARE_LT:
- result = thisDate.before(otherDate);
+ result = thisValue.before(refValue);
break;
-
+
case FieldReference.COMPARE_LTE:
- result = !thisDate.after(otherDate);
+ result = !thisValue.after(refValue);
break;
-
+
case FieldReference.COMPARE_GT:
- result = thisDate.after(otherDate);
+ result = thisValue.after(refValue);
break;
-
+
case FieldReference.COMPARE_GTE:
- result = !thisDate.before(otherDate);
+ result = !thisValue.before(refValue);
break;
}
-
+
return result;
}
};
-
- fieldReferences = new ArrayList(10);
- for (Iterator i = paramMap.entrySet().iterator(); i.hasNext();)
+ fieldReferences = new ArrayList<FieldReference>(10);
+
+ for (Map.Entry<String, ? extends Constraint> entry : paramMap.entrySet())
{
- Map.Entry entry = (Map.Entry)i.next();
- String key = (String)entry.getKey();
- Constraint constraint = (Constraint)entry.getValue();
+ String key = entry.getKey();
+ Constraint constraint = entry.getValue();
int compare = FieldReference.getCompareType(key);
-
+
if (compare != 0)
{
// found matching constraint
@@ -156,17 +150,17 @@ public class DateRangeValidator
fieldref.setCompare(compare);
fieldref.setFieldName(constraint.getValue());
fieldref.setMessage(constraint.getMessage());
-
+
fieldReferences.add(fieldref);
}
}
-
+
if (fieldReferences.isEmpty())
{
log.warn("No reference field rules have been found.");
}
}
-
+
/**
* Determine whether a testValue meets the criteria specified
* in the constraints defined for this validator
@@ -175,11 +169,11 @@ public class DateRangeValidator
* @exception ValidationException containing an error message if the
* testValue did not pass the validation tests.
*/
- public void assertValidity(final Field testField)
+ public void assertValidity(Field<Date> testField)
throws ValidationException
{
super.assertValidity(testField);
-
+
Group thisGroup = testField.getGroup();
if (testField.isMultiValued())
@@ -194,7 +188,7 @@ public class DateRangeValidator
else
{
String testValue = (String)testField.getTestValue();
-
+
assertValidity(testValue, thisGroup);
}
}
@@ -205,7 +199,7 @@ public class DateRangeValidator
*
* @param testValue a <code>String</code> to be tested
* @param group the group this field belongs to
- *
+ *
* @exception ValidationException containing an error message if the
* testValue did not pass the validation tests.
*/
@@ -215,22 +209,22 @@ public class DateRangeValidator
if (required || StringUtils.isNotEmpty(testValue))
{
Date testDate = null;
-
+
try
{
testDate = parse(testValue);
}
catch (ParseException e)
{
- // This should not happen because we succeded with this before,
+ // This should not happen because we succeeded with this before,
// but we need to catch the exception anyway
errorMessage = getDateFormatMessage();
throw new ValidationException(errorMessage);
}
-
+
try
{
- FieldReference.checkReferences(fieldReferences, compareCallback,
+ FieldReference.checkReferences(fieldReferences, compareCallback,
testDate, group);
}
catch (ValidationException e)
Modified: turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateStringValidator.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateStringValidator.java?rev=1200653&r1=1200652&r2=1200653&view=diff
==============================================================================
--- turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateStringValidator.java (original)
+++ turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateStringValidator.java Fri Nov 11 00:05:28 2011
@@ -22,14 +22,12 @@ package org.apache.fulcrum.intake.valida
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
-
import org.apache.fulcrum.intake.IntakeException;
/**
@@ -57,18 +55,18 @@ import org.apache.fulcrum.intake.IntakeE
* @version $Id$
*/
public class DateStringValidator
- extends DefaultValidator
+ extends DefaultValidator<Date>
{
private static final String DEFAULT_DATE_MESSAGE =
"Date could not be parsed";
- /** */
- private List dateFormats = null;
+ /** A list of date formats to try */
+ private List<String> dateFormats = null;
- /** */
+ /** An error message if no date could be parsed */
private String dateFormatMessage = null;
- /** */
+ /** A flag that is passed to the DateFormat lenient feature */
private boolean flexible = false;
/** */
@@ -77,10 +75,10 @@ public class DateStringValidator
/** */
private SimpleDateFormat sdf = null;
- public DateStringValidator(Map paramMap)
+ public DateStringValidator(Map<String, Constraint> paramMap)
throws IntakeException
{
- init(paramMap);
+ super(paramMap);
}
/**
@@ -88,7 +86,8 @@ public class DateStringValidator
*/
public DateStringValidator()
{
- dateFormats = new ArrayList(5);
+ super();
+ dateFormats = new ArrayList<String>(5);
}
/**
@@ -97,12 +96,12 @@ public class DateStringValidator
* @param paramMap
* @throws InvalidMaskException
*/
- public void init(Map paramMap)
+ public void init(Map<String, ? extends Constraint> paramMap)
throws InvalidMaskException
{
super.init(paramMap);
- Constraint constraint = (Constraint) paramMap.get(FORMAT_RULE_NAME);
+ Constraint constraint = paramMap.get(FORMAT_RULE_NAME);
if (constraint != null)
{
@@ -112,7 +111,7 @@ public class DateStringValidator
for(int i = 1 ;; i++)
{
- constraint = (Constraint) paramMap.get(FORMAT_RULE_NAME + i);
+ constraint = paramMap.get(FORMAT_RULE_NAME + i);
if (constraint == null)
{
@@ -128,7 +127,7 @@ public class DateStringValidator
dateFormatMessage = DEFAULT_DATE_MESSAGE;
}
- constraint = (Constraint) paramMap.get(FLEXIBLE_RULE_NAME);
+ constraint = paramMap.get(FLEXIBLE_RULE_NAME);
if (constraint != null)
{
@@ -196,7 +195,7 @@ public class DateStringValidator
for (int i = 1; i < dateFormats.size() && date == null; i++)
{
- sdf.applyPattern((String) dateFormats.get(i));
+ sdf.applyPattern(dateFormats.get(i));
try
{
@@ -210,7 +209,7 @@ public class DateStringValidator
if (date == null)
{
- sdf.applyPattern((String) dateFormats.get(0));
+ sdf.applyPattern(dateFormats.get(0));
try
{
@@ -249,7 +248,7 @@ public class DateStringValidator
String s = null;
if (date != null)
{
- sdf.applyPattern((String) dateFormats.get(0));
+ sdf.applyPattern(dateFormats.get(0));
s = sdf.format(date);
}
return s;
@@ -290,7 +289,7 @@ public class DateStringValidator
*
* @return value of dateFormats.
*/
- public List getDateFormats()
+ public List<String> getDateFormats()
{
return dateFormats;
}
@@ -300,7 +299,7 @@ public class DateStringValidator
*
* @param formats Value to assign to dateFormats.
*/
- public void setDateFormats(List formats)
+ public void setDateFormats(List<String> formats)
{
this.dateFormats = formats;
}