Author: areshetnyak
Date: 2010-08-27 10:50:10 -0400 (Fri, 27 Aug 2010)
New Revision: 2999
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/DocumentViewImporter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/SystemViewImporter.java
Log:
EXOJCR-880 : Determine if property is multi or single value from nodetype definition in
import was implemented.
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/DocumentViewImporter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/DocumentViewImporter.java 2010-08-27
14:15:21 UTC (rev 2998)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/DocumentViewImporter.java 2010-08-27
14:50:10 UTC (rev 2999)
@@ -348,30 +348,32 @@
{
PropertyDefinitionDatas vhdefs = null;
-
- if
(nodeData.getQPath().isDescendantOf(Constants.JCR_VERSION_STORAGE_PATH))
+ if (defs.getAnyDefinition().isResidualSet())
{
- if (nodeData.getPrimaryTypeName().equals(Constants.NT_FROZENNODE))
+ if
(nodeData.getQPath().isDescendantOf(Constants.JCR_VERSION_STORAGE_PATH))
{
- // get primaryType
- InternalQName fptName =
locationFactory.parseJCRName(atts.get("jcr:frozenPrimaryType")).getInternalName();
-
- // get mixin types
- List<JCRName> mtNames =
getJCRNames(atts.get("jcr:frozenMixinTypes"));
-
- InternalQName fmtName[] = new InternalQName[mtNames.size()];
-
- for (int i = 0; i < mtNames.size(); i++)
+ if
(nodeData.getPrimaryTypeName().equals(Constants.NT_FROZENNODE))
{
- fmtName[i] = new InternalQName(mtNames.get(i).getNamespace(),
mtNames.get(i).getName());
+ // get primaryType
+ InternalQName fptName =
locationFactory.parseJCRName(atts.get("jcr:frozenPrimaryType")).getInternalName();
+
+ // get mixin types
+ List<JCRName> mtNames =
getJCRNames(atts.get("jcr:frozenMixinTypes"));
+
+ InternalQName fmtName[] = new InternalQName[mtNames.size()];
+
+ for (int i = 0; i < mtNames.size(); i++)
+ {
+ fmtName[i] = new
InternalQName(mtNames.get(i).getNamespace(), mtNames.get(i).getName());
+ }
+
+ vhdefs = nodeTypeDataManager.getPropertyDefinitions(propName,
fptName, fmtName);
+
+ if (vhdefs != null)
+ {
+ isMultivalue = (vhdefs.getDefinition(true) != null ? true :
false);
+ }
}
-
- vhdefs = nodeTypeDataManager.getPropertyDefinitions(propName,
fptName, fmtName);
-
- if (vhdefs != null)
- {
- isMultivalue = (vhdefs.getDefinition(true) != null ? true :
false);
- }
}
}
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/SystemViewImporter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/SystemViewImporter.java 2010-08-27
14:15:21 UTC (rev 2998)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/SystemViewImporter.java 2010-08-27
14:50:10 UTC (rev 2999)
@@ -339,16 +339,6 @@
*/
private void checkPropertis(NodePropertiesInfo currentNodePropertiesInfo) throws
RepositoryException
{
- currentNodePropertiesInfo.getNode();
- currentNodePropertiesInfo.getNode().getQPath();
-
currentNodePropertiesInfo.getNode().getQPath().isDescendantOf(Constants.JCR_VERSION_STORAGE_PATH);
-
- currentNodePropertiesInfo.getNode();
- currentNodePropertiesInfo.getNode().getPrimaryTypeName();
-
currentNodePropertiesInfo.getNode().getPrimaryTypeName().equals(Constants.NT_FROZENNODE);
-
-
-
if
(currentNodePropertiesInfo.getNode().getQPath().isDescendantOf(Constants.JCR_VERSION_STORAGE_PATH)
&&
currentNodePropertiesInfo.getNode().getPrimaryTypeName().equals(Constants.NT_FROZENNODE))
{
@@ -391,17 +381,25 @@
{
throw new RepositoryException(e.getMessage(), e);
}
+
+ InternalQName nodePrimaryTypeName =
currentNodePropertiesInfo.getNode().getPrimaryTypeName();
+ InternalQName[] nodeMixinTypeName =
currentNodePropertiesInfo.getNode().getMixinTypeNames();
for (ImportPropertyData propertyData :
currentNodePropertiesInfo.getProperties())
{
- PropertyDefinitionDatas vhdefs =
- nodeTypeDataManager.getPropertyDefinitions(propertyData.getQName(),
fptName, fmtNames
- .toArray(new InternalQName[fmtNames.size()]));
-
- if (vhdefs != null)
+ PropertyDefinitionDatas defs =
nodeTypeDataManager.getPropertyDefinitions(propertyData.getQName(), nodePrimaryTypeName,
nodeMixinTypeName);
+
+ if (defs == null || (defs != null &&
defs.getAnyDefinition().isResidualSet()))
{
- boolean isMultivalue = (vhdefs.getDefinition(true) != null ? true :
false);
- propertyData.setMultivalue(isMultivalue);
+ PropertyDefinitionDatas vhdefs =
+
nodeTypeDataManager.getPropertyDefinitions(propertyData.getQName(), fptName, fmtNames
+ .toArray(new InternalQName[fmtNames.size()]));
+
+ if (vhdefs != null)
+ {
+ boolean isMultivalue = (vhdefs.getDefinition(true) != null ? true :
false);
+ propertyData.setMultivalue(isMultivalue);
+ }
}
}
}
Show replies by date