net.mobid.codetraq.persistence.ServerRevision.java Source code

Java tutorial

Introduction

Here is the source code for net.mobid.codetraq.persistence.ServerRevision.java

Source

/*
 * Copyright 2011 Ronald Kurniawan.
 *
 * This file is part of CodeTraq.
 *
 * CodeTraq is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * CodeTraq is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with CodeTraq. If not, see <http://www.gnu.org/licenses/>.
 */
package net.mobid.codetraq.persistence;

import java.util.ArrayList;
import java.util.List;
import net.mobid.codetraq.VersionControlType;
import org.joda.time.Period;

/**
 * Records the latest revision number for a server.
 *
 * @author Ronald Kurniawan
 * @version 0.1
 */
public class ServerRevision {

    private boolean _shouldUpdate = false;

    /**
     * Returns the status of whether daemon should update this revision on its next
     * run.
     * @return <code>true</code> if daemon should update this revision, <code>false</code>
     * otherwise
     */
    public boolean shoudlUpdate() {
        return _shouldUpdate;
    }

    /**
     * Sets the status of whether daemon should update this revision on its next run.
     * @param value - <code>true</code> if daemon should update, <code>false</code> otherwise
     */
    public void setShouldUpdate(boolean value) {
        _shouldUpdate = value;
    }

    private VersionControlType _versionControl = null;

    /**
     * Returns the type of Version Control this revision uses.
     * @return a value of the type <code>VersionControlType</code>
     */
    public VersionControlType getVersionControlType() {
        return _versionControl;
    }

    /**
     * Sets the type of Version Control this revision uses.
     * @param value - type <code>VersionControlType</code>
     */
    public void setVersionControlType(VersionControlType value) {
        _versionControl = value;
    }

    private String _serverShortName = null;

    /**
     * Returns the server's short name (nickname).
     * @return server's short name
     */
    public String getServerShortName() {
        return _serverShortName;
    }

    /**
     * Sets the server's short name (nickname). This nickname must be unique
     * throughout the configuration file.
     * @param value - server's short name
     */
    public void setServerShortName(String value) {
        _serverShortName = value;
    }

    private String _serverAddress = null;

    /**
     * Returns the URL for the server to be monitored.
     * @return server URL
     */
    public String getServerAddress() {
        return _serverAddress;
    }

    /**
     * Sets the URL for the server to be monitored.
     * @param value - server URL
     */
    public void setServerAddress(String value) {
        if (_serverAddress != null) {
            System.out.printf("Server addres cannot be changed.%n");
            return;
        }
        _serverAddress = value;
    }

    private String _serverUsername = null;

    /**
     * Returns the username to be used to log into the version control.
     * @return username for login
     */
    public String getServerUsername() {
        return _serverUsername;
    }

    /**
     * Sets the username to be used to log into the version control.
     * @param value - username for login
     */
    public void setServerUsername(String value) {
        _serverUsername = value;
    }

    private String _serverPassword = null;

    /**
     * Returns the password to be used to log into the version control.
     * @return password for login
     */
    public String getServerPassword() {
        return _serverPassword;
    }

    /**
     * Sets the password to be used to log into the version control.
     * @param value - password for login
     */
    public void setServerPassword(String value) {
        _serverPassword = value;
    }

    public long _lastCheckedTimestamp = 0;

    /**
     * Returns the timestamp the server was last monitored.
     * @return timestamp in miliseconds since epoch
     */
    public long getLastCheckedTimestamp() {
        return _lastCheckedTimestamp;
    }

    /**
     * Sets the timestamp the server was last monitored.
     * @param value - timestamp in miliseconds since epoch
     */
    public void setLastCheckedTimestamp(long value) {
        _lastCheckedTimestamp = value;
    }

    /**
     * Calculates and returns the number of minutes since last monitor.
     * @return number of minutes elapsed since last monitor
     */
    public int getMinutesSinceLastCheck() {
        if (getLastCheckedTimestamp() > 0) {
            Period p = new Period(getLastCheckedTimestamp(), System.currentTimeMillis());
            return p.getMinutes();
        }
        return Integer.MAX_VALUE;
    }

    // These properties are linked to a particular Revision --------------------------------------
    // Needed to construct a Message
    private String _rLastMessage = null;

    /**
     * Returns message for last revision.
     * @return last revision's message
     */
    public String getLastMessage() {
        return _rLastMessage;
    }

    /**
     * Sets message for last revision.
     * @param value - last revision's message
     */
    public void setLastMessage(String value) {
        _rLastMessage = value;
    }

    private String _rLastRevisionId = null;

    /**
     * Returns ID for last revision.
     * @return last revision's ID
     */
    public String getLastRevisionId() {
        return _rLastRevisionId;
    }

    /**
     * Sets the ID for last revision.
     * @param value - last revision's ID
     */
    public void setLastRevisionId(String value) {
        _rLastRevisionId = value;
    }

    private long _rLastTimestamp = 0;

    /**
     * Returns the timestamp for last revision.
     * @return last revision's timestamp
     */
    public long getLastRevisionTimestamp() {
        return _rLastTimestamp;
    }

    /**
     * Sets the timestamp for last revision.
     * @param value - last revision's timestamp
     */
    public void setLastRevisionTimestamp(long value) {
        _rLastTimestamp = value;
    }

    private String _rLastAuthor = null;

    /**
     * Returns the author for last revision.
     * @return last revision's author
     */
    public String getLastAuthor() {
        return _rLastAuthor;
    }

    /**
     * Sets the author for last revision.
     * @param value - last revision's author
     */
    public void setLastAuthor(String value) {
        _rLastAuthor = value;
    }

    private String _rLastCommitter = null;

    /**
     * Returns the committer for last revision.
     * @return last revision's committer
     */
    public String getLastCommitter() {
        return _rLastCommitter;
    }

    /**
     * Sets the committer for last revision.
     * @param value - last revision's committer
     */
    public void setLastCommitter(String value) {
        _rLastCommitter = value;
    }

    private List<String> _files = null;

    /**
     * Returns the list of modified files for last revision.
     * @return a <code>List</code> containing modified files from last revision
     */
    public List<String> getFiles() {
        if (_files == null) {
            _files = new ArrayList<String>();
        }
        return _files;
    }

    /**
     * Adds a single line describing a modified file into the list of modified files.
     * @param value - a <code>String</code> describiing a modified file (status and path)
     */
    public void addModifiedFile(String value) {
        if (_files == null) {
            _files = new ArrayList<String>();
        }
        _files.add(value);
    }

    /**
     * Clears the content of the list of modified files.
     */
    public void clearFiles() {
        if (_files != null && !_files.isEmpty()) {
            _files.clear();
        }
    }
}