Merged V2.2 to HEAD

8371: Merged V2.1 to V2.2
      8307: Next round of fixes for session management.
      8309: Fixed AR-1891: Long MLText strings fail in Oracle
      8313: Fix for case where existing MLText entry is null
      8319: Follow-up fix for NPE where StringValue is null when persisting
      8331: Fix for AR-1696: Long text in an aspect property causes an exception


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8496 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2008-03-11 06:03:17 +00:00
parent 78c695fc0a
commit ceed05d26f
40 changed files with 1276 additions and 1445 deletions

View File

@@ -25,14 +25,13 @@
package org.alfresco.repo.attributes;
import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.alfresco.error.AlfrescoRuntimeException;
/**
* Value based implementation of a map attribute.
* @author britt
@@ -54,148 +53,67 @@ public class MapAttributeValue extends AttributeValue implements MapAttribute
fData = new HashMap<String, Attribute>();
for (Map.Entry<String, Attribute> entry : attr.entrySet())
{
String key = entry.getKey();
Attribute value = entry.getValue();
Attribute newAttr = null;
switch (value.getType())
{
case BOOLEAN :
{
newAttr = new BooleanAttributeValue((BooleanAttribute)value);
break;
}
case BYTE :
{
newAttr = new ByteAttributeValue((ByteAttribute)value);
break;
}
case SHORT :
{
newAttr = new ShortAttributeValue((ShortAttribute)value);
break;
}
case INT :
{
newAttr = new IntAttributeValue((IntAttribute)value);
break;
}
case LONG :
{
newAttr = new LongAttributeValue((LongAttribute)value);
break;
}
case FLOAT :
{
newAttr = new FloatAttributeValue((FloatAttribute)value);
break;
}
case DOUBLE :
{
newAttr = new DoubleAttributeValue((DoubleAttribute)value);
break;
}
case STRING :
{
newAttr = new StringAttributeValue((StringAttribute)value);
break;
}
case SERIALIZABLE :
{
newAttr = new SerializableAttributeValue((SerializableAttribute)value);
break;
}
case MAP :
{
newAttr = new MapAttributeValue((MapAttribute)value);
break;
}
case LIST :
{
newAttr = new ListAttributeValue((ListAttribute)value);
break;
}
default :
{
throw new AlfrescoRuntimeException("Unknown Attribute Type: " + value.getType());
}
}
fData.put(entry.getKey(), newAttr);
// Use the object's factory for AttributeValue
Attribute newAttr = value.getAttributeValue();
// Put it into the map
fData.put(key, newAttr);
}
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.Attribute#getType()
*/
public Type getType()
{
return Type.MAP;
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#clear()
*/
public Serializable getRawValue()
{
return (Serializable) fData;
}
@Override
public void clear()
{
fData.clear();
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#entrySet()
*/
@Override
public Set<Entry<String, Attribute>> entrySet()
{
return fData.entrySet();
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#get(java.lang.String)
*/
@Override
public Attribute get(String key)
{
return fData.get(key);
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#keySet()
*/
@Override
public Set<String> keySet()
{
return fData.keySet();
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#put(java.lang.String, org.alfresco.repo.attributes.Attribute)
*/
@Override
public void put(String key, Attribute value)
{
fData.put(key, value);
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#remove(java.lang.String)
*/
@Override
public void remove(String key)
{
fData.remove(key);
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#values()
*/
@Override
public Collection<Attribute> values()
{
return fData.values();
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
@@ -212,9 +130,6 @@ public class MapAttributeValue extends AttributeValue implements MapAttribute
return builder.toString();
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.AttributeValue#size()
*/
@Override
public int size()
{