⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wc.java

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.tigris.subversion.javahl.tests;/** * @copyright * ==================================================================== * Copyright (c) 2003-2004 CollabNet.  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://subversion.tigris.org/license-1.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * * This software consists of voluntary contributions made by many * individuals.  For exact contribution history, see the revision * history and logs, available at http://subversion.tigris.org/. * ==================================================================== * @endcopyright */import org.tigris.subversion.javahl.Status;import org.tigris.subversion.javahl.NodeKind;import org.tigris.subversion.javahl.DirEntry;import java.io.*;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import junit.framework.Assert;/** * This class describe the expected state of the working copy */public class WC{    /**     * the map of the items of the working copy. The relative path is the key     * for the map     */    Map items = new HashMap();    /**     * Generate from the expected state of the working copy a new working copy     * @param root      the working copy directory     * @throws IOException     */    public void materialize(File root) throws IOException    {        // generate all directories first        Iterator it = items.values().iterator();        while (it.hasNext())        {            Item item = (Item) it.next();            if (item.myContent == null) // is a directory            {                File dir = new File(root, item.myPath);                if (!dir.exists())                    dir.mkdirs();            }        }        // generate all files with the content in the second run        it = items.values().iterator();        while (it.hasNext())        {            Item item = (Item) it.next();            if (item.myContent != null) // is a file            {                File file = new File(root, item.myPath);                PrintWriter pw = new PrintWriter(new FileOutputStream(file));                pw.print(item.myContent);                pw.close();            }        }    }    /**     * Add a new item to the working copy     * @param path      the path of the item     * @param content   the content of the item. A null content signifies a     *                  directory     * @return          the new Item object     */    public Item addItem(String path, String content)    {        return new Item(path, content);    }    /**     * Returns the item at a path     * @param path  the path, where the item is searched     * @return  the found item     */    public Item getItem(String path)    {        return (Item) items.get(path);    }    /**     * Remove the item at a path     * @param path  the path, where the item is removed     */    public void removeItem(String path)    {        items.remove(path);    }    /**     * Set text (content) status of the item at a path     * @param path      the path, where the status is set     * @param status    the new text status     */    public void setItemTextStatus(String path, int status)    {        ((Item) items.get(path)).textStatus = status;    }    /**     * Set property status of the item at a path     * @param path      the path, where the status is set     * @param status    the new property status     */    public void setItemPropStatus(String path, int status)    {        ((Item) items.get(path)).propStatus = status;    }    /**     * Set the revision number of the item at a path     * @param path      the path, where the revision number is set     * @param revision  the new revision number     */    public void setItemWorkingCopyRevision(String path, long revision)    {        ((Item) items.get(path)).workingCopyRev = revision;    }    /**     * Returns the file content of the item at a path     * @param path  the path, where the content is retrieved     * @return  the content of the file     */    public String getItemContent(String path)    {        return ((Item) items.get(path)).myContent;    }    /**     * Set the file content of the item at a path     * @param path      the path, where the content is set     * @param content   the new content     */    public void setItemContent(String path, String content)    {        // since having no content signals a directory, changes of removing the        // content or setting a former not set content is not allowed. That        // would change the type of the item.        Assert.assertNotNull("cannot unset content", content);        Item i = (Item) items.get(path);        Assert.assertNotNull("cannot set content on directory", i.myContent);        i.myContent = content;    }    /**     * set the flag to check the content of item at a path during next check.     * @param path      the path, where the flag is set     * @param check     the flag     */    public void setItemCheckContent(String path, boolean check)    {        Item i = (Item) items.get(path);        i.checkContent = check;    }    /**     * Set the expected node kind at a path     * @param path      the path, where the node kind is set     * @param nodeKind  the expected node kind     */    public void setItemNodeKind(String path, int nodeKind)    {        Item i = (Item) items.get(path);        i.nodeKind = nodeKind;    }    /**     * Set the expected lock state at a path     * @param path      the path, where the lock state is set     * @param isLocked  the flag     */    public void setItemIsLocked(String path, boolean isLocked)    {        Item i = (Item) items.get(path);        i.isLocked = isLocked;    }    /**     * Set the expected switched flag at a path     * @param path          the path, where the switch flag is set     * @param isSwitched    the flag     */    public void setItemIsSwitched(String path, boolean isSwitched)    {        Item i = (Item) items.get(path);        i.isSwitched = isSwitched;    }    /**     * Copy an expected working copy state     * @return the copy of the exiting object     */    public WC copy()    {        WC c = new WC();        Iterator it = items.values().iterator();        while (it.hasNext())        {            ((Item) it.next()).copy(c);        }        return c;    }    /**     * Check the result of a single file SVNClient.list call     * @param tested            the result array     * @param singleFilePath    the path to be checked     * @throws Exception     */    void check(DirEntry[] tested, String singleFilePath) throws Exception    {        Assert.assertEquals("not a single dir entry", 1, tested.length);        Item item = (Item)items.get(singleFilePath);        Assert.assertNotNull("not found in working copy", item);        Assert.assertNotNull("not a file", item.myContent);        Assert.assertEquals("state says file, working copy not",                tested[0].getNodeKind(),                item.nodeKind == -1 ? NodeKind.file : item.nodeKind);    }    /**     * Check the result of a directory SVNClient.list call     * @param tested        the result array     * @param basePath      the path of the directory     * @param recursive     the recursive flag of the call     * @throws Exception     */    void check(DirEntry[] tested, String basePath, boolean recursive)            throws Exception

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -