package com.alibaba.hsclient.commond;
import java.io.UnsupportedEncodingException;
import com.alibaba.hsclient.Command;
import com.alibaba.hsclient.util.Const;
/**
* P <indexid> <dbname> <tablename> <indexname> <columns> [<fcolumns>]
* @author yinghui.huangyh
*
*/
public class OpenIndexCommand implements Command {
private String operator = Const.OPEN_INDEX_OPERATOR;
private int indexId;
private String dbName;
private String tableName;
private String indexName;
private String[] columns;
private String[] fColumns;
public OpenIndexCommand(int indexId, String dbName, String tableName,
String indexName, String[] columns, String[] fColumns) {
super();
this.indexId = indexId;
this.dbName = dbName;
this.tableName = tableName;
this.indexName = indexName;
this.columns = columns;
this.fColumns = fColumns;
}
public String getOperator() {
return operator;
}
public int getIndexId() {
return indexId;
}
public void setIndexId(int indexId) {
this.indexId = indexId;
}
public String getDbName() {
return dbName;
}
public void setDbName(String dbName) {
this.dbName = dbName;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getIndexName() {
return indexName;
}
public void setIndexName(String indexName) {
this.indexName = indexName;
}
public String[] getColumns() {
return columns;
}
public void setColumns(String[] columns) {
this.columns = columns;
}
public String[] getfColumns() {
return fColumns;
}
public void setfColumns(String[] fColumns) {
this.fColumns = fColumns;
}
public byte[] toByte(String encoding) throws UnsupportedEncodingException {
StringBuffer sb = new StringBuffer();
sb.append(this.operator).append(Const.TOKEN_SEPARATOR)
.append(this.getIndexId()).append(Const.TOKEN_SEPARATOR)
.append(this.getDbName()).append(Const.TOKEN_SEPARATOR)
.append(this.getTableName()).append(Const.TOKEN_SEPARATOR)
.append(this.getIndexName()).append(Const.TOKEN_SEPARATOR);
for (int i = 0; i < this.columns.length; i++) {
if (i == columns.length -1)
{
sb.append(columns[i]);
}
else
{
sb.append(columns[i]).append(Const.COMMA_SEPARATOR);
}
}
if (this.fColumns == null || this.fColumns.length == 0) {
sb.append(Const.COMMAND_TERMINATE);
return sb.toString().getBytes(encoding);
} else {
for (int i = 0; i < this.columns.length; i++) {
if (i == this.columns.length - 1) {
sb.append(this.columns[i]);
}
else
{
sb.append(this.columns[i]).append(Const.COMMA_SEPARATOR);
}
}
}
sb.append(Const.COMMAND_TERMINATE);
return sb.toString().getBytes(encoding);
}
}