Merged up to HEAD.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3129 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Britt Park
2006-06-16 19:18:30 +00:00
parent 676f9d3ea4
commit c01717a0e7
15 changed files with 417 additions and 195 deletions

View File

@@ -91,22 +91,6 @@
deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory" deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Cardinality"
type="java:org.alfresco.repo.webservice.types.Cardinality"
serializer="org.apache.axis.encoding.ser.EnumSerializerFactory"
deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:ClassDefinition"
type="java:org.alfresco.repo.webservice.types.ClassDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0" xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:Rule" qname="ns:Rule"
@@ -133,8 +117,8 @@
/> />
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Version" qname="ns:Predicate"
type="java:org.alfresco.repo.webservice.types.Version" type="java:org.alfresco.repo.webservice.types.Predicate"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="" encodingStyle=""
@@ -149,16 +133,128 @@
/> />
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Predicate" qname="ns:NodeDefinition"
type="java:org.alfresco.repo.webservice.types.Predicate" type="java:org.alfresco.repo.webservice.types.NodeDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:ResultSetRow" qname="ns:ValueDefinition"
type="java:org.alfresco.repo.webservice.types.ResultSetRow" type="java:org.alfresco.repo.webservice.types.ValueDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Category"
type="java:org.alfresco.repo.webservice.types.Category"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:ActionFault"
type="java:org.alfresco.repo.webservice.action.ActionFault"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Reference"
type="java:org.alfresco.repo.webservice.types.Reference"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:NamedValue"
type="java:org.alfresco.repo.webservice.types.NamedValue"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:UUID"
type="java:java.lang.String"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:>ResultSetRow>node"
type="java:org.alfresco.repo.webservice.types.ResultSetRowNode"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Classification"
type="java:org.alfresco.repo.webservice.types.Classification"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:ActionFilter"
type="java:org.alfresco.repo.webservice.action.ActionFilter"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Store"
type="java:org.alfresco.repo.webservice.types.Store"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:>Store>address"
type="java:java.lang.String"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:PropertyDefinition"
type="java:org.alfresco.repo.webservice.types.PropertyDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:ClassDefinition"
type="java:org.alfresco.repo.webservice.types.ClassDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Cardinality"
type="java:org.alfresco.repo.webservice.types.Cardinality"
serializer="org.apache.axis.encoding.ser.EnumSerializerFactory"
deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Version"
type="java:org.alfresco.repo.webservice.types.Version"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="" encodingStyle=""
@@ -171,6 +267,14 @@
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:ResultSetRow"
type="java:org.alfresco.repo.webservice.types.ResultSetRow"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:ResultSet" qname="ns:ResultSet"
@@ -195,38 +299,6 @@
deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory" deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:NodeDefinition"
type="java:org.alfresco.repo.webservice.types.NodeDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Category"
type="java:org.alfresco.repo.webservice.types.Category"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:ValueDefinition"
type="java:org.alfresco.repo.webservice.types.ValueDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:ActionFault"
type="java:org.alfresco.repo.webservice.action.ActionFault"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0" xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:RuleFilter" qname="ns:RuleFilter"
@@ -267,30 +339,6 @@
deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory" deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Reference"
type="java:org.alfresco.repo.webservice.types.Reference"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:UUID"
type="java:java.lang.String"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:NamedValue"
type="java:org.alfresco.repo.webservice.types.NamedValue"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0" xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:Action" qname="ns:Action"
@@ -307,14 +355,6 @@
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:>ResultSetRow>node"
type="java:org.alfresco.repo.webservice.types.ResultSetRowNode"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:>ContentFormat>encoding" qname="ns:>ContentFormat>encoding"
@@ -331,38 +371,6 @@
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Classification"
type="java:org.alfresco.repo.webservice.types.Classification"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:ActionFilter"
type="java:org.alfresco.repo.webservice.action.ActionFilter"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Store"
type="java:org.alfresco.repo.webservice.types.Store"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:>Store>address"
type="java:java.lang.String"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
/>
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:AssociationDefinition" qname="ns:AssociationDefinition"
@@ -371,14 +379,6 @@
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="" encodingStyle=""
/> />
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:RoleDefinition"
type="java:org.alfresco.repo.webservice.types.RoleDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/service/action/1.0" xmlns:ns="http://www.alfresco.org/ws/service/action/1.0"
qname="ns:ActionExecutionResult" qname="ns:ActionExecutionResult"
@@ -389,8 +389,8 @@
/> />
<typeMapping <typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:PropertyDefinition" qname="ns:RoleDefinition"
type="java:org.alfresco.repo.webservice.types.PropertyDefinition" type="java:org.alfresco.repo.webservice.types.RoleDefinition"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="" encodingStyle=""

View File

@@ -10,16 +10,24 @@ package org.alfresco.repo.webservice.types;
public class NamedValue implements java.io.Serializable { public class NamedValue implements java.io.Serializable {
private java.lang.String name; private java.lang.String name;
private java.lang.Boolean isMultiValue;
private java.lang.String value; private java.lang.String value;
private java.lang.String[] values;
public NamedValue() { public NamedValue() {
} }
public NamedValue( public NamedValue(
java.lang.String name, java.lang.String name,
java.lang.String value) { java.lang.Boolean isMultiValue,
java.lang.String value,
java.lang.String[] values) {
this.name = name; this.name = name;
this.isMultiValue = isMultiValue;
this.value = value; this.value = value;
this.values = values;
} }
@@ -43,6 +51,26 @@ public class NamedValue implements java.io.Serializable {
} }
/**
* Gets the isMultiValue value for this NamedValue.
*
* @return isMultiValue
*/
public java.lang.Boolean getIsMultiValue() {
return isMultiValue;
}
/**
* Sets the isMultiValue value for this NamedValue.
*
* @param isMultiValue
*/
public void setIsMultiValue(java.lang.Boolean isMultiValue) {
this.isMultiValue = isMultiValue;
}
/** /**
* Gets the value value for this NamedValue. * Gets the value value for this NamedValue.
* *
@@ -62,6 +90,34 @@ public class NamedValue implements java.io.Serializable {
this.value = value; this.value = value;
} }
/**
* Gets the values value for this NamedValue.
*
* @return values
*/
public java.lang.String[] getValues() {
return values;
}
/**
* Sets the values value for this NamedValue.
*
* @param values
*/
public void setValues(java.lang.String[] values) {
this.values = values;
}
public java.lang.String getValues(int i) {
return this.values[i];
}
public void setValues(int i, java.lang.String _value) {
this.values[i] = _value;
}
private java.lang.Object __equalsCalc = null; private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) { public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof NamedValue)) return false; if (!(obj instanceof NamedValue)) return false;
@@ -77,9 +133,15 @@ public class NamedValue implements java.io.Serializable {
((this.name==null && other.getName()==null) || ((this.name==null && other.getName()==null) ||
(this.name!=null && (this.name!=null &&
this.name.equals(other.getName()))) && this.name.equals(other.getName()))) &&
((this.isMultiValue==null && other.getIsMultiValue()==null) ||
(this.isMultiValue!=null &&
this.isMultiValue.equals(other.getIsMultiValue()))) &&
((this.value==null && other.getValue()==null) || ((this.value==null && other.getValue()==null) ||
(this.value!=null && (this.value!=null &&
this.value.equals(other.getValue()))); this.value.equals(other.getValue()))) &&
((this.values==null && other.getValues()==null) ||
(this.values!=null &&
java.util.Arrays.equals(this.values, other.getValues())));
__equalsCalc = null; __equalsCalc = null;
return _equals; return _equals;
} }
@@ -94,9 +156,23 @@ public class NamedValue implements java.io.Serializable {
if (getName() != null) { if (getName() != null) {
_hashCode += getName().hashCode(); _hashCode += getName().hashCode();
} }
if (getIsMultiValue() != null) {
_hashCode += getIsMultiValue().hashCode();
}
if (getValue() != null) { if (getValue() != null) {
_hashCode += getValue().hashCode(); _hashCode += getValue().hashCode();
} }
if (getValues() != null) {
for (int i=0;
i<java.lang.reflect.Array.getLength(getValues());
i++) {
java.lang.Object obj = java.lang.reflect.Array.get(getValues(), i);
if (obj != null &&
!obj.getClass().isArray()) {
_hashCode += obj.hashCode();
}
}
}
__hashCodeCalc = false; __hashCodeCalc = false;
return _hashCode; return _hashCode;
} }
@@ -114,11 +190,25 @@ public class NamedValue implements java.io.Serializable {
elemField.setNillable(false); elemField.setNillable(false);
typeDesc.addFieldDesc(elemField); typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc(); elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("isMultiValue");
elemField.setXmlName(new javax.xml.namespace.QName("http://www.alfresco.org/ws/model/content/1.0", "isMultiValue"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
elemField.setNillable(true);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("value"); elemField.setFieldName("value");
elemField.setXmlName(new javax.xml.namespace.QName("http://www.alfresco.org/ws/model/content/1.0", "value")); elemField.setXmlName(new javax.xml.namespace.QName("http://www.alfresco.org/ws/model/content/1.0", "value"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setNillable(true); elemField.setNillable(true);
typeDesc.addFieldDesc(elemField); typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("values");
elemField.setXmlName(new javax.xml.namespace.QName("http://www.alfresco.org/ws/model/content/1.0", "values"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
elemField.setMaxOccursUnbounded(true);
typeDesc.addFieldDesc(elemField);
} }
/** /**

View File

@@ -39,6 +39,7 @@ import org.alfresco.repo.webservice.types.NamedValue;
import org.alfresco.repo.webservice.types.ParentReference; import org.alfresco.repo.webservice.types.ParentReference;
import org.alfresco.repo.webservice.types.Predicate; import org.alfresco.repo.webservice.types.Predicate;
import org.alfresco.repo.webservice.types.Reference; import org.alfresco.repo.webservice.types.Reference;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.CopyService; import org.alfresco.service.cmr.repository.CopyService;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
@@ -68,6 +69,7 @@ public class CMLUtil
private SearchService searchService; private SearchService searchService;
private NamespaceService namespaceService; private NamespaceService namespaceService;
private CopyService copyService; private CopyService copyService;
private DictionaryService dictionaryService;
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
{ {
@@ -89,6 +91,11 @@ public class CMLUtil
this.copyService = copyService; this.copyService = copyService;
} }
public void setDictionaryService(DictionaryService dictionaryService)
{
this.dictionaryService = dictionaryService;
}
/** /**
* Execute a cml update query. * Execute a cml update query.
* *
@@ -249,6 +256,12 @@ public class CMLUtil
results.add(createResult(CREATE, null, nodeRef)); results.add(createResult(CREATE, null, nodeRef));
} }
/**
* Get a property map from the named value array that can be used when setting properties
*
* @param namedValues a array of named value properties
* @return a property map of vlaues
*/
private PropertyMap getPropertyMap(NamedValue[] namedValues) private PropertyMap getPropertyMap(NamedValue[] namedValues)
{ {
PropertyMap properties = new PropertyMap(); PropertyMap properties = new PropertyMap();
@@ -257,7 +270,8 @@ public class CMLUtil
for (NamedValue value : namedValues) for (NamedValue value : namedValues)
{ {
QName qname = QName.createQName(value.getName()); QName qname = QName.createQName(value.getName());
properties.put(qname, value.getValue()); Serializable propValue = Utils.getValueFromNamedValue(this.dictionaryService, qname, value);
properties.put(qname, propValue);
} }
} }
return properties; return properties;

View File

@@ -192,8 +192,8 @@ public class CMLUtilTest extends BaseSpringTest
update.setWhere(createPredicate(this.nodeRef)); update.setWhere(createPredicate(this.nodeRef));
update.setProperty(new NamedValue[] update.setProperty(new NamedValue[]
{ {
new NamedValue(ContentModel.PROP_NAME.toString(), "updatedName"), new NamedValue(ContentModel.PROP_NAME.toString(), false, "updatedName", null),
new NamedValue(ContentModel.PROP_CONTENT.toString(), CONTENT_DATA_HTML_UTF16.toString()) new NamedValue(ContentModel.PROP_CONTENT.toString(), false, CONTENT_DATA_HTML_UTF16.toString(), null)
}); });
CML cml = new CML(); CML cml = new CML();
@@ -441,8 +441,8 @@ public class CMLUtilTest extends BaseSpringTest
{ {
return new NamedValue[] return new NamedValue[]
{ {
new NamedValue(ContentModel.PROP_NAME.toString(), "name"), new NamedValue(ContentModel.PROP_NAME.toString(), false, "name", null),
new NamedValue(ContentModel.PROP_CONTENT.toString(), CONTENT_DATA_TEXT_UTF8.toString()) new NamedValue(ContentModel.PROP_CONTENT.toString(), false, CONTENT_DATA_TEXT_UTF8.toString(), null)
}; };
} }
} }

View File

@@ -19,6 +19,7 @@ package org.alfresco.repo.webservice;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -43,6 +44,8 @@ import org.alfresco.repo.webservice.types.Store;
import org.alfresco.repo.webservice.types.StoreEnum; import org.alfresco.repo.webservice.types.StoreEnum;
import org.alfresco.repo.webservice.types.Version; import org.alfresco.repo.webservice.types.Version;
import org.alfresco.service.ServiceRegistry; import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
@@ -76,6 +79,139 @@ public class Utils
{ {
// don't allow construction // don't allow construction
} }
/**
* Utility method to convert from a string representation of a property value into the correct object representation.
*
* @param dictionaryService the dictionary service
* @param propertyName the qname of the property in question
* @param propertyValue the property vlaue as a string
* @return the object value of the property
*/
public static Serializable getValueFromNamedValue(DictionaryService dictionaryService, QName propertyName, NamedValue namedValue)
{
Serializable result = null;
org.alfresco.service.cmr.dictionary.PropertyDefinition propDef = dictionaryService.getProperty(propertyName);
if (propDef != null)
{
DataTypeDefinition propertyType = propDef.getDataType();
if (propertyType != null)
{
if (namedValue == null || namedValue.getIsMultiValue() == false)
{
if (logger.isDebugEnabled() == true)
{
logger.debug("Converting single-valued property '" + propertyName.toString() + "' with value " + namedValue.getValue());
}
result = (Serializable)DefaultTypeConverter.INSTANCE.convert(propertyType, namedValue.getValue());
}
else
{
String[] values = namedValue.getValues();
if (logger.isDebugEnabled() == true)
{
logger.debug("Converting multi-valued property '" + propertyName.toString() + "' with values " + values.toString());
}
if (values != null)
{
Collection<Serializable> collection = new ArrayList<Serializable>(values.length);
for (String value : values)
{
collection.add((Serializable)DefaultTypeConverter.INSTANCE.convert(propertyType, value));
}
if (logger.isDebugEnabled() == true)
{
logger.debug("The collection for the multi-value property has been generated '" + collection.toString());
}
result = (Serializable)collection;
}
}
}
else
{
if (logger.isDebugEnabled() == true)
{
logger.debug("No property definition was found for property '" + propertyName.toString() + "'");
}
}
}
return result;
}
/**
* Create a named value object from the property name and value informaiton
*
* @param dictionaryService the dictionary service
* @param propertyName the property qname
* @param propertyValue the property value
* @return the namedValue object
*/
public static NamedValue createNamedValue(DictionaryService dictionaryService, QName propertyName, Serializable propertyValue)
{
NamedValue namedValue = new NamedValue();
namedValue.setName(propertyName.toString());
if (logger.isDebugEnabled() == true)
{
logger.debug("Creating named value for property '" + propertyName + "' with value '" + propertyValue + "'");
}
if (propertyValue != null)
{
org.alfresco.service.cmr.dictionary.PropertyDefinition propDef = dictionaryService.getProperty(propertyName);
if (propDef != null)
{
if (propDef.isMultiValued() == true)
{
namedValue.setIsMultiValue(true);
if (propertyValue instanceof Collection)
{
if (logger.isDebugEnabled() == true)
{
logger.debug("Converting multivalue for property '" + propertyName + "'");
}
Collection<Serializable> collection = (Collection<Serializable>)propertyValue;
String[] values = new String[collection.size()];
int count = 0;
for (Serializable value : collection)
{
values[count] = DefaultTypeConverter.INSTANCE.convert(String.class, value);
count ++;
}
namedValue.setValues(values);
}
}
else
{
if (logger.isDebugEnabled() == true)
{
logger.debug("Converting single value for property '" + propertyName + "'");
}
namedValue.setIsMultiValue(false);
namedValue.setValue(DefaultTypeConverter.INSTANCE.convert(String.class, propertyValue));
}
}
else
{
if (logger.isDebugEnabled() == true)
{
logger.debug("No property definition found for property '" + propertyName + "'");
}
namedValue.setIsMultiValue(false);
namedValue.setValue(propertyValue.toString());
}
}
return namedValue;
}
/** /**
* Converts the web service Store type to a StoreRef used by the repository * Converts the web service Store type to a StoreRef used by the repository
@@ -437,7 +573,7 @@ public class Utils
{ {
value = entry.getValue().toString(); value = entry.getValue().toString();
} }
namedValues[iIndex] = new NamedValue(entry.getKey(), value); namedValues[iIndex] = new NamedValue(entry.getKey(), false, value, null);
iIndex++; iIndex++;
} }
webServiceVersion.setCommentaries(namedValues); webServiceVersion.setCommentaries(namedValues);

View File

@@ -530,7 +530,11 @@ public class ActionWebService extends AbstractWebService implements ActionServic
{ {
value = entry.getValue().toString(); value = entry.getValue().toString();
} }
namedValues[index] = new NamedValue(entry.getKey(), value); NamedValue namedValue = new NamedValue();
namedValue.setName(entry.getKey());
namedValue.setIsMultiValue(false);
namedValue.setValue(value);
namedValues[index] = namedValue;
index++; index++;
} }
} }

View File

@@ -34,7 +34,6 @@ import org.alfresco.repo.transaction.TransactionUtil.TransactionWork;
import org.alfresco.repo.webservice.AbstractWebService; import org.alfresco.repo.webservice.AbstractWebService;
import org.alfresco.repo.webservice.Utils; import org.alfresco.repo.webservice.Utils;
import org.alfresco.repo.webservice.action.ActionFault; import org.alfresco.repo.webservice.action.ActionFault;
import org.alfresco.repo.webservice.repository.QuerySession;
import org.alfresco.repo.webservice.types.NamedValue; import org.alfresco.repo.webservice.types.NamedValue;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
@@ -305,7 +304,11 @@ public class AdministrationWebService extends AbstractWebService implements
{ {
value = entry.getValue().toString(); value = entry.getValue().toString();
} }
namedValues.add(new NamedValue(entry.getKey().toString(), value)); NamedValue namedValue = new NamedValue();
namedValue.setName(entry.getKey().toString());
namedValue.setIsMultiValue(false);
namedValue.setValue(value);
namedValues.add(namedValue);
} }
} }
userDetails.setProperties((NamedValue[])namedValues.toArray(new NamedValue[namedValues.size()])); userDetails.setProperties((NamedValue[])namedValues.toArray(new NamedValue[namedValues.size()]));

View File

@@ -25,6 +25,7 @@ import org.alfresco.repo.webservice.types.NamedValue;
import org.alfresco.repo.webservice.types.Reference; import org.alfresco.repo.webservice.types.Reference;
import org.alfresco.repo.webservice.types.ResultSetRow; import org.alfresco.repo.webservice.types.ResultSetRow;
import org.alfresco.repo.webservice.types.ResultSetRowNode; import org.alfresco.repo.webservice.types.ResultSetRowNode;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.AssociationRef; import org.alfresco.service.cmr.repository.AssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
@@ -71,7 +72,7 @@ public class AssociatedQuerySession extends AbstractQuerySession
* org.alfresco.service.namespace.NamespaceService) * org.alfresco.service.namespace.NamespaceService)
*/ */
public QueryResult getNextResultsBatch(SearchService searchService, public QueryResult getNextResultsBatch(SearchService searchService,
NodeService nodeService, NamespaceService namespaceService) NodeService nodeService, NamespaceService namespaceService, DictionaryService dictionaryService)
{ {
QueryResult queryResult = null; QueryResult queryResult = null;
@@ -114,13 +115,7 @@ public class AssociatedQuerySession extends AbstractQuerySession
int col = 0; int col = 0;
for (QName propName : props.keySet()) for (QName propName : props.keySet())
{ {
String value = null; columns[col] = Utils.createNamedValue(dictionaryService, propName, props.get(propName));
Serializable valueObj = props.get(propName);
if (valueObj != null)
{
value = valueObj.toString();
}
columns[col] = new NamedValue(propName.toString(), value);
col++; col++;
} }

View File

@@ -25,6 +25,7 @@ import org.alfresco.repo.webservice.types.NamedValue;
import org.alfresco.repo.webservice.types.Reference; import org.alfresco.repo.webservice.types.Reference;
import org.alfresco.repo.webservice.types.ResultSetRow; import org.alfresco.repo.webservice.types.ResultSetRow;
import org.alfresco.repo.webservice.types.ResultSetRowNode; import org.alfresco.repo.webservice.types.ResultSetRowNode;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
@@ -63,7 +64,7 @@ public class ChildrenQuerySession extends AbstractQuerySession
/** /**
* @see org.alfresco.repo.webservice.repository.QuerySession#getNextResultsBatch(org.alfresco.service.cmr.search.SearchService, org.alfresco.service.cmr.repository.NodeService, org.alfresco.service.namespace.NamespaceService) * @see org.alfresco.repo.webservice.repository.QuerySession#getNextResultsBatch(org.alfresco.service.cmr.search.SearchService, org.alfresco.service.cmr.repository.NodeService, org.alfresco.service.namespace.NamespaceService)
*/ */
public QueryResult getNextResultsBatch(SearchService searchService, NodeService nodeService, NamespaceService namespaceService) public QueryResult getNextResultsBatch(SearchService searchService, NodeService nodeService, NamespaceService namespaceService, DictionaryService dictionaryService)
{ {
QueryResult queryResult = null; QueryResult queryResult = null;
@@ -100,13 +101,7 @@ public class ChildrenQuerySession extends AbstractQuerySession
int col = 0; int col = 0;
for (QName propName : props.keySet()) for (QName propName : props.keySet())
{ {
String value = null; columns[col] = Utils.createNamedValue(dictionaryService, propName, props.get(propName));
Serializable valueObj = props.get(propName);
if (valueObj != null)
{
value = valueObj.toString();
}
columns[col] = new NamedValue(propName.toString(), value);
col++; col++;
} }

View File

@@ -25,6 +25,7 @@ import org.alfresco.repo.webservice.types.NamedValue;
import org.alfresco.repo.webservice.types.Reference; import org.alfresco.repo.webservice.types.Reference;
import org.alfresco.repo.webservice.types.ResultSetRow; import org.alfresco.repo.webservice.types.ResultSetRow;
import org.alfresco.repo.webservice.types.ResultSetRowNode; import org.alfresco.repo.webservice.types.ResultSetRowNode;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
@@ -63,7 +64,7 @@ public class ParentsQuerySession extends AbstractQuerySession
/** /**
* @see org.alfresco.repo.webservice.repository.QuerySession#getNextResultsBatch(org.alfresco.service.cmr.search.SearchService, org.alfresco.service.cmr.repository.NodeService, org.alfresco.service.namespace.NamespaceService) * @see org.alfresco.repo.webservice.repository.QuerySession#getNextResultsBatch(org.alfresco.service.cmr.search.SearchService, org.alfresco.service.cmr.repository.NodeService, org.alfresco.service.namespace.NamespaceService)
*/ */
public QueryResult getNextResultsBatch(SearchService searchService, NodeService nodeService, NamespaceService namespaceService) public QueryResult getNextResultsBatch(SearchService searchService, NodeService nodeService, NamespaceService namespaceService, DictionaryService dictionaryService)
{ {
QueryResult queryResult = null; QueryResult queryResult = null;
@@ -100,13 +101,7 @@ public class ParentsQuerySession extends AbstractQuerySession
int col = 0; int col = 0;
for (QName propName : props.keySet()) for (QName propName : props.keySet())
{ {
String value = null; columns[col] = Utils.createNamedValue(dictionaryService, propName, props.get(propName));
Serializable valueObj = props.get(propName);
if (valueObj != null)
{
value = valueObj.toString();
}
columns[col] = new NamedValue(propName.toString(), value);
col++; col++;
} }

View File

@@ -18,6 +18,7 @@ package org.alfresco.repo.webservice.repository;
import java.io.Serializable; import java.io.Serializable;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
@@ -51,6 +52,9 @@ public interface QuerySession extends Serializable
* @return QueryResult containing the next batch of results or null if there * @return QueryResult containing the next batch of results or null if there
* are no more results * are no more results
*/ */
public QueryResult getNextResultsBatch(SearchService searchService, NodeService nodeService, public QueryResult getNextResultsBatch(
NamespaceService namespaceService); SearchService searchService,
NodeService nodeService,
NamespaceService namespaceService,
DictionaryService dictionaryService);
} }

View File

@@ -44,7 +44,6 @@ import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.TypeDefinition; import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.apache.axis.MessageContext; import org.apache.axis.MessageContext;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@@ -199,7 +198,7 @@ public class RepositoryWebService extends AbstractWebService implements
.getBatchSize(msgContext), store, query, includeMetaData); .getBatchSize(msgContext), store, query, includeMetaData);
QueryResult queryResult = querySession QueryResult queryResult = querySession
.getNextResultsBatch(this.searchService, this.nodeService, .getNextResultsBatch(this.searchService, this.nodeService,
this.namespaceService); this.namespaceService, this.dictionaryService);
// add the session to the cache if there are more results to come // add the session to the cache if there are more results to come
if (queryResult.getQuerySession() != null) if (queryResult.getQuerySession() != null)
@@ -255,7 +254,7 @@ public class RepositoryWebService extends AbstractWebService implements
.getBatchSize(MessageContext.getCurrentContext()), node); .getBatchSize(MessageContext.getCurrentContext()), node);
QueryResult queryResult = querySession QueryResult queryResult = querySession
.getNextResultsBatch(this.searchService, this.nodeService, .getNextResultsBatch(this.searchService, this.nodeService,
this.namespaceService); this.namespaceService, this.dictionaryService);
// add the session to the cache if there are more results to come // add the session to the cache if there are more results to come
if (queryResult.getQuerySession() != null) if (queryResult.getQuerySession() != null)
@@ -314,7 +313,7 @@ public class RepositoryWebService extends AbstractWebService implements
.getBatchSize(MessageContext.getCurrentContext()), node); .getBatchSize(MessageContext.getCurrentContext()), node);
QueryResult queryResult = querySession QueryResult queryResult = querySession
.getNextResultsBatch(this.searchService, this.nodeService, .getNextResultsBatch(this.searchService, this.nodeService,
this.namespaceService); this.namespaceService, this.dictionaryService);
// add the session to the cache if there are more results to come // add the session to the cache if there are more results to come
if (queryResult.getQuerySession() != null) if (queryResult.getQuerySession() != null)
@@ -368,7 +367,7 @@ public class RepositoryWebService extends AbstractWebService implements
QuerySession querySession = new AssociatedQuerySession(Utils.getBatchSize(MessageContext.getCurrentContext()), node); QuerySession querySession = new AssociatedQuerySession(Utils.getBatchSize(MessageContext.getCurrentContext()), node);
QueryResult queryResult = querySession QueryResult queryResult = querySession
.getNextResultsBatch(this.searchService, this.nodeService, .getNextResultsBatch(this.searchService, this.nodeService,
this.namespaceService); this.namespaceService, this.dictionaryService);
// add the session to the cache if there are more results to come // add the session to the cache if there are more results to come
if (queryResult.getQuerySession() != null) if (queryResult.getQuerySession() != null)
@@ -435,7 +434,7 @@ public class RepositoryWebService extends AbstractWebService implements
// get the next batch of results // get the next batch of results
queryResult = session.getNextResultsBatch(this.searchService, queryResult = session.getNextResultsBatch(this.searchService,
this.nodeService, this.namespaceService); this.nodeService, this.namespaceService, this.dictionaryService);
// remove the QuerySession from the cache if there are no more // remove the QuerySession from the cache if there are no more
// results to come // results to come
@@ -647,17 +646,8 @@ public class RepositoryWebService extends AbstractWebService implements
NamedValue[] properties = new NamedValue[propertyMap.size()]; NamedValue[] properties = new NamedValue[propertyMap.size()];
int propertyIndex = 0; int propertyIndex = 0;
for (Map.Entry<QName, Serializable> entry : propertyMap.entrySet()) for (Map.Entry<QName, Serializable> entry : propertyMap.entrySet())
{ {
String value = null; properties[propertyIndex] = Utils.createNamedValue(this.dictionaryService, entry.getKey(), entry.getValue());
try
{
value = DefaultTypeConverter.INSTANCE.convert(String.class, entry.getValue());
}
catch (Throwable exception)
{
value = entry.getValue().toString();
}
properties[propertyIndex] = new NamedValue(entry.getKey().toString(), value);
propertyIndex++; propertyIndex++;
} }

View File

@@ -24,14 +24,15 @@ import org.alfresco.repo.webservice.types.NamedValue;
import org.alfresco.repo.webservice.types.Query; import org.alfresco.repo.webservice.types.Query;
import org.alfresco.repo.webservice.types.ResultSetRowNode; import org.alfresco.repo.webservice.types.ResultSetRowNode;
import org.alfresco.repo.webservice.types.Store; import org.alfresco.repo.webservice.types.Store;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.cmr.search.ResultSetRow;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@@ -70,7 +71,7 @@ public class ResultSetQuerySession extends AbstractQuerySession
/** /**
* @see org.alfresco.repo.webservice.repository.QuerySession#getNextResultsBatch(org.alfresco.service.cmr.search.SearchService, org.alfresco.service.cmr.repository.NodeService, org.alfresco.service.namespace.NamespaceService) * @see org.alfresco.repo.webservice.repository.QuerySession#getNextResultsBatch(org.alfresco.service.cmr.search.SearchService, org.alfresco.service.cmr.repository.NodeService, org.alfresco.service.namespace.NamespaceService)
*/ */
public QueryResult getNextResultsBatch(SearchService searchService, NodeService nodeService, NamespaceService namespaceService) public QueryResult getNextResultsBatch(SearchService searchService, NodeService nodeService, NamespaceService namespaceService, DictionaryService dictionaryService)
{ {
QueryResult queryResult = null; QueryResult queryResult = null;
@@ -114,16 +115,6 @@ public class ResultSetQuerySession extends AbstractQuerySession
int col = 0; int col = 0;
for (Path path : values.keySet()) for (Path path : values.keySet())
{ {
String value = null;
try
{
value = DefaultTypeConverter.INSTANCE.convert(String.class, values.get(path));
}
catch (Throwable exception)
{
value = values.get(path).toString();
}
// Get the attribute QName from the result path // Get the attribute QName from the result path
String attributeName = path.last().toString(); String attributeName = path.last().toString();
if (attributeName.startsWith("@") == true) if (attributeName.startsWith("@") == true)
@@ -131,7 +122,7 @@ public class ResultSetQuerySession extends AbstractQuerySession
attributeName = attributeName.substring(1); attributeName = attributeName.substring(1);
} }
columns[col] = new NamedValue(attributeName, value); columns[col] = Utils.createNamedValue(dictionaryService, QName.createQName(attributeName), values.get(path)); //new NamedValue(attributeName, value);
col++; col++;
} }

View File

@@ -46,6 +46,9 @@
<property name="copyService"> <property name="copyService">
<ref bean="CopyService"/> <ref bean="CopyService"/>
</property> </property>
<property name="dictionaryService">
<ref bean="DictionaryService"/>
</property>
</bean> </bean>
<!-- Implementations of each exposed web service --> <!-- Implementations of each exposed web service -->

View File

@@ -208,7 +208,9 @@
<xsd:complexType name="NamedValue"> <xsd:complexType name="NamedValue">
<xsd:sequence> <xsd:sequence>
<xsd:element name="name" type="cms:Name"></xsd:element> <xsd:element name="name" type="cms:Name"></xsd:element>
<xsd:element name="isMultiValue" type="xsd:boolean" nillable="true"></xsd:element>
<xsd:element name="value" type="xsd:string" nillable="true"></xsd:element> <xsd:element name="value" type="xsd:string" nillable="true"></xsd:element>
<xsd:element name="values" type="xsd:string" nullable="true" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence> </xsd:sequence>
</xsd:complexType> </xsd:complexType>