Package org.apache.slide.content

Examples of org.apache.slide.content.NodeRevisionDescriptor


     * @param    liveOnly              only live properties
     * @return   a RequestedProperties
     * @throws   SlideException
     */
    public RequestedProperties getAllPropertyNames(String resourcePath, boolean liveOnly) throws SlideException {
        NodeRevisionDescriptor nrd =
            content.retrieve(sToken, content.retrieve(sToken, resourcePath));
        ResourceKind resourceKind = AbstractResourceKind.determineResourceKind(nsaToken, resourcePath, nrd);
        RequestedPropertiesImpl result = (RequestedPropertiesImpl)getAllPropertyNames(resourceKind);
       
        if (!liveOnly) {
            // add this resource's dead properties
            Enumeration props = nrd.enumerateProperties();
            while (props.hasMoreElements()) {
                NodeProperty np = (NodeProperty)props.nextElement();
                if (!result.contains(np)) {
                    result.addProperty(new RequestedPropertyImpl(np.getName(), np.getNamespace()));
                }
View Full Code Here


            checkPreconditions();
            lock.unlock(slideToken, requestUri, lockId);
           
            NodeRevisionDescriptors revisionDescriptors =
                content.retrieve(slideToken, requestUri);
            NodeRevisionDescriptor revisionDescriptor =
                content.retrieve(slideToken, revisionDescriptors);
           
            // Check if resource must be checked in due to auto-versioning
            // semantics.
            ResourceKind resourceKind = AbstractResourceKind.determineResourceKind(token, requestUri, revisionDescriptor);
            if( Configuration.useVersionControl() &&
                   (resourceKind instanceof CheckedOutVersionControlled) ) {
                NodeProperty checkinLocktokenProperty =
                    revisionDescriptor.getProperty(DeltavConstants.I_CHECKIN_LOCKTOKEN,
                                                   NamespaceCache.SLIDE_URI);
                if (checkinLocktokenProperty == null) {
                    // retry with default (DAV:) namespace which was the
                    // former namespace of this property
                    checkinLocktokenProperty =
                        revisionDescriptor.getProperty(DeltavConstants.I_CHECKIN_LOCKTOKEN);
                }
                if ( (checkinLocktokenProperty != null) && (checkinLocktokenProperty.getValue() != null) &&
                    lockId.equals(checkinLocktokenProperty.getValue().toString()) ) {
                    VersioningHelper versionHelper = VersioningHelper.getVersioningHelper(slideToken, token, req, resp, config);
                    versionHelper.checkin(revisionDescriptors, revisionDescriptor, false, false, true);
View Full Code Here

        UriHandler rUh = UriHandler.getUriHandler( resourcePath );
        Iterator i;
        Enumeration j;
       
        NodeRevisionDescriptors rNrds = content.retrieve( sToken, resourcePath );
        NodeRevisionDescriptor rNrd = content.retrieve( sToken, rNrds );
        ResourceKind rRk = AbstractResourceKind.determineResourceKind( nsaToken, resourcePath, rNrd );
        if( !rRk.isSupportedMethod(req.getMethod()) ) {
            throw new MethodNotAllowedException( rRk );
        }
       
        // Check for rRk = K_VERSION_CONTROLLED*
        if( rRk instanceof VersionControlled ) {
            // nothing to do
            return;
        }
       
        // Set initial VR properties
        NodeRevisionDescriptor vrNrd =
            new NodeRevisionDescriptor(req.getContentLength());
        i = pHelp.createInitialProperties(VersionImpl.getInstance()).iterator();
        while( i.hasNext() )
            vrNrd.setProperty( (NodeProperty)i.next() );
       
        // Copy dead properties VCR -> VR
        j = rNrd.enumerateProperties();
        while( j.hasMoreElements() ) {
            NodeProperty p = (NodeProperty)j.nextElement();
            if( p.isLiveProperty() )
                continue;
            if( !vrNrd.exists(p.getName()) )
                vrNrd.setProperty( p );
        }
       
        // Copy properties VCR->VR
        NodeRevisionContent rNrc = content.retrieve( sToken, rNrds, rNrd );
        vrNrd.setContentType(rNrd.getContentType()); // P_GETCONTENTTYPE
        vrNrd.setContentLength(rNrd.getContentLength()); // P_GETCONTENTLENGTH
        vrNrd.setContentLanguage(rNrd.getContentLanguage()); // P_GETCONTENTLANGUAGE
        String comment = "INITIAL VERSION. ";
        if( rNrd.exists(P_COMMENT) )
            comment += (String)rNrd.getProperty(P_COMMENT).getValue();
        vrNrd.setProperty(
            new NodeProperty(P_COMMENT, comment) );
       
        // Set initial VHR properties
        Vector vhrLabels = new Vector();
        Hashtable vhrProps = new Hashtable();
        String vhrBranch = NodeRevisionDescriptors.MAIN_BRANCH;
        NodeRevisionDescriptor vhrNrd =
            new NodeRevisionDescriptor( NodeRevisionNumber.HIDDEN_0_0, vhrBranch, vhrLabels, vhrProps );
        i = pHelp.createInitialProperties(VersionHistoryImpl.getInstance()).iterator();
        while( i.hasNext() )
            vhrNrd.setProperty( (NodeProperty)i.next() );
       
        // Set initial VCR properties (do not overwrite existing!!)
        i = pHelp.createInitialProperties(VersionControlledImpl.getInstance()).iterator();
        while( i.hasNext() ) {
            NodeProperty p = (NodeProperty)i.next();
            if( !rNrd.exists(p.getName()) )
                rNrd.setProperty( p );
        }
       
        // Create VHR/VR
        UriHandler vhrUh = UriHandler.createNextHistoryUri( sToken, nsaToken, rUh );
        String vhrUri = String.valueOf( vhrUh );
        SubjectNode vhrNode = new SubjectNode();
        structure.create( sToken, vhrNode, String.valueOf(vhrUh) );
        content.create( sToken, vhrUri, true ); //isVersioned=true
        content.create( sToken, vhrUri, vrNrd, rNrc );
        NodeRevisionDescriptors vhrNrds =
            content.retrieve( sToken, vhrUri );
        content.create(
            sToken, vhrUri, null, vhrNrd, null ); //branch=null, revisionContent=null
       
        // Create VR node
        NodeRevisionNumber vrVersion = vrNrd.getRevisionNumber();
        SubjectNode vrNode = new SubjectNode();
        UriHandler vrUh =
            UriHandler.createVersionUri( vhrUh, String.valueOf(vrVersion) );
        String vrUri = String.valueOf( vrUh );
        structure.create( sToken, vrNode, String.valueOf(vrUh) );
       
        // Set specific properties
        vrNrd.setName(rUh.getName()); // P_DISPLAYNAME
        rNrd.setProperty(
            new NodeProperty(P_CHECKED_IN, pHelp.createHrefValue(vrUri)) );
        vhrNrd.setCreationDate( new Date() ); // P_CREATIONDATE
        setCreationUser(vhrNrd);
        vhrNrd.setLastModified( new Date() ); // P_GETLASTMODIFIED
        vhrNrd.setContentLength( 0 ); // P_GETCONTENTLENGTH
        vhrNrd.setETag( PropertyHelper.computeEtag(vhrUri, vhrNrd) ); // P_GETETAG
        vhrNrd.setName( vhrUh.getHistoryName() ); // P_DISPLAYNAME
        vhrNrd.setProperty(
            new NodeProperty(P_VERSION_SET, pHelp.createHrefValue(vrUri)) );
        vrNrd.setCreationDate( new Date() ); // P_CREATIONDATE
        setCreationUser(vrNrd);
        vrNrd.setLastModified( new Date() ); // P_GETLASTMODIFIED
        vrNrd.setETag( PropertyHelper.computeEtag(vrUri, vrNrd)); // P_GETETAG
View Full Code Here

     * @throws   JDOMException
     */
    private Set getActionAggregates(ActionNode aNode) throws SlideException, JDOMException {
        Set result = new HashSet();
        Uri aNodeUri = namespace.getUri(aNode.getUri());
        NodeRevisionDescriptor aNrd = aNodeUri.getStore().retrieveRevisionDescriptor(aNodeUri, new NodeRevisionNumber());
        NodeProperty membersProp = aNrd.getProperty("privilege-member-set");
        if (membersProp != null && membersProp.getValue() != null) {
            XMLValue membersVal;
            if (membersProp.getValue() instanceof XMLValue) {
                membersVal = (XMLValue)membersProp.getValue();
            }
View Full Code Here

            return true;
        }
        else {
            Uri groupUri = namespace.getUri(token, matchSubject.getUri());
            try {
                NodeRevisionDescriptor nrd =
                    groupUri.getStore().retrieveRevisionDescriptor(groupUri, new NodeRevisionNumber());
                NodeProperty membersetProp = nrd.getProperty("group-member-set");
                if (membersetProp != null && membersetProp.getValue() != null) {
                    XMLValue xmlVal = new XMLValue((String)membersetProp.getValue());
                    List memberNodes = xmlVal.getHrefNodes();
                    if (memberNodes.contains(checkSubject)) {
                        return true;
View Full Code Here

        try {
            Content content = token.getContentHelper();
            NodeRevisionDescriptors revisionDescriptors =
                content.retrieve(slideToken, path);
            if (revisionDescriptors.hasRevisions()) {
                NodeRevisionDescriptor revisionDescriptor =
                    content.retrieve(slideToken, revisionDescriptors);
                return isCollection(revisionDescriptor);
            } else {
                return true;
            }
View Full Code Here

        }
        else {
            try {
                ObjectNode objectNode = doRetrieveObjectNode(uri);
                ResourceId resourceId = obtainResourceId(uri);
                NodeRevisionDescriptor nrd = resourceId.getStore().retrieveRevisionDescriptor(resourceId, revisionNumber);
                nrd.setProperty("resource-id", resourceId.asXml());
                nrd.setProperty("parent-set", getXmlParentSet(uri, objectNode));
                return nrd;
            }
            catch (ObjectNotFoundException e) {
                // TODO: throw RevisionDescriptorNotFoundException???
                throw new ServiceAccessException(this, e);
View Full Code Here

        this.versioningHelper = versioningHelper;
    }
   
    private void writeReport(String resourcePath, Element multistatusElm) throws SlideException {
        NodeRevisionDescriptors nrds = content.retrieve(slideToken, resourcePath);
        NodeRevisionDescriptor nrd = content.retrieve(slideToken, nrds);
        ResourceKind resourceKind =
            AbstractResourceKind.determineResourceKind(token, nrds, nrd);
       
        if (resourceKind instanceof VersionControlled) {
            resourcePath = versioningHelper.getUriOfAssociatedVR(resourcePath);
View Full Code Here

        }
    }
   
    private void writeReport(NodeRevisionDescriptors nrds, SlideToken slideToken, Element multistatusElm) throws SlideException {
        // this is a versioned resource
        NodeRevisionDescriptor hNrd = content.retrieve(slideToken, nrds, NodeRevisionNumber.HIDDEN_0_0);
        NodeProperty versionSetProperty = hNrd.getProperty(P_VERSION_SET);
        if ( (versionSetProperty != null) && (versionSetProperty.getValue() != null) ) {
            XMLValue xmlValue;
            try {
                xmlValue =  new XMLValue(versionSetProperty.getValue().toString());
            }
View Full Code Here

       */
      public NodeRevisionDescriptor retrieveRevisionDescriptor
          (Connection connection,Uri uri, NodeRevisionNumber revisionNumber)
          throws ServiceAccessException, RevisionDescriptorNotFoundException {
       
          NodeRevisionDescriptor revisionDescriptor = null;
          PreparedStatement statement = null;

      if(revisionNumber == null)
          throw new RevisionDescriptorNotFoundException(uri.toString());
       
          try {
           
              ResultSet res = null;
           
              String branchName = null;
              Vector labels = new Vector();
              Hashtable properties = new Hashtable();
           
              // Retrieving branch name (and also check that revision
              // does indeed exist)
           
              statement = connection.prepareStatement
                  ("select * from revision where uri= ? and xnumber = ?");
              statement.setString(1, uri.toString());
              statement.setString(2, revisionNumber.toString());
              res = statement.executeQuery();
           
              if (res.next()) {
                  branchName = res.getString(REVISION_BRANCHNAME);
              } else {
                  throw new RevisionDescriptorNotFoundException(uri.toString());
              }
           
              closeStatement(statement);
           
              // Retrieve labels
           
              statement = connection.prepareStatement
                  ("select * from label where uri= ? and xnumber = ?");
              statement.setString(1, uri.toString());
              statement.setString(2, revisionNumber.toString());
              res = statement.executeQuery();
           
              while (res.next()) {
                  labels.addElement(res.getString(LABEL_LABEL));
              }
           
              closeStatement(statement);
           
              // Retrieve properties
           
              statement = connection.prepareStatement
                  ("select * from property where uri= ? and xnumber = ?");
              statement.setString(1, uri.toString());
              statement.setString(2, revisionNumber.toString());
              res = statement.executeQuery();
           
              while (res.next()) {
                  String propertyName = res.getString(PROPERTY_NAME);
                  String propertyNamespace = res.getString(PROPERTY_NAMESPACE);
                  NodeProperty property =
                      new NodeProperty(propertyName,
                                       res.getString(PROPERTY_VALUE),
                                       propertyNamespace,
                                       res.getString(PROPERTY_TYPE),
                                       (res.getInt(PROPERTY_PROTECTED) == 1));
                  properties.put(propertyNamespace + propertyName, property);
              }
           
              revisionDescriptor =
                  new NodeRevisionDescriptor(revisionNumber, branchName,
                                             labels, properties);
           
          } catch (SQLException e) {
              throw createException(e,uri);
          } finally {
View Full Code Here

TOP

Related Classes of org.apache.slide.content.NodeRevisionDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.