From 717e89267e0bb6c1ee9c03ec92a3f4586d769a67 Mon Sep 17 00:00:00 2001 From: N Smith Date: Mon, 10 Oct 2011 15:15:25 +0000 Subject: [PATCH] ALF-10143 Now Form processors convert property values from String to the appropriate type as specified by the property's DataTypeDefinition when the form is persisted. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31096 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../node/MockClassAttributeDefinition.java | 17 ++++++++++--- .../node/PropertyFieldProcessor.java | 3 +++ .../workflow/TaskFormProcessorTest.java | 17 +++++++++++++ .../workflow/TypedPropertyValueGetter.java | 25 ++++++++++--------- 4 files changed, 46 insertions(+), 16 deletions(-) diff --git a/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java b/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java index f4e3200217..440d07a407 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java +++ b/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java @@ -72,14 +72,19 @@ public class MockClassAttributeDefinition implements PropertyDefinition, Associa public static MockClassAttributeDefinition mockPropertyDefinition(QName name, QName dataTypeName) { MockClassAttributeDefinition mock = new MockClassAttributeDefinition(name); - mockDataTypeName(dataTypeName, mock); + mockDataTypeName(mock, dataTypeName, null); return mock; } public static MockClassAttributeDefinition mockPropertyDefinition(QName name, QName dataTypeName, String defaultValue) + { + return mockPropertyDefinition(name, dataTypeName, null, defaultValue); + } + + public static MockClassAttributeDefinition mockPropertyDefinition(QName name, QName dataTypeName, Class typeClass, String defaultValue) { MockClassAttributeDefinition mock = new MockClassAttributeDefinition(name); - mockDataTypeName(dataTypeName, mock); + mockDataTypeName(mock, dataTypeName, typeClass); mock.defaultValue = defaultValue; return mock; } @@ -94,7 +99,7 @@ public class MockClassAttributeDefinition implements PropertyDefinition, Associa boolean multiValued) { MockClassAttributeDefinition mock = new MockClassAttributeDefinition(name, title, description, isProtected); - mockDataTypeName(dataTypeName, mock); + mockDataTypeName(mock, dataTypeName, null); mock.defaultValue = defaultValue; mock.mandatory = Mandatory; mock.multiValued = multiValued; @@ -123,9 +128,13 @@ public class MockClassAttributeDefinition implements PropertyDefinition, Associa return mock; } - private static void mockDataTypeName(QName dataTypeName, MockClassAttributeDefinition mock) + private static void mockDataTypeName(MockClassAttributeDefinition mock, QName dataTypeName, Class javaClass) { when(mock.dataType.getName()).thenReturn(dataTypeName); + if (javaClass!=null) + { + when(mock.dataType.getJavaClassName()).thenReturn(javaClass.getName()); + } } private static void mockTargetClassName(QName targetClassName, MockClassAttributeDefinition mock) diff --git a/source/java/org/alfresco/repo/forms/processor/node/PropertyFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/PropertyFieldProcessor.java index 80098f7ba1..96825793ff 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/PropertyFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/PropertyFieldProcessor.java @@ -90,6 +90,9 @@ public class PropertyFieldProcessor extends QNameFieldProcessor