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

📄 revision.java

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 JAVA
字号:
/** * @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 */package org.tigris.subversion.javahl;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;/** * Class to specify a revision in a svn command. */public class Revision{    /**     * kind of revision specified     */    protected int revKind;    /**     * Create a new revision     * @deprecated     * @param kind  kind of revision     */    public Revision(int kind)    {        if(kind < RevisionKind.unspecified || kind > RevisionKind.head)            throw new IllegalArgumentException(                    kind+" is not a legel revision kind");        revKind = kind;    }    /**     * Internally create a new revision     * @param kind      kind of revision     * @param marker    marker to differtiate from the public deprecated version     */    protected Revision(int kind, boolean marker)    {        if(kind < RevisionKind.unspecified || kind > RevisionKind.head)            throw new IllegalArgumentException(                    kind+" is not a legel revision kind");        revKind = kind;    }    /**     * Returns the kind of the Revsion     * @return kind     */    public int getKind()    {        return revKind;    }    /**     * return the textual representation of the revision     * @return english text     */    public String toString()    {        switch(revKind) {            case Kind.base : return "BASE";            case Kind.committed : return "COMMITTED";            case Kind.head : return "HEAD";            case Kind.previous : return "PREV";            case Kind.working : return "WORKING";        }        return super.toString();    }    /**     * compare to revision objects     * @param target     * @return if both object have equal content     */    public boolean equals(Object target) {        if (this == target)            return true;        if (!(target instanceof Revision))            return false;        return ((Revision)target).revKind == revKind;            }    /**     * Creates a Revision.Number object     * @param revisionNumber    the revision number of the new object     * @return  the new object     * @throws IllegalArgumentException If the specified revision     * number is invalid.     */    public static Revision getInstance(long revisionNumber)    {        return new Revision.Number(revisionNumber);    }    /**     * Factory which creates {@link #Number} objects for valid     * revision numbers only (those greater than zero).  For internal     * usage to avoid an IllegalArgumentException, where no external     * consumer of the javahl API passed an invalid revision number.     *     * @param revNumber The revision number to create an object for.     * @return An object representing <code>revNumber</code>, or     * <code>null</code> if the revision number was invalid.     * @since 1.2     */    static Number createNumber(long revNumber)    {        return (revNumber < 0 ? null : new Number(revNumber));    }    /**     * Creates a Revision.DateSpec objet     * @param revisionDate  the date of the new object     * @return  the new object     */    public static Revision getInstance(Date revisionDate)    {        return new Revision.DateSpec(revisionDate);    }    /**     * last commited revision     */    public static final Revision HEAD = new Revision(Kind.head, true);    /**     * first existing revision     */    public static final Revision START = new Revision(Kind.unspecified, true);    /**     * last committed revision, needs working copy     */    public static final Revision COMMITTED = new Revision(Kind.committed, true);    /**     * previous committed revision, needs working copy     */    public static final Revision PREVIOUS = new Revision(Kind.previous, true);    /**     * base revision of working copy     */    public static final Revision BASE = new Revision(Kind.base, true);    /**     * working version in working copy     */    public static final Revision WORKING = new Revision(Kind.working, true);    /**     * Marker revision number for no real revision     */    public static final int SVN_INVALID_REVNUM = -1;    /**     * class to specify a Revision by number     */    public static class Number extends Revision    {        /**         * the revision number         */        protected long revNumber;        /**         * create a revision by number object         * @param number the number         * @throws IllegalArgumentException If the specified revision         * number is invalid.         */        public Number(long number)        {            super(Kind.number, true);            if(number < 0)                throw new IllegalArgumentException(                        "negative revision numbers are not allowed");            revNumber = number;        }        /**         * Returns the revision number         * @return number         */        public long getNumber()        {            return revNumber;        }        /**         * return the textual representation of the revision         * @return english text         */        public String toString() {            return Long.toString(revNumber);        }        /**         * compare to revision objects         * @param target         * @return if both object have equal content         */        public boolean equals(Object target) {            if (!super.equals(target))                return false;            return ((Revision.Number)target).revNumber == revNumber;                }    }    /**     * class to specify a revision by a date     */    public static class DateSpec extends Revision    {        /**         * the date         */        protected Date revDate;        /**         * create a revision by date object         * @param date         */        public DateSpec(Date date)        {            super(Kind.date, true);            if(date == null)                throw new IllegalArgumentException("a date must be specified");            revDate = date;        }        /**         * Returns the date of the revision         * @return the date         */        public Date getDate()        {            return revDate;        }        /**         * return the textual representation of the revision         * @return english text         */        public String toString() {                        SimpleDateFormat dateFormat =                    new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z",                            Locale.US);            return '{'+dateFormat.format(revDate)+'}';        }        /**         * compare to revision objects         * @param target         * @return if both object have equal content         */        public boolean equals(Object target) {            if (!super.equals(target))                return false;            return ((Revision.DateSpec)target).revDate.equals(revDate);                }            }    /**     * Various ways of specifying revisions.     *     * Note:     * In contexts where local mods are relevant, the `working' kind     * refers to the uncommitted "working" revision, which may be modified     * with respect to its base revision.  In other contexts, `working'     * should behave the same as `committed' or `current'.     *     * the values are defined in RevisionKind because of building reasons     */    public static final class Kind implements RevisionKind    {    }}

⌨️ 快捷键说明

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