package net.argius.filetool;

/**
 * アーカイバのエントリ。
 */
public final class ArchiveEntry {

    /**
     * 空のエントリ。
     * 各Entryの<code>null</code>に対応。
     */
    public static final ArchiveEntry EMPTY = new ArchiveEntry("");

    private String name;
    private long lastModified;
    private boolean directory;

    /**
     * ArchiveEntryの生成。
     * @param name エントリ名
     */
    public ArchiveEntry(String name) {
        this.name = name;
        this.lastModified = Long.MIN_VALUE;
        this.directory = (name.endsWith("/"));
    }

    /**
     * nameの取得。
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * nameの設定。
     * @param name name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * lastModifiedの取得。
     * @return lastModified
     */
    public long getLastModified() {
        return lastModified;
    }

    /**
     * lastModifiedの設定。
     * @param lastModified lastModified
     */
    public void setLastModified(long lastModified) {
        this.lastModified = lastModified;
    }

    /**
     * directoryの取得。
     * @return directory
     */
    public boolean isDirectory() {
        return directory;
    }

    /* (overridden)
     * @see java.lang.Object#toString()
     */
    public String toString() {
        return name + ' ' + lastModified + (directory ? " (directory)" : "");
    }

}
