Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * ====================================================================
   * Copyright (c) 2004-2006 TMate Software Ltd.  All rights reserved.
   *
   * This software is licensed as described in the file COPYING, which
   * you should have received as part of this distribution.  The terms
   * are also available at http://svnkit.com/license.html
   * If newer versions of this license are posted there, you may use a
   * newer version instead, at your option.
  * ====================================================================
  */
 package org.tmatesoft.svn.core.internal.wc;
 
 import java.io.File;
 import java.util.Map;
 

Author(s):
TMate Software Ltd.
Version:
1.1.0
 
 public class SVNExportEditor implements ISVNEditor {
 
     private File myRoot;
     private boolean myIsForce;
     private String myEOLStyle;
     private File myCurrentDirectory;
     private File myCurrentFile;
     private File myCurrentTmpFile;
     private String myCurrentPath;
     private Map myExternals;
     private Map myFileProperties;
     private String myURL;
     
 
     public SVNExportEditor(ISVNEventHandler eventDispatcherString url,
             File dstPathboolean forceString eolStyle) {
          = dstPath;
          = force;
          = eolStyle;
          = new HashMap();
          = eventDispatcher;
          = url;
          = new SVNDeltaProcessor();
     }
 
     public Map getCollectedExternals() {
         return ;
     }
 
     public void openRoot(long revisionthrows SVNException {
         // create root if missing or delete (if force).
         addDir(""null, -1);
     }
 
     public void addDir(String pathString copyFromPathlong copyFromRevisionthrows SVNException {
          = new File(path);
          = path;
 
         SVNFileType dirType = SVNFileType.getType();
         if (dirType == . || dirType == .) {
             // export is obstructed.
             if (!) {
                 SVNErrorMessage err = SVNErrorMessage.create(."''{0}'' exists and is not a directory");
                 SVNErrorManager.error(err);
             } else {
                 SVNFileUtil.deleteAll();
             }
         } else if (dirType == . && !) {
             SVNErrorMessage err = SVNErrorMessage.create(."''{0}'' already exists");
             SVNErrorManager.error(err);
         } else if (dirType == .) {        
             if (!.mkdirs()) {
                 SVNErrorMessage err = SVNErrorMessage.create(."Cannot create directory ''{0}''");
                 SVNErrorManager.error(err);
             }
         }
         .handleEvent(SVNEventFactory.createExportAddedEvent(
                 .), .);
     }
 
    public void changeDirProperty(String nameString value)
            throws SVNException {
        if (..equals(name) && value != null) {
            .put(value);
        }
    }
    public void closeDir() throws SVNException {
         = SVNPathUtil.tail();
    }
    public void addFile(String pathString copyFromPathlong copyFromRevision)
            throws SVNException {
        File file = new File(path);
        if (! && file.exists()) {
            SVNErrorMessage err = SVNErrorMessage.create(."File ''{0}'' already exists"file);
            SVNErrorManager.error(err);
        }
         = file;
         = new HashMap();
         = null;
    }
    public void changeFileProperty(String commitPathString nameString value)
            throws SVNException {
        .put(namevalue);
    }
    public void applyTextDelta(String commitPathString baseChecksumthrows SVNException {
         = SVNFileUtil.createUniqueFile(.getName(), ".tmp");
        .applyTextDelta(nulltrue);
    }
    public OutputStream textDeltaChunk(String commitPathSVNDiffWindow diffWindowthrows SVNException {
        return .textDeltaChunk(diffWindow);
    }
    
    private String myChecksum;
    public void textDeltaEnd(String commitPaththrows SVNException {
    }
    public void closeFile(String commitPathString textChecksumthrows SVNException {
        if (textChecksum == null) {
            textChecksum = (String.get(.);
        }
        if () {
            .delete();
        }
        String realChecksum =  != null ?  : SVNFileUtil.computeChecksum();
         = null;
        if (textChecksum != null && !textChecksum.equals(realChecksum)) {
            SVNErrorMessage err = SVNErrorMessage.create(."Checksum mismatch for ''{0}''; expected: ''{1}'', actual: ''{2}''",
                    new Object[] {textChecksumrealChecksum}); 
            SVNErrorManager.error(err);
        }
        // retranslate.
        try {
            String date = (String.get(.);
            boolean special = .get(.) != null;
            boolean binary = SVNProperty.isBinaryMimeType((String.get(.));
            String keywords = (String.get(.);
            Map keywordsMap = null;
            if (keywords != null) {
                String url = SVNPathUtil.append(, SVNEncodingUtil.uriEncode());
                url = SVNPathUtil.append(url, SVNEncodingUtil.uriEncode(.getName()));
                String author = (String.get(.);
                String revStr = (String.get(.);
                keywordsMap = SVNTranslator.computeKeywords(keywordsurlauthordaterevStr);
            }
            byte[] eolBytes = null;
                eolBytes = SVNTranslator.getWorkingEOL( != null ?  : (String.get(.));
            } else if (.containsKey(.)) {
                eolBytes = SVNTranslator.getWorkingEOL((String.get(.));
            }
            if (binary) {
                // no translation unless 'special'.
                eolBytes = null;
                keywordsMap = null;
            }
            if (eolBytes != null || (keywordsMap != null && !keywordsMap.isEmpty()) || special) {
                SVNTranslator.translate(eolByteskeywordsMapspecialtrue);
            } else {
                SVNFileUtil.rename();
            }
            boolean executable = .get(.) != null;
            if (executable) {
                SVNFileUtil.setExecutable(true);
            }
            if (!special && date != null) {
                .setLastModified(SVNTimeUtil.parseDate(date).getTime());
            }
        } finally {
            .delete();
        }
    }
    public SVNCommitInfo closeEdit() throws SVNException {
        return null;
    }
    public void targetRevision(long revisionthrows SVNException {
    }
    public void deleteEntry(String pathlong revisionthrows SVNException {
    }
    public void absentDir(String paththrows SVNException {
    }
    public void absentFile(String paththrows SVNException {
    }
    public void openDir(String pathlong revisionthrows SVNException {
    }
    public void openFile(String pathlong revisionthrows SVNException {
    }
    public void abortEdit() throws SVNException {
    }
New to GrepCode? Check out our FAQ X