package org.verwandlung.voj.web.model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* 编程语言的Model.
* 对应数据库中的voj_languages数据表.
*
* @author Haozhe Xie
*/
public class Language implements Serializable {
/**
* 编程语言的默认构造函数.
*/
public Language() { }
/**
* 编程语言的构造函数.
* @param languageSlug - 编程语言的英文缩写
* @param languageName - 编程语言的名称
* @param compileCommand - 编程语言的编译命令
* @param runCommand - 编程语言对应程序执行命令
*/
public Language(String languageSlug, String languageName, String compileCommand, String runCommand) {
this.languageSlug = languageSlug;
this.languageName = languageName;
this.compileCommand = compileCommand;
this.runCommand = runCommand;
}
/**
* 编程语言的构造函数.
* @param languageId - 编程语言的唯一标识符
* @param languageSlug - 编程语言的英文缩写
* @param languageName - 编程语言的名称
* @param compileCommand - 编程语言的编译命令
* @param runCommand - 编程语言对应程序执行命令
*/
public Language(int languageId, String languageSlug, String languageName, String compileCommand, String runCommand) {
this(languageSlug, languageName, compileCommand, runCommand);
this.languageId = languageId;
}
/**
* 获取编程语言的唯一标识符.
* @return 编程语言的唯一标识符
*/
public int getLanguageId() {
return languageId;
}
/**
* 设置编程语言的唯一标识符.
* @param languageId - 编程语言的唯一标识符
*/
public void setLanguageId(int languageId) {
this.languageId = languageId;
}
/**
* 获取编程语言的英文缩写
* @return 编程语言的英文缩写
*/
public String getLanguageSlug() {
return languageSlug;
}
/**
* 设置编程语言的英文缩写.
* @param languageSlug - 编程语言的英文缩写
*/
public void setLanguageSlug(String languageSlug) {
this.languageSlug = languageSlug;
}
/**
* 获取编程语言的名称.
* @return 编程语言的名称
*/
public String getLanguageName() {
return languageName;
}
/**
* 设置编程语言的名称.
* @param languageName - 编程语言的名称
*/
public void setLanguageName(String languageName) {
this.languageName = languageName;
}
/**
* 获取编程语言的编译命令.
* @return
*/
public String getCompileCommand() {
return compileCommand;
}
/**
* 设置编程语言的编译命令.
* @param compileCommand
*/
public void setCompileCommand(String compileCommand) {
this.compileCommand = compileCommand;
}
/**
* 获取编程语言的运行命令.
* @return 编程语言的运行命令
*/
public String getRunCommand() {
return runCommand;
}
/**
* 设置编程语言的运行命令.
* @param runCommand - 编程语言的运行命令
*/
public void setRunCommand(String runCommand) {
this.runCommand = runCommand;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return String.format("Language [ID=%d, Slug=%s, Name=%s, CompileCommand=%s, runCommand=%s]",
new Object[] { languageId, languageSlug, languageName, compileCommand, runCommand });
}
/**
* 编程语言的唯一标识符.
*/
private int languageId;
/**
* 编程语言的别名.
*/
private String languageSlug;
/**
* 编程语言的名称.
*/
private String languageName;
/**
* 编程语言的编译命令.
*/
@JsonIgnore
private String compileCommand;
/**
* 编程语言的运行命令.
*/
@JsonIgnore
private String runCommand;
/**
* 唯一的序列化标识符
*/
private static final long serialVersionUID = 9065824880175832696L;
}