Rule webscripts

- Modified parsing of rule webscripts so an attribute "parameterValues" may contain an empty object
- Its now possible to create a rule (however action/conditions with multi parameters will fail on parsing on server: SAIL-306)
- Started to use constraints webscripts and removed old testdata webscripts 
- Made rule-details component on folder rules page display values form server

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@18676 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Erik Winlof
2010-02-17 12:20:36 +00:00
parent 3b2253fa41
commit e7d77dbceb
3 changed files with 38 additions and 135 deletions

View File

@@ -387,55 +387,58 @@ public abstract class AbstractRuleWebScript extends DeclarativeWebScript
// get parameters names
JSONArray names = jsonParameterValues.names();
for (int i = 0; i < names.length(); i++)
{
String propertyName = names.getString(i);
Object propertyValue = jsonParameterValues.get(propertyName);
// get parameter repository type
QName typeQName = getPropertyType(propertyName);
if (typeQName == null)
if (names != null)
{
for (int i = 0; i < names.length(); i++)
{
if (propertyValue.toString().equals("true") || propertyValue.toString().equals("false"))
{
typeQName = DataTypeDefinition.BOOLEAN;
}
else
{
typeQName = DataTypeDefinition.TEXT;
}
}
String propertyName = names.getString(i);
Object propertyValue = jsonParameterValues.get(propertyName);
Serializable value = null;
// get parameter repository type
QName typeQName = getPropertyType(propertyName);
if (typeQName.equals(DataTypeDefinition.ANY))
{
try
if (typeQName == null)
{
value = dateFormate.parse(propertyValue.toString());
if (propertyValue.toString().equals("true") || propertyValue.toString().equals("false"))
{
typeQName = DataTypeDefinition.BOOLEAN;
}
else
{
typeQName = DataTypeDefinition.TEXT;
}
}
catch (ParseException e)
Serializable value = null;
if (typeQName.equals(DataTypeDefinition.ANY))
{
try
{
value = Long.valueOf(propertyValue.toString());
value = dateFormate.parse(propertyValue.toString());
}
catch (NumberFormatException e1)
catch (ParseException e)
{
// do nothing
try
{
value = Long.valueOf(propertyValue.toString());
}
catch (NumberFormatException e1)
{
// do nothing
}
}
}
}
if (value == null)
{
// convert to correct repository type
value = (Serializable)DefaultTypeConverter.INSTANCE.convert(dictionaryService.getDataType(typeQName), propertyValue);
}
if (value == null)
{
// convert to correct repository type
value = (Serializable)DefaultTypeConverter.INSTANCE.convert(dictionaryService.getDataType(typeQName), propertyValue);
}
parameterValues.put(propertyName, value);
parameterValues.put(propertyName, value);
}
}
return parameterValues;