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