Package org.apache.slide.content

Examples of org.apache.slide.content.NodeProperty


        if( !rRk.isSupportedMethod(req.getMethod()) ) {
            throw new MethodNotAllowedException( rRk );
        }
       
        // get checked-out VR
        NodeProperty coutProp = rNrd.getProperty( P_CHECKED_OUT );
        String coutHref = getElementValue((String)coutProp.getValue());
        UriHandler coutUriHandler = UriHandler.getUriHandler(coutHref);
        String coutUri = coutUriHandler.getAssociatedHistoryUri();
        NodeRevisionNumber coutNrn = new NodeRevisionNumber(coutUriHandler.getVersionName());
        NodeRevisionDescriptors coutNrds = content.retrieve(sToken, coutUri);
        NodeRevisionDescriptor coutNrd = content.retrieve(sToken, coutNrds, coutNrn);
        //NodeRevisionContent coutNrc = content.retrieve( sToken, coutNrds, coutNrd );
       
        // update its DAV:checkout-set property
        if (!PropertyHelper.removeHrefFromProperty(coutNrd, P_CHECKOUT_SET, rUri)) {
            StringBuffer b = new StringBuffer("Invalid path");
            PropertyHelper propertyHelper = PropertyHelper.getPropertyHelper(sToken, nsaToken, sConf);
            NodeProperty checkoutSetProp = propertyHelper.getProperty(P_CHECKOUT_SET, coutNrds, coutNrd, slideContextPath);
            if( checkoutSetProp != null && checkoutSetProp.getValue() != null ) {
                XMLValue checkoutSetValue = new XMLValue( checkoutSetProp.getValue().toString() );
                if (checkoutSetValue.iterator().hasNext()) {
                    b.append(" - please use "+checkoutSetValue.getTextValue()+" instead");
                }
            }
            throw new ConflictException(
View Full Code Here


       
        if( rRk instanceof CheckedOutVersionControlled || rRk instanceof Working ) {
           
            boolean isWorkingResource = (rRk instanceof Working);
           
            NodeProperty coutProp = rNrd.getProperty( P_CHECKED_OUT );
            NodeProperty predSetProp = rNrd.getProperty( P_PREDECESSOR_SET );
            NodeProperty autoUpdProp = rNrd.getProperty( P_AUTO_UPDATE );
           
            // prepare auto-update
            NodeRevisionDescriptors autoUpdNrds = null;
            NodeRevisionDescriptor autoUpdNrd = null;
            if( autoUpdProp != null ) {
                Element autoUpdElm = pHelp.parsePropertyValue( (String)autoUpdProp.getValue() );
                String autoUpdUri = autoUpdElm.getTextTrim();
                autoUpdNrds = content.retrieve( sToken, autoUpdUri );
                autoUpdNrd = content.retrieve( sToken, autoUpdNrds );
            }
           
            // Retrieve VHR
            Element coutElm = pHelp.parsePropertyValue( (String)coutProp.getValue() );
            String vrUriOld = coutElm.getTextTrim();
            UriHandler vrUhOld = UriHandler.getUriHandler( vrUriOld );
            NodeRevisionNumber vrNrnOld = new NodeRevisionNumber( vrUhOld.getVersionName() );
            String vhrUri = vrUhOld.getAssociatedHistoryUri();
            NodeRevisionDescriptors vhrNrds = content.retrieve( sToken, vhrUri );
            NodeRevisionDescriptor vhrNrd = content.retrieve( sToken, vhrNrds ); //vhrUri
            NodeProperty vSetProp = vhrNrd.getProperty( P_VERSION_SET );
           
            // Retrieve old VR
            NodeRevisionDescriptor vrNrdOld =
                content.retrieve( sToken, vhrNrds, vrNrnOld ); // vrUriOld
           
            // update the old VR's DAV:checkout-set property
            if (!PropertyHelper.removeHrefFromProperty(vrNrdOld, P_CHECKOUT_SET, rUri)) {
                StringBuffer b = new StringBuffer("Invalid path");
                PropertyHelper propertyHelper = PropertyHelper.getPropertyHelper(sToken, nsaToken, sConf);
                NodeProperty checkoutSetProp = propertyHelper.getProperty(P_CHECKOUT_SET, vhrNrds, vrNrdOld, slideContextPath);
                if( checkoutSetProp != null && checkoutSetProp.getValue() != null ) {
                    XMLValue checkoutSetValue = new XMLValue( checkoutSetProp.getValue().toString() );
                    if (checkoutSetValue.iterator().hasNext()) {
                        b.append(" - please use "+checkoutSetValue.getTextValue()+" instead");
                    }
                }
                throw new ConflictException(
                    rUri, new SlideException(b.toString()));
            }
            content.store(sToken, vhrNrds.getUri(), vrNrdOld, null);
           
            // check preconditions
            ViolatedPrecondition violatedPrecondition =
                getCheckinPreconditionViolation( predSetProp, vhrNrds, forkOk, autoUpdNrd );
            if (violatedPrecondition != null) {
                throw new PreconditionViolationException(violatedPrecondition, rUri);
            }
           
            // check forking
            String forkBranch = getForkBranch(predSetProp, vhrNrds, forkOk);
            NodeRevisionDescriptor vrNrdNew = null;
            if (forkBranch != null) {
                // Create a new branch
                NodeRevisionNumber branchedRevisionNumber =
                    content.fork(sToken, vhrNrds.getUri(), forkBranch, vrNrdOld);
                vhrNrds = content.retrieve( sToken, vhrUri );
                vrNrdNew = content.retrieve(sToken, vhrNrds, branchedRevisionNumber);
                vrNrdNew.setContentLength(rNrd.getContentLength());
            }
            else {
                // Create new VR in the MAIN branch
                vrNrdNew = new NodeRevisionDescriptor( rNrd.getContentLength() );
            }
           
            i = pHelp.createInitialProperties(VersionImpl.getInstance(), vhrUri).iterator();
            while( i.hasNext() )
                vrNrdNew.setProperty( (NodeProperty)i.next() );
           
            // Copy dead properties VCR --> VR-new
            j = rNrd.enumerateProperties();
            while( j.hasMoreElements() ) {
                NodeProperty p = (NodeProperty)j.nextElement();
                if( p.isLiveProperty() )
                    continue;
                if( !vrNrdNew.exists(p.getName()) )
                    vrNrdNew.setProperty( p );
            }
            // Copy specific live properties VCR/WR -> VR
            vrNrdNew.setContentType(rNrd.getContentType()); // P_GETCONTENTTYPE
            vrNrdNew.setContentLength(rNrd.getContentLength()); // P_GETCONTENTLENGTH
            vrNrdNew.setContentLanguage( rNrd.getContentLanguage() ); // P_GETCONTENTLANGUAGE
            String comment = (autoVersion ? "CREATED BY AUTO-VERSIONING. " : "");
            if( rNrd.exists(P_COMMENT) )
                comment = (String)rNrd.getProperty(P_COMMENT).getValue();
            vrNrdNew.setProperty(
                new NodeProperty(P_COMMENT, comment) );
           
            vrNrdNew.setProperty( rNrd.getProperty(P_CHECKOUT_FORK) );
            vrNrdNew.setProperty( rNrd.getProperty(P_CHECKIN_FORK) );
           
            NodeRevisionContent rNrc = content.retrieve( sToken, rNrds, rNrd );
           
            if (forkBranch != null) {
                content.store(sToken, vhrUri, vrNrdNew, rNrc);
            }
            else {
                String branch = vrNrdOld.getBranchName();
                content.create( sToken, vhrUri, branch, vrNrdNew, rNrc );
            }
           
            // create new VR node
            String vrUriNew = vhrUri+"/"+vrNrdNew.getRevisionNumber().toString();
            UriHandler vrUhNew = UriHandler.getUriHandler( vrUriNew );
            SubjectNode vrNodeNew = new SubjectNode();
            structure.create( sToken, vrNodeNew, vrUriNew );
           
            // set specific properties
            if( keepCheckedOut ) {
                rNrd.setProperty(
                    new NodeProperty(P_CHECKED_OUT, pHelp.createHrefValue(vrUriNew)) );
                rNrd.setProperty(
                    new NodeProperty(P_PREDECESSOR_SET, "") );
                PropertyHelper.addHrefToProperty(rNrd, P_PREDECESSOR_SET, vrUriNew);
                PropertyHelper.addHrefToProperty(vrNrdNew, P_CHECKOUT_SET, rUri);
            }
            else {
                if( !isWorkingResource ) {
                    rNrd.removeProperty( coutProp );
                    rNrd.setProperty(
                        new NodeProperty(P_CHECKED_IN, pHelp.createHrefValue(vrUriNew)) );
                    rNrd.removeProperty( I_CHECKIN_LOCKTOKEN , NamespaceCache.SLIDE_URI);
                    // retry with default (DAV:) namespace which was the
                    // former namespace of this property
                    rNrd.removeProperty( I_CHECKIN_LOCKTOKEN );
                    rNrd.removeProperty(P_PREDECESSOR_SET);
                    rNrd.removeProperty(P_CHECKOUT_FORK);
                    rNrd.removeProperty(P_CHECKIN_FORK);
                }
            }
           
            vhrNrd.setLastModified( new Date() ); // P_GETLASTMODIFIED
            vhrNrd.setProperty( new NodeProperty(
                                   P_VERSION_SET, ((String)vSetProp.getValue())+pHelp.createHrefValue(vrUriNew)) );
           
            vrNrdNew.setName( rNrd.getName() ); // P_DISPLAYNAME
            vrNrdNew.setCreationDate( new Date() ); // P_CREATIONDATE
            vrNrdNew.setLastModified( new Date() ); // P_GETLASTMODIFIED
            vrNrdNew.setETag( PropertyHelper.computeEtag(vrUriNew, vrNrdNew)  ); // P_GETETAG
            vrNrdNew.setProperty(
                new NodeProperty(P_VERSION_NAME, vrUhNew.getVersionName()) );
            vrNrdNew.setProperty(
                new NodeProperty(P_PREDECESSOR_SET, predSetProp.getValue()) );

            // Store changes
            if( keepCheckedOut || !isWorkingResource ) {
                content.store( sToken, rUri, rNrd, null ); //revisionContent=null
                try {
View Full Code Here

                    // check precondition C_CHECKIN_FORK_FORBIDDEN
                    NodeRevisionNumber predecessorNrn = new NodeRevisionNumber(predecessorUriHandler.getVersionName());
                    NodeRevisionDescriptor predecessorNrd = content.retrieve(stok,
                                                                             vhrNrds,
                                                                             predecessorNrn);
                    NodeProperty predecessorCheckinForkProperty = predecessorNrd.getProperty(P_CHECKIN_FORK);
                    if (predecessorCheckinForkProperty != null
                            && !predecessorCheckinForkProperty.getValue().toString().equals(""))
                    {
                        Enumeration predecessorSuccessors = vhrNrds.getSuccessors(predecessorNrn);
                        if ( (predecessorSuccessors != null) &&
                                (predecessorSuccessors.hasMoreElements()) &&
                                (predecessorCheckinForkProperty.getValue() != null) ) {
                           
                            String checkinFork = getElementName(predecessorCheckinForkProperty.getValue().toString());
                           
                            if (E_FORBIDDEN.equals(checkinFork)) {
                                return new ViolatedPrecondition(C_CHECKIN_FORK_FORBIDDEN, WebdavStatus.SC_FORBIDDEN);
                            }
                               
                                // check precondition C_CHECKIN_FORK_DISCOURAGED
                            else if (E_DISCOURAGED.equals(checkinFork) && !isForkOk ) {
                                return new ViolatedPrecondition(C_CHECKIN_FORK_DISCOURAGED, WebdavStatus.SC_CONFLICT);
                            }
                        }
                    }
                   
                    // check precondition C_NO_OVERWRITE_BY_AUTO_UPDATE
                    if( autoUpdNrd != null ) {
                        NodeProperty cinProp = autoUpdNrd.getProperty( P_CHECKED_IN );
                        if( cinProp != null ) {
                            Element cinHrefElm = pHelp.parsePropertyValue( (String)cinProp.getValue() );
                            UriHandler cinUh = new UriHandler( cinHrefElm.getTextTrim() );
                            NodeRevisionNumber cinNrn = new NodeRevisionNumber( cinUh.getVersionName() );
                            if( !vhrNrds.getUri().equals(cinUh.getAssociatedHistoryUri()) ) {
                                // violation
                                return new ViolatedPrecondition(C_NO_OVERWRITE_BY_AUTO_UPDATE, WebdavStatus.SC_CONFLICT);
View Full Code Here

                   
                    NodeRevisionNumber predecessorNrn = new NodeRevisionNumber(predecessorUriHandler.getVersionName());
                    NodeRevisionDescriptor predecessorNrd = content.retrieve(sToken,
                                                                             vhrNrds,
                                                                             predecessorNrn);
                    NodeProperty predecessorCheckinForkProperty = predecessorNrd.getProperty(P_CHECKIN_FORK);
                    if (predecessorCheckinForkProperty != null) {
                       
                        Enumeration predecessorSuccessors = vhrNrds.getSuccessors(predecessorNrn);
                        if ( (predecessorSuccessors != null) &&
                            predecessorSuccessors.hasMoreElements() ) {
View Full Code Here

        Enumeration propertyEnum;
       
        // Remove all VCR dead properties first
        propertyEnum = vcrRevisionDescriptor.enumerateProperties();
        while (propertyEnum.hasMoreElements()) {
            NodeProperty p = (NodeProperty)propertyEnum.nextElement();
            if( p.isLiveProperty() )
                continue;
            vcrRevisionDescriptor.removeProperty(p);
        }
       
        // Copy all dead properties of VR to VCR
        propertyEnum = vrRevisionDescriptor.enumerateProperties();
        while (propertyEnum.hasMoreElements()) {
            NodeProperty p = (NodeProperty)propertyEnum.nextElement();
            if( !p.isLiveProperty() ) {
                vcrRevisionDescriptor.setProperty(p);
            }
        }
       
        // update specific live properties
        String vrUri = getUri(vrRevisionDescriptors, vrRevisionDescriptor);
        vcrRevisionDescriptor.setProperty(new NodeProperty(P_CHECKED_IN,
                                                           pHelp.createHrefValue(vrUri)) );
        vcrRevisionDescriptor.setLastModified(new Date());
        vcrRevisionDescriptor.setContentLength(vrRevisionDescriptor.getContentLength());
        vcrRevisionDescriptor.setContentType(vrRevisionDescriptor.getContentType());
        vcrRevisionDescriptor.setContentLanguage(vrRevisionDescriptor.getContentLanguage());
View Full Code Here

    protected void backupSpecificLiveProperties(NodeRevisionDescriptors rNrds, NodeRevisionDescriptor rNrd) throws SlideException {
       
        NodeRevisionDescriptor backupNrd =
            new NodeRevisionDescriptor( NodeRevisionNumber.HIDDEN_0_0, "backup", new Vector(), new Hashtable() );
       
        NodeProperty p;
       
        p = rNrd.getProperty( P_AUTO_VERSION );
        if( p != null )
            backupNrd.setProperty( p );
       
View Full Code Here

    protected void restoreSpecificLiveProperties(NodeRevisionDescriptors rNrds, NodeRevisionDescriptor rNrd) throws SlideException {
       
        NodeRevisionDescriptor backupNrd =
            content.retrieve(sToken, rNrds, NodeRevisionNumber.HIDDEN_0_0);
       
        NodeProperty p;
       
        p = backupNrd.getProperty( P_AUTO_VERSION );
        if( p != null )
            rNrd.setProperty( p );
       
View Full Code Here

     *             of the given <code>revisionDescriptor</code>.
     */
    public String getAutoVersionElementName(NodeRevisionDescriptor revisionDescriptor) {
       
        String autoVersionValue = null;
        NodeProperty autoVersionProperty = revisionDescriptor.getProperty(DeltavConstants.P_AUTO_VERSION);
        if ( (autoVersionProperty != null) && (autoVersionProperty.getValue() != null) ) {
            if (autoVersionProperty.getValue().toString().length() > 0) {
                autoVersionValue = getElementName(autoVersionProperty.getValue().toString());
            }
            else {
                autoVersionValue = "";
            }
        }
View Full Code Here

        UriHandler historyUriHandler = UriHandler.getUriHandler(historyUri);
        if (historyUriHandler.isHistoryUri()) {
            NodeRevisionDescriptors historyNrds = content.retrieve(sToken, historyUri);
            NodeRevisionDescriptor historyNrd =
                content.retrieve(sToken, historyNrds, NodeRevisionNumber.HIDDEN_0_0);
            NodeProperty versionSet = historyNrd.getProperty(P_VERSION_SET);
            try {
                XMLValue versionSetValue = new XMLValue(versionSet.getValue().toString());
                NodeRevisionDescriptor vrNrd = null;
                NodeProperty labelNameSetProperty = null;
                String labelNameSetString = null;
                Iterator versionSetIterator = versionSetValue.iterator();
                String vrUri = null;
                UriHandler vrUriHandler = null;
                boolean found = false;
                while ( !found && versionSetIterator.hasNext() ) {
                    vrUri = ((Element)versionSetIterator.next()).getText();
                    vrUriHandler = UriHandler.getUriHandler(vrUri);
                    NodeRevisionNumber vrRevisionNumber = new NodeRevisionNumber(vrUriHandler.getVersionName());
                    vrNrd = content.retrieve(sToken, historyNrds, vrRevisionNumber);
                    labelNameSetProperty = vrNrd.getProperty(P_LABEL_NAME_SET);
                    if ( (labelNameSetProperty != null) && (labelNameSetProperty.getValue() != null) ) {
                        labelNameSetString = labelNameSetProperty.getValue().toString();
                        if (labelNameSetString != null) {
                            XMLValue labelNameSet = new XMLValue(labelNameSetString);
                            Iterator labelNameSetIterator = labelNameSet.iterator();
                            while ( !found && labelNameSetIterator.hasNext() ) {
                                found = label.equals(((Element)labelNameSetIterator.next()).getText());
View Full Code Here

       
        NodeRevisionDescriptors revisionDescriptors = content.retrieve(sToken, resourceUri);
        if (!revisionDescriptors.isVersioned()) {
            NodeRevisionDescriptor revisionDescriptor =
                content.retrieve( sToken, revisionDescriptors);
            NodeProperty property = revisionDescriptor.getProperty(P_CHECKED_OUT);
            if ( (property == null) || (property.getValue() == null) ) {
                property = revisionDescriptor.getProperty(P_CHECKED_IN);
            }
            if ( (property != null) && (property.getValue() != null) ) {
               
                try {
                    XMLValue xmlValue = new XMLValue(property.getValue().toString());
                    Iterator iterator = xmlValue.iterator();
                    if (iterator.hasNext()) {
                        Element element = (Element)iterator.next();
                        vrUri = element.getText();
                    }
View Full Code Here

TOP

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

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.