stefan      2004/07/09 09:48:55

  Modified:    proposals/jcrri/src/org/apache/slide/jcr/core/state
                        NodeState.java
               proposals/jcrri/src/org/apache/slide/jcr/core/state/xml
                        XMLPersistenceManager.java
  Log:
  jcrri
  
  Revision  Changes    Path
  1.6       +22 -2     
jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/state/NodeState.java
  
  Index: NodeState.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/state/NodeState.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NodeState.java    7 Jul 2004 16:05:07 -0000       1.5
  +++ NodeState.java    9 Jul 2004 16:48:55 -0000       1.6
  @@ -56,6 +56,7 @@
   
       protected String uuid;
       protected QName nodeTypeName;
  +    protected Set mixinTypeNames = new HashSet();
       protected NodeDefId defId;
   
       // insertion-ordered collection of ChildNodeEntry objects
  @@ -72,6 +73,7 @@
       NodeState(NodeState overlayedState, int initialStatus) {
        super(overlayedState, initialStatus);
        nodeTypeName = overlayedState.getNodeTypeName();
  +     mixinTypeNames.addAll(overlayedState.getMixinTypeNames());
        defId = overlayedState.getDefinitionId();
        uuid = overlayedState.getUUID();
        parentUUIDs.addAll(overlayedState.getParentUUIDs());
  @@ -114,6 +116,24 @@
        */
       public QName getNodeTypeName() {
        return nodeTypeName;
  +    }
  +
  +    /**
  +     * Returns the names of this node's mixin types.
  +     *
  +     * @return a set of the names of this node's mixin types.
  +     */
  +    public synchronized Set getMixinTypeNames() {
  +     return Collections.unmodifiableSet(mixinTypeNames);
  +    }
  +
  +    /**
  +     * Sets the names of this node's mixin types.
  +     * @param names set of names of mixin types
  +     */
  +    public synchronized void setMixinTypeNames(Set names) {
  +     mixinTypeNames.clear();
  +     mixinTypeNames.addAll(names);
       }
   
       /**
  
  
  
  1.7       +28 -2     
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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XMLPersistenceManager.java        7 Jul 2004 16:03:43 -0000       1.6
  +++ XMLPersistenceManager.java        9 Jul 2004 16:48:55 -0000       1.7
  @@ -79,6 +79,9 @@
       private static final String PARENTS_ELEMENT = "parents";
       private static final String PARENT_ELEMENT = "parent";
   
  +    private static final String MIXINTYPES_ELEMENT = "mixinTypes";
  +    private static final String MIXINTYPE_ELEMENT = "mixinType";
  +
       private static final String PROPERTIES_ELEMENT = "properties";
       private static final String PROPERTY_ELEMENT = "property";
       private static final String NAME_ATTRIBUTE = "name";
  @@ -202,6 +205,20 @@
            state.setParentUUIDs(parentUUIDs);
        }
   
  +     // mixin types
  +     Element mixinsElement = nodeElement.getChild(MIXINTYPES_ELEMENT);
  +     if (mixinsElement != null) {
  +         iter = mixinsElement.getChildren(MIXINTYPE_ELEMENT).iterator();
  +         Set mixins = new HashSet();
  +         while (iter.hasNext()) {
  +             Element mixinElement = (Element) iter.next();
  +             
mixins.add(QName.valueOf(mixinElement.getAttributeValue(NAME_ATTRIBUTE)));
  +         }
  +         if (mixins.size() > 0) {
  +             state.setMixinTypeNames(mixins);
  +         }
  +     }
  +
        // property entries
        iter = 
nodeElement.getChild(PROPERTIES_ELEMENT).getChildren(PROPERTY_ELEMENT).iterator();
        while (iter.hasNext()) {
  @@ -600,6 +617,15 @@
                            UUID_ATTRIBUTE + "=\"" + iter.next() + "\"/>\n");
                }
                writer.write("\t</" + PARENTS_ELEMENT + ">\n");
  +
  +             // mixin types
  +             writer.write("\t<" + MIXINTYPES_ELEMENT + ">\n");
  +             iter = state.getMixinTypeNames().iterator();
  +             while (iter.hasNext()) {
  +                 writer.write("\t\t<" + MIXINTYPE_ELEMENT + " " +
  +                         NAME_ATTRIBUTE + "=\"" + iter.next() + "\"/>\n");
  +             }
  +             writer.write("\t</" + MIXINTYPES_ELEMENT + ">\n");
   
                // properties
                writer.write("\t<" + PROPERTIES_ELEMENT + ">\n");
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to