You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by st...@apache.org on 2004/07/07 18:03:43 UTC
cvs commit: jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/state/xml XMLPersistenceManager.java
stefan 2004/07/07 09:03:43
Modified: proposals/jcrri/src/org/apache/slide/jcr/core/state/xml
XMLPersistenceManager.java
Log:
jcrri
Revision Changes Path
1.6 +32 -4 jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/state/xml/XMLPersistenceManager.java
Index: XMLPersistenceManager.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/state/xml/XMLPersistenceManager.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XMLPersistenceManager.java 22 Jun 2004 18:02:33 -0000 1.5
+++ XMLPersistenceManager.java 7 Jul 2004 16:03:43 -0000 1.6
@@ -28,6 +28,8 @@
import org.apache.slide.jcr.core.InternalValue;
import org.apache.slide.jcr.core.QName;
import org.apache.slide.jcr.core.WorkspaceDef;
+import org.apache.slide.jcr.core.nodetype.NodeDefId;
+import org.apache.slide.jcr.core.nodetype.PropDefId;
import org.apache.slide.jcr.core.state.*;
import org.apache.slide.jcr.fs.FileSystem;
import org.apache.slide.jcr.fs.FileSystemException;
@@ -72,6 +74,7 @@
private static final String UUID_ATTRIBUTE = "uuid";
private static final String NODETYPE_ATTRIBUTE = "nodeType";
private static final String PARENTUUID_ATTRIBUTE = "parentUUID";
+ private static final String DEFINITIONID_ATTRIBUTE = "definitionId";
private static final String PARENTS_ELEMENT = "parents";
private static final String PARENT_ELEMENT = "parent";
@@ -182,6 +185,12 @@
state.setParentUUID(parentUUID);
}
+ // definition id
+ String definitionId = nodeElement.getAttributeValue(DEFINITIONID_ATTRIBUTE);
+ if (definitionId != null && definitionId.length() > 0) {
+ state.setDefinitionId(NodeDefId.valueOf(definitionId));
+ }
+
// parent uuid's
Iterator iter = nodeElement.getChild(PARENTS_ELEMENT).getChildren(PARENT_ELEMENT).iterator();
ArrayList parentUUIDs = new ArrayList();
@@ -247,6 +256,12 @@
}
state.setType(type);
+ // definition id
+ String definitionId = propElement.getAttributeValue(DEFINITIONID_ATTRIBUTE);
+ if (definitionId != null && definitionId.length() > 0) {
+ state.setDefinitionId(PropDefId.valueOf(definitionId));
+ }
+
// values
Iterator iter = propElement.getChild(VALUES_ELEMENT).getChildren(VALUE_ELEMENT).iterator();
ArrayList values = new ArrayList();
@@ -294,6 +309,11 @@
}
state.setType(type);
+ // definition id
+ if (props.containsKey(DEFINITIONID_ATTRIBUTE)) {
+ state.setDefinitionId(PropDefId.valueOf(props.getProperty(DEFINITIONID_ATTRIBUTE)));
+ }
+
// # of values
int cnt = Integer.parseInt(props.getProperty(COUNT_ATTRIBUTE));
@@ -302,7 +322,8 @@
Enumeration names = props.propertyNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
- if (name.equals(TYPE_ATTRIBUTE) || name.equals(COUNT_ATTRIBUTE)) {
+ if (TYPE_ATTRIBUTE.equals(name) || COUNT_ATTRIBUTE.equals(name) ||
+ DEFINITIONID_ATTRIBUTE.equals(name)) {
continue;
}
int i = Integer.parseInt(name);
@@ -569,6 +590,7 @@
writer.write("<" + NODE_ELEMENT + " " +
UUID_ATTRIBUTE + "=\"" + state.getUUID() + "\" " +
PARENTUUID_ATTRIBUTE + "=\"" + (state.getParentUUID() == null ? "" : state.getParentUUID()) + "\" " +
+ DEFINITIONID_ATTRIBUTE + "=\"" + (state.getDefinitionId() == null ? "" : state.getDefinitionId().toString()) + "\" " +
NODETYPE_ATTRIBUTE + "=\"" + state.getNodeTypeName() + "\">\n");
// parents
writer.write("\t<" + PARENTS_ELEMENT + ">\n");
@@ -586,7 +608,7 @@
NodeState.PropertyEntry entry = (NodeState.PropertyEntry) iter.next();
writer.write("\t\t<" + PROPERTY_ELEMENT + " " +
NAME_ATTRIBUTE + "=\"" + entry.getName() + "\">\n");
- // @todo serialize type and values
+ // @todo serialize type, definition id and values
writer.write("\t\t</" + PROPERTY_ELEMENT + ">\n");
}
writer.write("\t</" + PROPERTIES_ELEMENT + ">\n");
@@ -653,6 +675,7 @@
writer.write("<" + PROPERTY_ELEMENT + " " +
NAME_ATTRIBUTE + "=\"" + state.getName() + "\" " +
PARENTUUID_ATTRIBUTE + "=\"" + state.getParentUUID() + "\" " +
+ DEFINITIONID_ATTRIBUTE + "=\"" + (state.getDefinitionId() == null ? "" : state.getDefinitionId().toString()) + "\" " +
TYPE_ATTRIBUTE + "=\"" + typeName + "\">\n");
// values
writer.write("\t<" + VALUES_ELEMENT + ">\n");
@@ -732,6 +755,11 @@
throw new ItemStateException("unexpected property-type ordinal: " + type, iae);
}
props.setProperty(TYPE_ATTRIBUTE, typeName);
+
+ // definition id
+ if (state.getDefinitionId() != null) {
+ props.setProperty(DEFINITIONID_ATTRIBUTE, state.getDefinitionId().toString());
+ }
InternalValue[] values = state.getValues();
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org