mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
- Fixed unreported bug where boolean deafult values where not set correctly
- Fixed AR-314, category rule was not appending additional categories - Fixed spelling mistake and moved lock messages into properties file while I was there (AWC-350) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2039 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.alfresco.repo.action.executer;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -30,6 +31,7 @@ import org.alfresco.service.cmr.dictionary.PropertyDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
|
||||
/**
|
||||
@@ -117,10 +119,21 @@ public class LinkCategoryActionExecuter extends ActionExecuterAbstractBase
|
||||
|
||||
if (categoryAspect != null)
|
||||
{
|
||||
// Add the aspect setting the category property to the approptiate values
|
||||
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
||||
properties.put(categoryProperty, categoryValue);
|
||||
this.nodeService.addAspect(actionedUponNodeRef, categoryAspect, properties);
|
||||
if (this.nodeService.hasAspect(actionedUponNodeRef, categoryAspect) == false)
|
||||
{
|
||||
// Add the aspect and set the category property value
|
||||
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
||||
properties.put(categoryProperty, categoryValue);
|
||||
this.nodeService.addAspect(actionedUponNodeRef, categoryAspect, properties);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Append the category value to the existing values
|
||||
Serializable value = this.nodeService.getProperty(actionedUponNodeRef, categoryProperty);
|
||||
Collection<NodeRef> categories = DefaultTypeConverter.INSTANCE.getCollection(NodeRef.class, value);
|
||||
categories.add(categoryValue);
|
||||
this.nodeService.setProperty(actionedUponNodeRef, categoryProperty, (Serializable)categories);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -165,6 +165,7 @@ public class LockServiceImplTest extends BaseSpringTest
|
||||
}
|
||||
catch (UnableToAquireLockException exception)
|
||||
{
|
||||
System.out.println(exception.getMessage());
|
||||
}
|
||||
|
||||
TestWithUserUtils.authenticateUser(GOOD_USER_NAME, PWD, rootNodeRef, this.authenticationService);
|
||||
@@ -220,6 +221,7 @@ public class LockServiceImplTest extends BaseSpringTest
|
||||
}
|
||||
catch (UnableToReleaseLockException exception)
|
||||
{
|
||||
System.out.println(exception.getMessage());
|
||||
}
|
||||
|
||||
TestWithUserUtils.authenticateUser(GOOD_USER_NAME, PWD, rootNodeRef, this.authenticationService);
|
||||
|
@@ -40,6 +40,7 @@ import org.alfresco.repo.policy.PolicyComponent;
|
||||
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
|
||||
import org.alfresco.service.cmr.dictionary.AspectDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.ClassDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||
import org.alfresco.service.cmr.dictionary.InvalidAspectException;
|
||||
import org.alfresco.service.cmr.dictionary.InvalidTypeException;
|
||||
@@ -334,8 +335,32 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
{
|
||||
if (properties.containsKey(entry.getKey()) == false)
|
||||
{
|
||||
Serializable value = entry.getValue();
|
||||
|
||||
// TODO what other conversions are nessesary here for other types of default values ?
|
||||
|
||||
// Check the type of the default property
|
||||
PropertyDefinition prop = this.dictionaryService.getProperty(entry.getKey());
|
||||
if (prop != null)
|
||||
{
|
||||
if (DataTypeDefinition.BOOLEAN.equals(prop.getDataType().getName()) == true)
|
||||
{
|
||||
if (value instanceof String)
|
||||
{
|
||||
if (((String)value).toUpperCase().equals("TRUE") == true)
|
||||
{
|
||||
value = Boolean.TRUE;
|
||||
}
|
||||
else if (((String)value).toUpperCase().equals("FALSE") == true)
|
||||
{
|
||||
value = Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set the default value of the property
|
||||
properties.put(entry.getKey(), entry.getValue());
|
||||
properties.put(entry.getKey(), value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user