package net.zuckerfrei.jcfd;
import java.io.Serializable;
/**
* Represents a DICT server's database.
*
* @author Davor Cengija
* @version $Revision: 1.1.1.1 $
*/
public class Database
implements Serializable
{
//~ Static variables/initializers =========================================
/**
* Used when searching within any installed databases.
*
* @see Definition
* @see Match
*/
public static final Database ANY = new Database("*", "Search in any database");
/**
* Used when searching only in the first database when a definition or a
* match is encontered.
*
* @see Definition
* @see Match
*/
public static final Database FIRST = new Database("!", "Search until found first");
//~ Instance variables ====================================================
/** Name of the database. */
private String name;
/** Database code, as defined in the server's configuration . */
private String code;
//~ Constructors ==========================================================
/**
* Creates a new Database object.
*
* @param code Database code, as defined in the server's configuration,
* @param name Full name of the database.
*/
Database(String code, String name) {
this.code = code;
this.name = name;
}
//~ Methods ===============================================================
/**
* Returns the code.
*
* @return String
*/
public String getCode() {
return code;
}
/**
* Returns the name.
*
* @return String
*/
public String getName() {
return name;
}
/**
* Checks if the parameter <code>o</code> is equal to this object by
* comparing code and name.
*
* @param o Object to check the equality of.
*
* @return true if the objects are equal, false otherwise.
*
* @see #code
* @see #name
*/
public boolean equals(Object o) {
if (o == null) {
return false;
}
if (!(o instanceof Database)) {
return false;
}
Database db = (Database) o;
if (db.name.equals(this.name) && db.code.equals(this.code)) {
return true;
}
return false;
}
/**
* @see Object#hashCode()
*/
public int hashCode() {
int result = 17;
result = 37 * result + name.hashCode();
result = 37 * result + code.hashCode();
return result;
}
/**
* Returns human readable representation of this object.
*
* @return String
*/
public String toString() {
return "Database " + code + " " + name;
}
}