diff --git a/config/alfresco/form-services-context.xml b/config/alfresco/form-services-context.xml index 116c12bc77..90f160774f 100644 --- a/config/alfresco/form-services-context.xml +++ b/config/alfresco/form-services-context.xml @@ -137,15 +137,15 @@ parent="qnameFieldProcessor" /> + */ public abstract class AbstractFieldProcessor implements FieldProcessor { /* (non-Javadoc) diff --git a/source/java/org/alfresco/repo/forms/processor/FieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/FieldProcessor.java index c9fc7fbb45..156c1b1c36 100644 --- a/source/java/org/alfresco/repo/forms/processor/FieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/FieldProcessor.java @@ -21,6 +21,12 @@ package org.alfresco.repo.forms.processor; import org.alfresco.repo.forms.Field; +/** + * + * @since 3.4 + * @author Nick Smith + * + */ public interface FieldProcessor { Field generateField(String fieldName, FormCreationData data); diff --git a/source/java/org/alfresco/repo/forms/processor/FieldProcessorRegistry.java b/source/java/org/alfresco/repo/forms/processor/FieldProcessorRegistry.java index c5116c073b..ce75440fcc 100644 --- a/source/java/org/alfresco/repo/forms/processor/FieldProcessorRegistry.java +++ b/source/java/org/alfresco/repo/forms/processor/FieldProcessorRegistry.java @@ -24,6 +24,11 @@ import java.util.Map; import org.alfresco.repo.forms.Field; +/** + * @since 3.4 + * @author Nick Smith + * + */ public class FieldProcessorRegistry { private final Map processors = new HashMap(); diff --git a/source/java/org/alfresco/repo/forms/processor/FormCreationData.java b/source/java/org/alfresco/repo/forms/processor/FormCreationData.java index 79f884c11e..c1be995831 100644 --- a/source/java/org/alfresco/repo/forms/processor/FormCreationData.java +++ b/source/java/org/alfresco/repo/forms/processor/FormCreationData.java @@ -30,6 +30,7 @@ import java.util.Map; /** * Simple DTO containing various objects needed to generate Forms. + * @since 3.4 * @author Nick Smith */ public class FormCreationData diff --git a/source/java/org/alfresco/repo/forms/processor/FormPersister.java b/source/java/org/alfresco/repo/forms/processor/FormPersister.java index 51cf4881d5..2b5d14e8b8 100644 --- a/source/java/org/alfresco/repo/forms/processor/FormPersister.java +++ b/source/java/org/alfresco/repo/forms/processor/FormPersister.java @@ -20,7 +20,11 @@ package org.alfresco.repo.forms.processor; /** + * + * @since 3.4 * @author Nick Smith + * + * @param */ public interface FormPersister { diff --git a/source/java/org/alfresco/repo/forms/processor/node/AssociationFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/AssociationFieldProcessor.java index 63d7a94f6e..c619f5a7bc 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/AssociationFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/AssociationFieldProcessor.java @@ -19,6 +19,12 @@ import org.alfresco.service.namespace.QName; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +/** + * + * @since 3.4 + * @author Nick Smith + * + */ public class AssociationFieldProcessor extends QNameFieldProcessor { private static final Log logger = LogFactory.getLog(AssociationFieldProcessor.class); @@ -50,7 +56,7 @@ public class AssociationFieldProcessor extends QNameFieldProcessor extends FilteredFormProcessor { - /** Public constants */ - public static final String ON = "on"; - - public static final String PROP = "prop"; - - public static final String ASSOC = "assoc"; - - public static final String DATA_KEY_SEPARATOR = "_"; - - public static final String PROP_DATA_PREFIX = PROP + DATA_KEY_SEPARATOR; - - public static final String ASSOC_DATA_PREFIX = ASSOC + DATA_KEY_SEPARATOR; - - public static final String ASSOC_DATA_ADDED_SUFFIX = DATA_KEY_SEPARATOR + "added"; - - public static final String ASSOC_DATA_REMOVED_SUFFIX = DATA_KEY_SEPARATOR + "removed"; - - public static final String TRANSIENT_MIMETYPE = "mimetype"; - - public static final String TRANSIENT_SIZE = "size"; - - public static final String TRANSIENT_ENCODING = "encoding"; - - /** Protected constants */ - protected static final String DEFAULT_CONTENT_MIMETYPE = "text/plain"; - - protected static final String MSG_MIMETYPE_LABEL = "form_service.mimetype.label"; - - protected static final String MSG_MIMETYPE_DESC = "form_service.mimetype.description"; - - protected static final String MSG_ENCODING_LABEL = "form_service.encoding.label"; - - protected static final String MSG_ENCODING_DESC = "form_service.encoding.description"; - - protected static final String MSG_SIZE_LABEL = "form_service.size.label"; - - protected static final String MSG_SIZE_DESC = "form_service.size.description"; - /** Services */ protected NodeService nodeService; @@ -145,8 +114,6 @@ public abstract class ContentModelFormProcessor extends */ protected Pattern associationNamePattern = Pattern.compile(ASSOC_DATA_PREFIX + "([a-zA-Z0-9]+)_(.*)(_[a-zA-Z]+)"); - private DataKeyMatcher keyMatcher; - /** * Sets the node service * @@ -185,7 +152,6 @@ public abstract class ContentModelFormProcessor extends public void setNamespaceService(NamespaceService namespaceService) { this.namespaceService = namespaceService; - this.keyMatcher = new DataKeyMatcher(namespaceService); } /** @@ -509,15 +475,15 @@ public abstract class ContentModelFormProcessor extends { String fieldName = tppm.group(1); - if (fieldName.equals(TRANSIENT_MIMETYPE)) + if (fieldName.equals(MimetypeFieldProcessor.KEY)) { processMimetypePropertyPersist(nodeRef, fieldData, propsToPersist); } - else if (fieldName.equals(TRANSIENT_ENCODING)) + else if (fieldName.equals(EncodingFieldProcessor.KEY)) { processEncodingPropertyPersist(nodeRef, fieldData, propsToPersist); } - else if (fieldName.equals(TRANSIENT_SIZE)) + else if (fieldName.equals(SizeFieldProcessor.KEY)) { // the size property is well known but should never be // persisted @@ -814,7 +780,7 @@ public abstract class ContentModelFormProcessor extends if (data != null) { - FieldData mimetypeField = data.getFieldData(PROP + DATA_KEY_SEPARATOR + TRANSIENT_MIMETYPE); + FieldData mimetypeField = data.getFieldData(PROP_DATA_PREFIX + MimetypeFieldProcessor.KEY); if (mimetypeField != null) { String mimetypeFieldValue = (String)mimetypeField.getValue(); diff --git a/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldBuilder.java b/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldBuilder.java index 3121324cbc..c98e5a285e 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldBuilder.java +++ b/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldBuilder.java @@ -32,7 +32,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** + * + * @since 3.4 * @author Nick Smith + * */ public class DefaultFieldBuilder { diff --git a/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldProcessor.java index 1fc8bd23f4..3a59f362f1 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/DefaultFieldProcessor.java @@ -28,6 +28,12 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.InitializingBean; +/** + * + * @since 3.4 + * @author Nick Smith + * + */ public class DefaultFieldProcessor extends QNameFieldProcessor implements InitializingBean { private static final Log logger = LogFactory.getLog(DefaultFieldProcessor.class); diff --git a/source/java/org/alfresco/repo/forms/processor/node/TransientEncodingFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/EncodingFieldProcessor.java similarity index 80% rename from source/java/org/alfresco/repo/forms/processor/node/TransientEncodingFieldProcessor.java rename to source/java/org/alfresco/repo/forms/processor/node/EncodingFieldProcessor.java index 3131af383a..eac57f29cf 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/TransientEncodingFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/EncodingFieldProcessor.java @@ -20,7 +20,6 @@ package org.alfresco.repo.forms.processor.node; import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP_DATA_PREFIX; -import static org.alfresco.repo.forms.processor.node.FormFieldConstants.TRANSIENT_ENCODING; import org.alfresco.repo.forms.FieldDefinition; import org.alfresco.repo.forms.PropertyFieldDefinition; @@ -29,10 +28,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.extensions.surf.util.I18NUtil; -public class TransientEncodingFieldProcessor extends TransientFieldProcessor +/** + * + * @since 3.4 + * @author Nick Smith + * + */ +public class EncodingFieldProcessor extends TransientFieldProcessor { - private static final Log logger = LogFactory.getLog(TransientEncodingFieldProcessor.class); + private static final Log logger = LogFactory.getLog(EncodingFieldProcessor.class); + public static final String KEY = "encoding"; + private static final String MSG_ENCODING_LABEL = "form_service.encoding.label"; private static final String MSG_ENCODING_DESC = "form_service.encoding.description"; @@ -45,8 +52,8 @@ public class TransientEncodingFieldProcessor extends TransientFieldProcessor @Override protected FieldDefinition makeTransientFieldDefinition() { - String dataKeyName = PROP_DATA_PREFIX + TRANSIENT_ENCODING; - PropertyFieldDefinition encodingField = new PropertyFieldDefinition(TRANSIENT_ENCODING, + String dataKeyName = PROP_DATA_PREFIX + KEY; + PropertyFieldDefinition encodingField = new PropertyFieldDefinition(KEY, DataTypeDefinition.TEXT.getLocalName()); encodingField.setLabel(I18NUtil.getMessage(MSG_ENCODING_LABEL)); encodingField.setDescription(I18NUtil.getMessage(MSG_ENCODING_DESC)); @@ -57,6 +64,6 @@ public class TransientEncodingFieldProcessor extends TransientFieldProcessor @Override protected String getRegistryKey() { - return FormFieldConstants.TRANSIENT_ENCODING; + return KEY; } } \ No newline at end of file diff --git a/source/java/org/alfresco/repo/forms/processor/node/FieldProcessorTest.java b/source/java/org/alfresco/repo/forms/processor/node/FieldProcessorTest.java index f8a4dd964e..1474e0e723 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/FieldProcessorTest.java +++ b/source/java/org/alfresco/repo/forms/processor/node/FieldProcessorTest.java @@ -40,7 +40,10 @@ import org.alfresco.service.namespace.NamespaceServiceMemoryImpl; import org.alfresco.service.namespace.QName; /** + * + * @since 3.4 * @author Nick Smith + * */ public class FieldProcessorTest extends TestCase { diff --git a/source/java/org/alfresco/repo/forms/processor/node/FieldUtils.java b/source/java/org/alfresco/repo/forms/processor/node/FieldUtils.java index aca0a00033..0c8f4c7a2f 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/FieldUtils.java +++ b/source/java/org/alfresco/repo/forms/processor/node/FieldUtils.java @@ -35,6 +35,7 @@ import org.alfresco.service.namespace.NamespaceService; * {@link PropertyDefinition PropertyDefinitions} and * {@link AssociationDefinition AssociationDefinitions} * + * @since 3.4 * @author Nick Smith * */ diff --git a/source/java/org/alfresco/repo/forms/processor/node/FormFieldConstants.java b/source/java/org/alfresco/repo/forms/processor/node/FormFieldConstants.java index c8c7fab675..199a561888 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/FormFieldConstants.java +++ b/source/java/org/alfresco/repo/forms/processor/node/FormFieldConstants.java @@ -20,6 +20,7 @@ package org.alfresco.repo.forms.processor.node; /** + * @since 3.4 * @author Nick Smith */ public interface FormFieldConstants @@ -43,13 +44,11 @@ public interface FormFieldConstants public static final String ASSOC_DATA_REMOVED_SUFFIX = DATA_KEY_SEPARATOR + "removed"; - public static final String TRANSIENT_MIMETYPE = "mimetype"; - - public static final String TRANSIENT_SIZE = "size"; - - public static final String TRANSIENT_ENCODING = "encoding"; - public static final String ADDED = "added"; public static final String REMOVED = "removed"; + + /** Protected constants */ + public static final String DEFAULT_CONTENT_MIMETYPE = "text/plain"; + } diff --git a/source/java/org/alfresco/repo/forms/processor/node/ItemData.java b/source/java/org/alfresco/repo/forms/processor/node/ItemData.java index b68505a648..101909d4a4 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/ItemData.java +++ b/source/java/org/alfresco/repo/forms/processor/node/ItemData.java @@ -38,6 +38,7 @@ import org.alfresco.service.namespace.QName; * Simple data transfer object used by the ContentModelFormProcessor and its * descendants. * + * @since 3.4 * @author Nick Smith */ public class ItemData implements TransientValueGetter diff --git a/source/java/org/alfresco/repo/forms/processor/node/TransientMimetypeFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/MimetypeFieldProcessor.java similarity index 75% rename from source/java/org/alfresco/repo/forms/processor/node/TransientMimetypeFieldProcessor.java rename to source/java/org/alfresco/repo/forms/processor/node/MimetypeFieldProcessor.java index 11dbd6d9ca..7a16e25c84 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/TransientMimetypeFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/MimetypeFieldProcessor.java @@ -20,7 +20,6 @@ package org.alfresco.repo.forms.processor.node; import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP_DATA_PREFIX; -import static org.alfresco.repo.forms.processor.node.FormFieldConstants.TRANSIENT_MIMETYPE; import org.alfresco.repo.forms.FieldDefinition; import org.alfresco.repo.forms.PropertyFieldDefinition; @@ -29,10 +28,19 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.extensions.surf.util.I18NUtil; -public class TransientMimetypeFieldProcessor extends TransientFieldProcessor +/** + * + * @since 3.4 + * @author Nick Smith + * + */ +public class MimetypeFieldProcessor extends TransientFieldProcessor { - private static final Log logger = LogFactory.getLog(TransientMimetypeFieldProcessor.class); - private static final String MSG_MIMETYPE_LABEL = "form_service.mimetype.label"; + private static final Log logger = LogFactory.getLog(MimetypeFieldProcessor.class); + + public static final String KEY = "mimetype"; + + private static final String MSG_MIMETYPE_LABEL = "form_service.mimetype.label"; private static final String MSG_MIMETYPE_DESC = "form_service.mimetype.description"; @Override @@ -42,8 +50,8 @@ public class TransientMimetypeFieldProcessor extends TransientFieldProcessor @Override protected FieldDefinition makeTransientFieldDefinition() { - String dataKeyName = PROP_DATA_PREFIX + TRANSIENT_MIMETYPE; - PropertyFieldDefinition mimetypeField = new PropertyFieldDefinition(TRANSIENT_MIMETYPE, DataTypeDefinition.TEXT + String dataKeyName = PROP_DATA_PREFIX + KEY; + PropertyFieldDefinition mimetypeField = new PropertyFieldDefinition(KEY, DataTypeDefinition.TEXT .getLocalName()); mimetypeField.setLabel(I18NUtil.getMessage(MSG_MIMETYPE_LABEL)); mimetypeField.setDescription(I18NUtil.getMessage(MSG_MIMETYPE_DESC)); @@ -54,6 +62,6 @@ public class TransientMimetypeFieldProcessor extends TransientFieldProcessor @Override protected String getRegistryKey() { - return FormFieldConstants.TRANSIENT_MIMETYPE; + return KEY; } } 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 cd3892180a..fbc2a17f04 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java +++ b/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java @@ -40,7 +40,10 @@ import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.namespace.QName; /** + * + * @since 3.4 * @author Nick Smith + * */ public class MockClassAttributeDefinition implements PropertyDefinition, AssociationDefinition { diff --git a/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java b/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java index 38cac0aa21..05de747e8f 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java +++ b/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java @@ -1,10 +1,32 @@ +/* + * Copyright (C) 2005-2009 Alfresco Software Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" + */ + package org.alfresco.repo.forms.processor.node; import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC; import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP; -import static org.alfresco.repo.forms.processor.node.FormFieldConstants.TRANSIENT_ENCODING; -import static org.alfresco.repo.forms.processor.node.FormFieldConstants.TRANSIENT_MIMETYPE; -import static org.alfresco.repo.forms.processor.node.FormFieldConstants.TRANSIENT_SIZE; import org.alfresco.repo.forms.processor.FieldProcessor; import org.alfresco.repo.forms.processor.workflow.PackageItemsFieldProcessor; @@ -12,15 +34,21 @@ import org.alfresco.repo.forms.processor.workflow.TransitionFieldProcessor; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.namespace.NamespaceService; +/** + * + * @since 3.4 + * @author Nick Smith + * + */ public class MockFieldProcessorRegistry extends ContentModelFieldProcessorRegistry { public MockFieldProcessorRegistry(NamespaceService namespaceService, DictionaryService dictionaryService) { register(PROP, makePropertyFieldProcessor(namespaceService, dictionaryService)); register(ASSOC, makeAssociationFieldProcessor(namespaceService, dictionaryService)); - register(TRANSIENT_ENCODING, makeEncodingFieldProcessor()); - register(TRANSIENT_MIMETYPE, makeMimetypeFieldProcessor()); - register(TRANSIENT_SIZE, makeSizeFieldProcessor()); + register(EncodingFieldProcessor.KEY, makeEncodingFieldProcessor()); + register(MimetypeFieldProcessor.KEY, makeMimetypeFieldProcessor()); + register(SizeFieldProcessor.KEY, makeSizeFieldProcessor()); register(TransitionFieldProcessor.KEY, makeTransitionFieldProcessor()); register(PackageItemsFieldProcessor.KEY, makePackageItemFieldProcessor()); setDefaultProcessor(makeDefaultFieldProcessor(namespaceService, dictionaryService)); @@ -60,19 +88,19 @@ public class MockFieldProcessorRegistry extends ContentModelFieldProcessorRegist return processor; } - private TransientEncodingFieldProcessor makeEncodingFieldProcessor() + private EncodingFieldProcessor makeEncodingFieldProcessor() { - return new TransientEncodingFieldProcessor(); + return new EncodingFieldProcessor(); } - private TransientMimetypeFieldProcessor makeMimetypeFieldProcessor() + private MimetypeFieldProcessor makeMimetypeFieldProcessor() { - return new TransientMimetypeFieldProcessor(); + return new MimetypeFieldProcessor(); } - private TransientSizeFieldProcessor makeSizeFieldProcessor() + private SizeFieldProcessor makeSizeFieldProcessor() { - return new TransientSizeFieldProcessor(); + return new SizeFieldProcessor(); } private PropertyFieldProcessor makePropertyFieldProcessor(NamespaceService namespaceService, diff --git a/source/java/org/alfresco/repo/forms/processor/node/NodeFormProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/NodeFormProcessor.java index e74f2a912c..21a5912781 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/NodeFormProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/NodeFormProcessor.java @@ -48,6 +48,7 @@ import org.apache.commons.logging.LogFactory; * repository nodes. * * @author Gavin Cornwell + * @author Nick Smith */ public class NodeFormProcessor extends ContentModelFormProcessor { @@ -193,9 +194,9 @@ public class NodeFormProcessor extends ContentModelFormProcessor { private static final Log logger = LogFactory.getLog(PropertyFieldProcessor.class); @@ -83,7 +89,7 @@ public class PropertyFieldProcessor extends QNameFieldProcessor + */ public abstract class QNameFieldProcessor extends AbstractFieldProcessor> { protected NamespaceService namespaceService; diff --git a/source/java/org/alfresco/repo/forms/processor/node/TransientSizeFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/SizeFieldProcessor.java similarity index 81% rename from source/java/org/alfresco/repo/forms/processor/node/TransientSizeFieldProcessor.java rename to source/java/org/alfresco/repo/forms/processor/node/SizeFieldProcessor.java index e6e90d0d45..6b82c600e3 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/TransientSizeFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/SizeFieldProcessor.java @@ -20,7 +20,6 @@ package org.alfresco.repo.forms.processor.node; import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP_DATA_PREFIX; -import static org.alfresco.repo.forms.processor.node.FormFieldConstants.TRANSIENT_SIZE; import org.alfresco.repo.forms.FieldDefinition; import org.alfresco.repo.forms.PropertyFieldDefinition; @@ -29,9 +28,19 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.extensions.surf.util.I18NUtil; -public class TransientSizeFieldProcessor extends TransientFieldProcessor +/** + * + * @since 3.4 + * @author Nick Smith + * + */ +public class SizeFieldProcessor extends TransientFieldProcessor { - private static final Log logger = LogFactory.getLog(TransientSizeFieldProcessor.class); + private static final Log logger = LogFactory.getLog(SizeFieldProcessor.class); + + + public static final String KEY = "size"; + private static final String MSG_SIZE_LABEL = "form_service.size.label"; private static final String MSG_SIZE_DESC = "form_service.size.description"; @@ -44,8 +53,8 @@ public class TransientSizeFieldProcessor extends TransientFieldProcessor @Override protected FieldDefinition makeTransientFieldDefinition() { - String dataKeyName = PROP_DATA_PREFIX + TRANSIENT_SIZE; - PropertyFieldDefinition sizeField = new PropertyFieldDefinition(TRANSIENT_SIZE, + String dataKeyName = PROP_DATA_PREFIX + KEY; + PropertyFieldDefinition sizeField = new PropertyFieldDefinition(KEY, DataTypeDefinition.LONG.getLocalName()); sizeField.setLabel(I18NUtil.getMessage(MSG_SIZE_LABEL)); sizeField.setDescription(I18NUtil.getMessage(MSG_SIZE_DESC)); @@ -57,6 +66,6 @@ public class TransientSizeFieldProcessor extends TransientFieldProcessor @Override protected String getRegistryKey() { - return FormFieldConstants.TRANSIENT_SIZE; + return KEY; } } \ No newline at end of file diff --git a/source/java/org/alfresco/repo/forms/processor/node/TransientFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/TransientFieldProcessor.java index 41d578c4e7..36e822a2c1 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/TransientFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/TransientFieldProcessor.java @@ -24,6 +24,12 @@ import org.alfresco.repo.forms.FieldDefinition; import org.alfresco.repo.forms.processor.AbstractFieldProcessor; import org.alfresco.repo.forms.processor.FormCreationData; +/** + * + * @since 3.4 + * @author Nick Smith + * + */ public abstract class TransientFieldProcessor extends AbstractFieldProcessor { /* (non-Javadoc) @@ -37,7 +43,7 @@ public abstract class TransientFieldProcessor extends AbstractFieldProcessor { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/AbstractWorkflowFormProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/AbstractWorkflowFormProcessor.java index bbd9fa9528..61a8b65a8a 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/AbstractWorkflowFormProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/AbstractWorkflowFormProcessor.java @@ -35,7 +35,12 @@ import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.util.ParameterCheck; /** + * + * @since 3.4 * @author Nick Smith + * + * @param + * @param */ public abstract class AbstractWorkflowFormProcessor extends ContentModelFormProcessor { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/ContentModelFormPersister.java b/source/java/org/alfresco/repo/forms/processor/workflow/ContentModelFormPersister.java index 655ff37702..4ef40afee7 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/ContentModelFormPersister.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/ContentModelFormPersister.java @@ -34,8 +34,11 @@ import org.apache.commons.logging.LogFactory; /** + * + * @since 3.4 * @author Nick Smith * + * @param */ public abstract class ContentModelFormPersister implements FormPersister { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyInfo.java b/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyInfo.java index 47bb73893a..bc0098f7f0 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyInfo.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyInfo.java @@ -22,6 +22,8 @@ package org.alfresco.repo.forms.processor.workflow; import org.alfresco.service.namespace.QName; /** + * + * @since 3.4 * @author Nick Smith * */ @@ -93,24 +95,4 @@ public class DataKeyInfo return isAdd; } - /** - * Implements the visitor pattern. Takes a DataKeyInfoVisitor and calls the - * appropriate visit method based on the fieldType. - * - * @param - * @param visitor - * @return - */ - public T visit(DataKeyInfoVisitor visitor) - { - switch(fieldType) - { - case ASSOCIATION: return visitor.visitAssociation(this); - case PROPERTY: return visitor.visitProperty(this); - case TRANSIENT_ASSOCIATION: return visitor.visitTransientAssociation(this); - case TRANSIENT_PROPERTY: return visitor.visitTransientProperty(this); - default: return null; //Should never be reached. - } - } - } diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyInfoVisitor.java b/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyInfoVisitor.java deleted file mode 100644 index 74e9622bfd..0000000000 --- a/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyInfoVisitor.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ - -package org.alfresco.repo.forms.processor.workflow; - -/** - * Visitor interface used to enable the visitor pattern on {@link DataKeyInfo} - * instances. Implementations of this interface can call - * DataKeyInfo.visit(DataKeyInfoVisitor) to have the appropriate - * visit method called on the visitor, based on the fieldType of the - * {@link DataKeyInfo} instance. - * - * @author Nick Smith - */ -public interface DataKeyInfoVisitor -{ - /** - * Called for {@link DataKeyInfo} instances with a field type of ASSOCIATION. - * @param info - * @return - */ - T visitAssociation(DataKeyInfo info); - - /** - * Called for {@link DataKeyInfo} instances with a field type of PROPERTY. - * @param info - * @return - */ - T visitProperty(DataKeyInfo info); - - /** - * Called for {@link DataKeyInfo} instances with a field type of TRANSIENT_ASSOCIATION. - * @param info - * @return - */ - T visitTransientAssociation(DataKeyInfo info); - - /** - * Called for {@link DataKeyInfo} instances with a field type of TRANSIENT_PROPERTY. - * @param info - * @return - */ - T visitTransientProperty(DataKeyInfo info); -} diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyMatcher.java b/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyMatcher.java index 266f457df5..7933a99c06 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyMatcher.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/DataKeyMatcher.java @@ -28,6 +28,8 @@ import org.alfresco.service.namespace.QName; import static org.alfresco.repo.forms.processor.node.FormFieldConstants.*; /** + * + * @since 3.4 * @author Nick Smith * */ diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/FieldType.java b/source/java/org/alfresco/repo/forms/processor/workflow/FieldType.java index 26c996563f..91c5fd22ab 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/FieldType.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/FieldType.java @@ -20,6 +20,8 @@ package org.alfresco.repo.forms.processor.workflow; /** + * + * @since 3.4 * @author Nick Smith * */ diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/FormPersister.java b/source/java/org/alfresco/repo/forms/processor/workflow/FormPersister.java index 2c12ba3db1..b45c169787 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/FormPersister.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/FormPersister.java @@ -21,10 +21,12 @@ package org.alfresco.repo.forms.processor.workflow; import org.alfresco.repo.forms.FormData.FieldData; - /** + * + * @since 3.4 * @author Nick Smith * + * @param */ public interface FormPersister { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/PackageItemsFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/PackageItemsFieldProcessor.java index 3b9ac60aa7..abe3a340fc 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/PackageItemsFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/PackageItemsFieldProcessor.java @@ -32,6 +32,8 @@ import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DA /** * {@link FieldProcessor} for handling package contents when displaying Workflow and Task Forms. + * + * @since 3.4 * @author Nick Smith */ public class PackageItemsFieldProcessor extends TransientFieldProcessor diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormPersister.java b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormPersister.java index 14be89e6a5..ee9ff7aab4 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormPersister.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormPersister.java @@ -24,6 +24,7 @@ import java.util.List; import org.alfresco.repo.forms.FormData.FieldData; import org.alfresco.repo.forms.processor.node.ItemData; +import org.alfresco.repo.workflow.TaskUpdater; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; @@ -34,6 +35,8 @@ import org.alfresco.service.namespace.QName; import org.apache.commons.logging.Log; /** + * + * @since 3.4 * @author Nick Smith * */ diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java index 2e9fa7c3cc..445319d339 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java @@ -47,7 +47,10 @@ import org.apache.commons.logging.LogFactory; import org.springframework.util.StringUtils; /** + * + * @since 3.4 * @author Nick Smith + * */ public class TaskFormProcessor extends AbstractWorkflowFormProcessor { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessorTest.java b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessorTest.java index 63d5182ff8..d3cdf5bd25 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessorTest.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessorTest.java @@ -79,7 +79,10 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; /** + * + * @since 3.4 * @author Nick Smith + * */ public class TaskFormProcessorTest extends TestCase { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/TransitionFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/TransitionFieldProcessor.java index f4d3ce4d01..c5903cb5ec 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/TransitionFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/TransitionFieldProcessor.java @@ -29,6 +29,8 @@ import org.apache.commons.logging.LogFactory; import org.springframework.extensions.surf.util.I18NUtil; /** + * + * @since 3.4 * @author Nick Smith * */ diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/TypedPropertyValueGetter.java b/source/java/org/alfresco/repo/forms/processor/workflow/TypedPropertyValueGetter.java index 822fb023f1..bfc8464228 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/TypedPropertyValueGetter.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/TypedPropertyValueGetter.java @@ -38,7 +38,10 @@ import org.json.JSONException; import org.springframework.extensions.surf.util.I18NUtil; /** + * + * @since 3.4 * @author Nick Smith + * */ public class TypedPropertyValueGetter { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormPersister.java b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormPersister.java index d9a2387f4b..ea4f731d36 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormPersister.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormPersister.java @@ -23,6 +23,7 @@ import java.io.Serializable; import java.util.List; import org.alfresco.repo.forms.processor.node.ItemData; +import org.alfresco.repo.workflow.WorkflowBuilder; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; @@ -34,6 +35,8 @@ import org.alfresco.service.namespace.QName; import org.apache.commons.logging.Log; /** + * + * @since 3.4 * @author Nick Smith * */ diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java index ad4477606b..895d6c342a 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java @@ -35,6 +35,7 @@ import org.apache.commons.logging.LogFactory; * Temporary FormProcessor implementation that can generate and persist * Form objects for workflow definitions. * + *@since 3.4 * @author Nick Smith */ public class WorkflowFormProcessor extends AbstractWorkflowFormProcessor diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessorTest.java b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessorTest.java index ef8a37634e..1401dbbb13 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessorTest.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessorTest.java @@ -22,7 +22,10 @@ package org.alfresco.repo.forms.processor.workflow; import junit.framework.TestCase; /** + * + * @since 3.4 * @author Nick Smith + * */ public class WorkflowFormProcessorTest extends TestCase { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/PackageManager.java b/source/java/org/alfresco/repo/workflow/PackageManager.java similarity index 92% rename from source/java/org/alfresco/repo/forms/processor/workflow/PackageManager.java rename to source/java/org/alfresco/repo/workflow/PackageManager.java index 61e07b51ab..3c2e04d002 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/PackageManager.java +++ b/source/java/org/alfresco/repo/workflow/PackageManager.java @@ -17,7 +17,7 @@ * along with Alfresco. If not, see . */ -package org.alfresco.repo.forms.processor.workflow; +package org.alfresco.repo.workflow; import java.util.ArrayList; import java.util.Collection; @@ -28,7 +28,6 @@ import java.util.Set; import org.alfresco.model.ContentModel; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; -import org.alfresco.repo.workflow.WorkflowModel; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; @@ -42,7 +41,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** + * This helper class is used to manage a workflow package. The manager is a + * stateful object which accumulates all the changes to be made to the package + * (such as adding and removing package items). These changes are then applied + * to the package when either the create() or update() method is called. + * + * @since 3.4 * @author Nick Smith + * */ public class PackageManager { diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/TaskUpdater.java b/source/java/org/alfresco/repo/workflow/TaskUpdater.java similarity index 93% rename from source/java/org/alfresco/repo/forms/processor/workflow/TaskUpdater.java rename to source/java/org/alfresco/repo/workflow/TaskUpdater.java index 21f0595106..184ea1745e 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/TaskUpdater.java +++ b/source/java/org/alfresco/repo/workflow/TaskUpdater.java @@ -23,7 +23,7 @@ * http://www.alfresco.com/legal/licensing" */ -package org.alfresco.repo.forms.processor.workflow; +package org.alfresco.repo.workflow; import java.io.Serializable; import java.util.HashMap; @@ -39,9 +39,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** - * A utility class for updating workflow tasks. This is a stateful object that - * accumulates a set of updates to a task and then commits all the updates when - * the update() method is called. + * A helper class for updating and transitioning {@link WorkflowTask + * WorkflowTasks}. This is a stateful object that accumulates a set of updates + * to a task and then commits all the updates when either the update() or + * transition() method is called. * * @since 3.4 * @author Nick Smith diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowBuilder.java b/source/java/org/alfresco/repo/workflow/WorkflowBuilder.java similarity index 88% rename from source/java/org/alfresco/repo/forms/processor/workflow/WorkflowBuilder.java rename to source/java/org/alfresco/repo/workflow/WorkflowBuilder.java index cb2e104b5f..c57c904ea4 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowBuilder.java +++ b/source/java/org/alfresco/repo/workflow/WorkflowBuilder.java @@ -17,14 +17,13 @@ * along with Alfresco. If not, see . */ -package org.alfresco.repo.forms.processor.workflow; +package org.alfresco.repo.workflow; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.alfresco.repo.workflow.WorkflowModel; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.workflow.WorkflowDefinition; @@ -36,10 +35,11 @@ import org.alfresco.service.cmr.workflow.WorkflowTask; import org.alfresco.service.namespace.QName; /** - * A helper class used to start workflows. The builder accumuates all the - * changes to be made to the list of parameters and package items, then starts a - * new workflow once the build() method is called. + * A helper class used to start workflows. The builder is a stateful object that + * accumulates the various parameters and package items used to start the + * workflow. The workflow is started when the build() method is called. * + * @since 3.4 * @author Nick Smith */ public class WorkflowBuilder