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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to