mirror of https://github.com/apache/iotdb
add auth jdbc and server code
This commit is contained in:
parent
22a454e424
commit
301085374b
15
pom.xml
15
pom.xml
|
@ -14,6 +14,8 @@
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<compiler.version>1.8</compiler.version>
|
<compiler.version>1.8</compiler.version>
|
||||||
<hadoop.version>2.6.0</hadoop.version>
|
<hadoop.version>2.6.0</hadoop.version>
|
||||||
|
<jline.version>2.14.1</jline.version>
|
||||||
|
<derby.version>10.12.1.1</derby.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -37,6 +39,19 @@
|
||||||
<version>${hadoop.version}</version>
|
<version>${hadoop.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>jline</groupId>
|
||||||
|
<artifactId>jline</artifactId>
|
||||||
|
<version>${jline.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.derby</groupId>
|
||||||
|
<artifactId>derby</artifactId>
|
||||||
|
<version>${derby.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.Authorizer;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
|
||||||
|
public class TestAu {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
// 启动server的时候需要open db
|
||||||
|
DBdao dBdao = new DBdao();
|
||||||
|
dBdao.open();
|
||||||
|
System.out.println("start server.....");
|
||||||
|
// 操作数据库信息
|
||||||
|
User user = new User("test", "test");
|
||||||
|
|
||||||
|
try {
|
||||||
|
Authorizer.createUser(user.getUserName(), user.getPassWord());
|
||||||
|
Authorizer.deleteUser(user.getUserName());
|
||||||
|
} catch (Exception e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// 关闭server的时候需要 close db
|
||||||
|
System.out.println("close the server...");
|
||||||
|
dBdao.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,285 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.RolePermission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserPermission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserRoleRel;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class AuthDao {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* if the user don't exist in the db, return true else return false
|
||||||
|
*
|
||||||
|
* @param statement
|
||||||
|
* @param user
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean addUser(Statement statement, User user) {
|
||||||
|
UserDao dao = new UserDao();
|
||||||
|
boolean state = false;
|
||||||
|
// Check the user exist or not
|
||||||
|
if (dao.getUser(statement, user.getUserName()) == null) {
|
||||||
|
dao.createUser(statement, user);
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* if the role isn't exist in the db, will return true else return false
|
||||||
|
*
|
||||||
|
* @param statement
|
||||||
|
* @param role
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean addRole(Statement statement, Role role) {
|
||||||
|
RoleDao dao = new RoleDao();
|
||||||
|
boolean state = false;
|
||||||
|
// check the user exist or not
|
||||||
|
if (dao.getRole(statement, role.getRoleName()) == null) {
|
||||||
|
dao.createRole(statement, role);
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the user and role is exist, the relation is not exist, will return true
|
||||||
|
* else return false
|
||||||
|
*
|
||||||
|
* @param statement
|
||||||
|
* @param userName
|
||||||
|
* @param roleName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean addUserRoleRel(Statement statement, String userName, String roleName) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
int userId;
|
||||||
|
int roleId;
|
||||||
|
User user = null;
|
||||||
|
Role role = null;
|
||||||
|
boolean state = false;
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null) {
|
||||||
|
if ((role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
userId = user.getId();
|
||||||
|
roleId = role.getId();
|
||||||
|
UserRoleRel userRoleRel = new UserRoleRel(userId, roleId);
|
||||||
|
|
||||||
|
if (userRoleRelDao.getUserRoleRel(statement, userRoleRel) == null) {
|
||||||
|
state = true;
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addUserPermission(Statement statement, String userName, String nodeName, int permissionId) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserPermissionDao userPermissionDao = new UserPermissionDao();
|
||||||
|
boolean state = false;
|
||||||
|
User user = null;
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null) {
|
||||||
|
int userId = user.getId();
|
||||||
|
UserPermission userPermission = new UserPermission(userId, nodeName, permissionId);
|
||||||
|
if (userPermissionDao.getUserPermission(statement, userPermission) == null) {
|
||||||
|
state = true;
|
||||||
|
userPermissionDao.createUserPermission(statement, userPermission);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addRolePermission(Statement statement, String roleName, String nodeName, int permissionId) {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
RolePermissionDao rolePermissionDao = new RolePermissionDao();
|
||||||
|
boolean state = false;
|
||||||
|
Role role = null;
|
||||||
|
if ((role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
int roleId = role.getId();
|
||||||
|
RolePermission rolePermission = new RolePermission(roleId, nodeName, permissionId);
|
||||||
|
if (rolePermissionDao.getRolePermission(statement, rolePermission) == null) {
|
||||||
|
state = true;
|
||||||
|
rolePermissionDao.createRolePermission(statement, rolePermission);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteUser(Statement statement, String userName) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
boolean state = false;
|
||||||
|
if (userDao.deleteUser(statement, userName) > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteRole(Statement statement, String roleName) {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
boolean state = false;
|
||||||
|
if (roleDao.deleteRole(statement, roleName) > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteUserRoleRel(Statement statement, String userName, String roleName) {
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
int userId;
|
||||||
|
int roleId;
|
||||||
|
User user = null;
|
||||||
|
Role role = null;
|
||||||
|
boolean state = false;
|
||||||
|
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null
|
||||||
|
&& (role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
userId = user.getId();
|
||||||
|
roleId = role.getId();
|
||||||
|
UserRoleRel userRoleRel = new UserRoleRel(userId, roleId);
|
||||||
|
if (userRoleRelDao.deleteUserRoleRel(statement, userRoleRel) > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteUserPermission(Statement statement, String userName, String nodeName, int permissionId) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserPermissionDao userPermissionDao = new UserPermissionDao();
|
||||||
|
int userId;
|
||||||
|
User user = null;
|
||||||
|
boolean state = false;
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null) {
|
||||||
|
userId = user.getId();
|
||||||
|
UserPermission userPermission = new UserPermission(userId, nodeName, permissionId);
|
||||||
|
if (userPermissionDao.deleteUserPermission(statement, userPermission) > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteRolePermission(Statement statement, String roleName, String nodeName, int permissionId) {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
RolePermissionDao rolePermissionDao = new RolePermissionDao();
|
||||||
|
Role role = null;
|
||||||
|
int roleId;
|
||||||
|
boolean state = false;
|
||||||
|
if ((role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
roleId = role.getId();
|
||||||
|
RolePermission rolePermission = new RolePermission(roleId, nodeName, permissionId);
|
||||||
|
if (rolePermissionDao.deleteRolePermission(statement, rolePermission) > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果username或者nodename不存在怎么办?
|
||||||
|
public List<User> getUsers(Statement statement) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
List<User> users = userDao.getUsers(statement);
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Role> getRoles(Statement statement) {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
List<Role> roles = roleDao.getRoles(statement);
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserRoleRel> getAllUserRoleRel(Statement statement) {
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
List<UserRoleRel> userRoleRels = userRoleRelDao.getUserRoleRels(statement);
|
||||||
|
return userRoleRels;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 返回值的问题
|
||||||
|
*/
|
||||||
|
public List<Role> getRolesByUser(Statement statement, String userName) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
// 当 user不存在的情况下是返回 size = 0,还是 null
|
||||||
|
ArrayList<Role> roles = new ArrayList<>();
|
||||||
|
User user = userDao.getUser(statement, userName);
|
||||||
|
if (user != null) {
|
||||||
|
int userId = user.getId();
|
||||||
|
List<UserRoleRel> userRoleRels = userRoleRelDao.getUserRoleRelByUser(statement, userId);
|
||||||
|
for (UserRoleRel userRoleRel : userRoleRels) {
|
||||||
|
int roleId = userRoleRel.getRoleId();
|
||||||
|
Role role = roleDao.getRole(statement, roleId);
|
||||||
|
roles.add(role);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 返回值的问题
|
||||||
|
*/
|
||||||
|
public List<UserPermission> getUserPermission(Statement statement, String userName, String nodeName) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserPermissionDao userPermissionDao = new UserPermissionDao();
|
||||||
|
List<UserPermission> userPermissions = new ArrayList<>();
|
||||||
|
// 当user 不存在的时候 是返回size = 0,还是null
|
||||||
|
User user = userDao.getUser(statement, userName);
|
||||||
|
if (user != null) {
|
||||||
|
userPermissions = userPermissionDao.getUserPermissionByUserAndNodeName(statement, user.getId(), nodeName);
|
||||||
|
}
|
||||||
|
// 返回值可能是null还是 没有结果 size = 0;
|
||||||
|
return userPermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<RolePermission> getRolePermission(Statement statement, String roleName, String nodeName) {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
RolePermissionDao rolePermissionDao = new RolePermissionDao();
|
||||||
|
List<RolePermission> rolePermissions = new ArrayList<>();
|
||||||
|
Role role = roleDao.getRole(statement, roleName);
|
||||||
|
if (role != null) {
|
||||||
|
rolePermissions = rolePermissionDao.getRolePermissionByRoleAndNodeName(statement, role.getId(), nodeName);
|
||||||
|
}
|
||||||
|
return rolePermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* All user's permission: userPermission and rolePermission
|
||||||
|
*/
|
||||||
|
public Set<Integer> getAllUserPermission(Statement statement, String userName, String nodeName) {
|
||||||
|
// permission set
|
||||||
|
Set<Integer> permissionSet = new HashSet<>();
|
||||||
|
// userpermission
|
||||||
|
List<UserPermission> userPermissions = getUserPermission(statement, userName, nodeName);
|
||||||
|
for (UserPermission userPermission : userPermissions) {
|
||||||
|
permissionSet.add(userPermission.getPermissionId());
|
||||||
|
}
|
||||||
|
// rolepermission
|
||||||
|
List<Role> roles = getRolesByUser(statement, userName);
|
||||||
|
for (Role role : roles) {
|
||||||
|
List<RolePermission> rolePermissions = getRolePermission(statement, role.getRoleName(), nodeName);
|
||||||
|
// operation add the permission into the set
|
||||||
|
for (RolePermission rolePermission : rolePermissions) {
|
||||||
|
permissionSet.add(rolePermission.getPermissionId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return permissionSet;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,355 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.AuthException;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.RolePermission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserPermission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserRoleRel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*/
|
||||||
|
public class AuthDaoWrap {
|
||||||
|
|
||||||
|
// Must init the DBdao before use this class
|
||||||
|
private Statement statement = DBdao.getStatement();
|
||||||
|
|
||||||
|
|
||||||
|
public boolean addUser(User user) {
|
||||||
|
UserDao dao = new UserDao();
|
||||||
|
boolean state = false;
|
||||||
|
// Check the user exist or not
|
||||||
|
if (dao.getUser(statement, user.getUserName()) == null) {
|
||||||
|
dao.createUser(statement, user);
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean addRole(Role role) {
|
||||||
|
RoleDao dao = new RoleDao();
|
||||||
|
boolean state = false;
|
||||||
|
// check the user exist or not
|
||||||
|
if (dao.getRole(statement, role.getRoleName()) == null) {
|
||||||
|
dao.createRole(statement, role);
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean addUserRoleRel(String userName, String roleName) throws AuthException {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
int userId;
|
||||||
|
int roleId;
|
||||||
|
User user = null;
|
||||||
|
Role role = null;
|
||||||
|
boolean state = false;
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null) {
|
||||||
|
if ((role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
userId = user.getId();
|
||||||
|
roleId = role.getId();
|
||||||
|
UserRoleRel userRoleRel = new UserRoleRel(userId, roleId);
|
||||||
|
|
||||||
|
if (userRoleRelDao.getUserRoleRel(statement, userRoleRel) == null) {
|
||||||
|
state = true;
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel);
|
||||||
|
} else {
|
||||||
|
throw new AuthException(String.format("The user of %s already has the role of %s", userName, role.getRoleName()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The role is not exist");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The user is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addUserPermission(String userName, String nodeName, int permissionId) throws AuthException {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserPermissionDao userPermissionDao = new UserPermissionDao();
|
||||||
|
boolean state = false;
|
||||||
|
User user = null;
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null) {
|
||||||
|
int userId = user.getId();
|
||||||
|
UserPermission userPermission = new UserPermission(userId, nodeName, permissionId);
|
||||||
|
if (userPermissionDao.getUserPermission(statement, userPermission) == null) {
|
||||||
|
state = true;
|
||||||
|
userPermissionDao.createUserPermission(statement, userPermission);
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The permission is exist");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The user is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addRolePermission(String roleName, String nodeName, int permissionId) throws AuthException {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
RolePermissionDao rolePermissionDao = new RolePermissionDao();
|
||||||
|
boolean state = false;
|
||||||
|
Role role = null;
|
||||||
|
if ((role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
int roleId = role.getId();
|
||||||
|
RolePermission rolePermission = new RolePermission(roleId, nodeName, permissionId);
|
||||||
|
if (rolePermissionDao.getRolePermission(statement, rolePermission) == null) {
|
||||||
|
state = true;
|
||||||
|
rolePermissionDao.createRolePermission(statement, rolePermission);
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The permission is exist");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The role is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteUser(String userName) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
boolean state = false;
|
||||||
|
if (userDao.deleteUser(statement, userName) > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteRole(String roleName) {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
boolean state = false;
|
||||||
|
if (roleDao.deleteRole(statement, roleName) > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteUserRoleRel(String userName, String roleName) throws AuthException {
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
int userId;
|
||||||
|
int roleId;
|
||||||
|
User user = null;
|
||||||
|
Role role = null;
|
||||||
|
boolean state = false;
|
||||||
|
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null) {
|
||||||
|
if ((role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
userId = user.getId();
|
||||||
|
roleId = role.getId();
|
||||||
|
UserRoleRel userRoleRel = new UserRoleRel(userId, roleId);
|
||||||
|
if (userRoleRelDao.deleteUserRoleRel(statement, userRoleRel) > 0) {
|
||||||
|
state = true;
|
||||||
|
} else {
|
||||||
|
throw new AuthException(String.format("The user of %s does not have the role of %s"), userName, role.getRoleName());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The role is not exist");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The user is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteUserPermission(String userName, String nodeName, int permissionId) throws AuthException {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserPermissionDao userPermissionDao = new UserPermissionDao();
|
||||||
|
int userId;
|
||||||
|
User user = null;
|
||||||
|
boolean state = false;
|
||||||
|
if ((user = userDao.getUser(statement, userName)) != null) {
|
||||||
|
userId = user.getId();
|
||||||
|
UserPermission userPermission = new UserPermission(userId, nodeName, permissionId);
|
||||||
|
if (userPermissionDao.deleteUserPermission(statement, userPermission) > 0) {
|
||||||
|
state = true;
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The permission is not exist");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The user is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteRolePermission(String roleName, String nodeName, int permissionId) throws AuthException {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
RolePermissionDao rolePermissionDao = new RolePermissionDao();
|
||||||
|
Role role = null;
|
||||||
|
int roleId;
|
||||||
|
boolean state = false;
|
||||||
|
if ((role = roleDao.getRole(statement, roleName)) != null) {
|
||||||
|
roleId = role.getId();
|
||||||
|
RolePermission rolePermission = new RolePermission(roleId, nodeName, permissionId);
|
||||||
|
if (rolePermissionDao.deleteRolePermission(statement, rolePermission) > 0) {
|
||||||
|
state = true;
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The permission is not exist");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The role is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User getUser(String userName, String password) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
User user = null;
|
||||||
|
user = userDao.getUser(statement, userName, password);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User getUser(String userName) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
User user = null;
|
||||||
|
user = userDao.getUser(statement, userName);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果username或者nodename不存在怎么办?
|
||||||
|
public List<User> getUsers() {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
List<User> users = userDao.getUsers(statement);
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Role> getRoles() {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
List<Role> roles = roleDao.getRoles(statement);
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserRoleRel> getAllUserRoleRel() {
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
List<UserRoleRel> userRoleRels = userRoleRelDao.getUserRoleRels(statement);
|
||||||
|
return userRoleRels;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 返回值的问题
|
||||||
|
*/
|
||||||
|
public List<Role> getRolesByUser(String userName) {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserRoleRelDao userRoleRelDao = new UserRoleRelDao();
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
// 当 user不存在的情况下是返回 size = 0,还是 null
|
||||||
|
ArrayList<Role> roles = new ArrayList<>();
|
||||||
|
User user = userDao.getUser(statement, userName);
|
||||||
|
if (user != null) {
|
||||||
|
int userId = user.getId();
|
||||||
|
List<UserRoleRel> userRoleRels = userRoleRelDao.getUserRoleRelByUser(statement, userId);
|
||||||
|
for (UserRoleRel userRoleRel : userRoleRels) {
|
||||||
|
int roleId = userRoleRel.getRoleId();
|
||||||
|
Role role = roleDao.getRole(statement, roleId);
|
||||||
|
roles.add(role);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserPermission getUserPermission(String userName, String nodeName, int permissionId) {
|
||||||
|
UserPermission userPermission = null;
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
User user = userDao.getUser(statement, userName);
|
||||||
|
if (user != null) {
|
||||||
|
int userId = user.getId();
|
||||||
|
userPermission = new UserPermission(userId, nodeName, permissionId);
|
||||||
|
UserPermissionDao userPermissionDao = new UserPermissionDao();
|
||||||
|
// userPermission will be null
|
||||||
|
userPermission = userPermissionDao.getUserPermission(statement, userPermission);
|
||||||
|
}
|
||||||
|
return userPermission;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 返回值的问题
|
||||||
|
*/
|
||||||
|
public List<UserPermission> getUserPermissions(String userName, String nodeName) throws AuthException {
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
UserPermissionDao userPermissionDao = new UserPermissionDao();
|
||||||
|
List<UserPermission> userPermissions = new ArrayList<>();
|
||||||
|
// 当user 不存在的时候 是返回size = 0,还是null
|
||||||
|
User user = userDao.getUser(statement, userName);
|
||||||
|
if (user != null) {
|
||||||
|
userPermissions = userPermissionDao.getUserPermissionByUserAndNodeName(statement, user.getId(), nodeName);
|
||||||
|
} else {
|
||||||
|
throw new AuthException("The user is not exist");
|
||||||
|
}
|
||||||
|
// 返回值可能是null还是 没有结果 size = 0;
|
||||||
|
return userPermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<RolePermission> getRolePermissions(String roleName, String nodeName) {
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
RolePermissionDao rolePermissionDao = new RolePermissionDao();
|
||||||
|
List<RolePermission> rolePermissions = new ArrayList<>();
|
||||||
|
Role role = roleDao.getRole(statement, roleName);
|
||||||
|
if (role != null) {
|
||||||
|
rolePermissions = rolePermissionDao.getRolePermissionByRoleAndNodeName(statement, role.getId(), nodeName);
|
||||||
|
}
|
||||||
|
return rolePermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* All user's permission: userPermission and rolePermission
|
||||||
|
*/
|
||||||
|
public Set<Integer> getAllUserPermissions(String userName, String nodeName) throws AuthException {
|
||||||
|
// permission set
|
||||||
|
Set<Integer> permissionSet = new HashSet<>();
|
||||||
|
// userpermission
|
||||||
|
List<UserPermission> userPermissions = getUserPermissions(userName, nodeName);
|
||||||
|
for (UserPermission userPermission : userPermissions) {
|
||||||
|
permissionSet.add(userPermission.getPermissionId());
|
||||||
|
}
|
||||||
|
// rolepermission
|
||||||
|
List<Role> roles = getRolesByUser(userName);
|
||||||
|
for (Role role : roles) {
|
||||||
|
List<RolePermission> rolePermissions = getRolePermissions(role.getRoleName(), nodeName);
|
||||||
|
// operation add the permission into the set
|
||||||
|
for (RolePermission rolePermission : rolePermissions) {
|
||||||
|
permissionSet.add(rolePermission.getPermissionId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return permissionSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean updateUserPassword(String userName, String newPassword) {
|
||||||
|
boolean state = false;
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
int change = userDao.updateUserPassword(statement, userName, newPassword);
|
||||||
|
if (change > 0) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkUserPermission(String userName, String nodeName, int permissionId) {
|
||||||
|
boolean state = false;
|
||||||
|
UserPermission userPermission = this.getUserPermission(userName, nodeName, permissionId);
|
||||||
|
if (userPermission != null) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the method without the authdao
|
||||||
|
public boolean checkUser(String userName, String password) {
|
||||||
|
boolean state = false;
|
||||||
|
User user = this.getUser(userName, password);
|
||||||
|
if (user != null) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,238 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.AuthException;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*/
|
||||||
|
public class Authorizer {
|
||||||
|
|
||||||
|
private static AuthDaoWrap authDaoWrap = new AuthDaoWrap();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check the information for login
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* @param password
|
||||||
|
* @return
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static synchronized boolean login(String username, String password) throws AuthException {
|
||||||
|
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.checkUser(username, password);
|
||||||
|
if (state == false) {
|
||||||
|
throw new AuthException("The username or the password is not correct");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add user
|
||||||
|
*
|
||||||
|
* @param username is not null or empty
|
||||||
|
* @param password is not null or empty
|
||||||
|
* @return true: add user successfully, false: add user unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean createUser(String username, String password) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
User user = new User(username, password);
|
||||||
|
if (username == null || password == null || "".equals(username) || "".equals(password)) {
|
||||||
|
throw new AuthException("Username or password can't be empty");
|
||||||
|
}
|
||||||
|
state = authDaoWrap.addUser(user);
|
||||||
|
if (state == false) {
|
||||||
|
throw new AuthException("The user is exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete user
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* @return true: delete user successfully, false: delete user unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean deleteUser(String username) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.deleteUser(username);
|
||||||
|
if (state == false) {
|
||||||
|
throw new AuthException("The user is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add permission to user
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* @param nodeName
|
||||||
|
* @param permissionId
|
||||||
|
* @return true: add permission successfully, false: add permission unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean addPmsToUser(String username, String nodeName, int permissionId) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.addUserPermission(username, nodeName, permissionId);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete permission from user
|
||||||
|
*
|
||||||
|
* @param userName
|
||||||
|
* @param nodeName
|
||||||
|
* @param permissionId
|
||||||
|
* @return true: delete permission from user successfully, false: delete permission from user unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean removePmsFromUser(String userName, String nodeName, int permissionId) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.deleteUserPermission(userName, nodeName, permissionId);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add role
|
||||||
|
*
|
||||||
|
* @param roleName
|
||||||
|
* @return true: add role successfully, false: add role unsuccessfully
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static boolean createRole(String roleName) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
Role role = new Role(roleName);
|
||||||
|
state = authDaoWrap.addRole(role);
|
||||||
|
if (state == false) {
|
||||||
|
throw new AuthException("The role is exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete role
|
||||||
|
*
|
||||||
|
* @param roleName
|
||||||
|
* @return true: delete role successfully, false: delete role unsuccessfully
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static boolean deleteRole(String roleName) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.deleteRole(roleName);
|
||||||
|
if (state == false) {
|
||||||
|
throw new AuthException("The role is not exist");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add permission to role
|
||||||
|
*
|
||||||
|
* @param roleName
|
||||||
|
* @param nodeName
|
||||||
|
* @param permissionId
|
||||||
|
* @return true: add permission to role successfully, false: add permission to role unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean addPmsToRole(String roleName, String nodeName, int permissionId) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.addRolePermission(roleName, nodeName, permissionId);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete permission from role
|
||||||
|
*
|
||||||
|
* @param roleName
|
||||||
|
* @param nodeName
|
||||||
|
* @param permissionId
|
||||||
|
* @return true: delete permission from role successfully, false: delete permission from role unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean removePmsFromRole(String roleName, String nodeName, int permissionId) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.deleteRolePermission(roleName, nodeName, permissionId);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add role to user
|
||||||
|
*
|
||||||
|
* @param roleName
|
||||||
|
* @param username
|
||||||
|
* @return true: add role to user successfully, false: add role to user unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean grantRoleToUser(String roleName, String username) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.addUserRoleRel(username, roleName);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete role from user
|
||||||
|
*
|
||||||
|
* @param roleName
|
||||||
|
* @param username
|
||||||
|
* @return true: delete role from user successfully, false: delete role from user unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean revokeRoleFromUser(String roleName, String username) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.deleteUserRoleRel(username, roleName);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the all permission of the user
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* @param nodeName
|
||||||
|
* @return
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static Set<Integer> getPermission(String username, String nodeName) throws AuthException {
|
||||||
|
Set<Integer> permissionSets = null;
|
||||||
|
permissionSets = authDaoWrap.getAllUserPermissions(username, nodeName);
|
||||||
|
return permissionSets;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modify the password
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* @param oldPassword
|
||||||
|
* @param newPassword
|
||||||
|
* @return true: update the password successfully, false: update the password unsuccessfully
|
||||||
|
* @throws AuthException
|
||||||
|
*/
|
||||||
|
public static boolean updateUserPassword(String username, String newPassword) throws AuthException {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.updateUserPassword(username, newPassword);
|
||||||
|
if (state == false) {
|
||||||
|
throw new AuthException("The username or the password is not correct");
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check the permission belong to the user
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* @param nodeName
|
||||||
|
* @param permissionId
|
||||||
|
* @return true: the user has this permission, false: the user does not have the permission
|
||||||
|
*/
|
||||||
|
public static boolean checkUserPermission(String username, String nodeName, int permissionId) {
|
||||||
|
boolean state = false;
|
||||||
|
state = authDaoWrap.checkUserPermission(username, nodeName, permissionId);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,178 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DatabaseMetaData;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfile.common.conf.TSFileDescriptor;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DBdao {
|
||||||
|
|
||||||
|
private String derbyEmbeddedDriver = "org.apache.derby.jdbc.EmbeddedDriver";
|
||||||
|
private String protocal = "jdbc:derby:";
|
||||||
|
private String DBName;
|
||||||
|
private String createOrNot = ";create=true";
|
||||||
|
private String shutdown = ";shutdown=True";
|
||||||
|
|
||||||
|
private static Connection connection = null;
|
||||||
|
private static Statement statement = null;
|
||||||
|
private PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param dBName
|
||||||
|
*/
|
||||||
|
public DBdao(String dBName) {
|
||||||
|
String path = TSFileDescriptor.getInstance().getConfig().derbyHome + File.separator + dBName;
|
||||||
|
DBName = path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBdao() {
|
||||||
|
this("derby-tsfile-db");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initDriver() {
|
||||||
|
try {
|
||||||
|
Class.forName(derbyEmbeddedDriver).newInstance();
|
||||||
|
} catch (InstantiationException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void connection() {
|
||||||
|
String url = protocal + DBName + createOrNot;
|
||||||
|
try {
|
||||||
|
connection = DriverManager.getConnection(url);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void closeConnection() {
|
||||||
|
if (connection != null) {
|
||||||
|
try {
|
||||||
|
connection.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
throw new Exception("The connection is null");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void statement() {
|
||||||
|
try {
|
||||||
|
statement = connection.createStatement();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void closeStatement() {
|
||||||
|
if (statement != null) {
|
||||||
|
try {
|
||||||
|
statement.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
throw new Exception("The statement is null");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkTableExist() {
|
||||||
|
boolean state = false;
|
||||||
|
|
||||||
|
try {
|
||||||
|
DatabaseMetaData metaData = connection.getMetaData();
|
||||||
|
ResultSet resultSet;
|
||||||
|
resultSet = metaData.getTables(null, "APP", "USERTABLE", null);
|
||||||
|
if (resultSet.next()) {
|
||||||
|
state = true;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create table;
|
||||||
|
public boolean createOriTable() {
|
||||||
|
boolean state = false;
|
||||||
|
try {
|
||||||
|
statement.executeUpdate(InitTable.createTableSql);
|
||||||
|
statement.executeUpdate(InitTable.createRoleTableSql);
|
||||||
|
statement.executeUpdate(InitTable.createUserRoleRelTableSql);
|
||||||
|
statement.executeUpdate(InitTable.creteUserPermissionTableSql);
|
||||||
|
statement.executeUpdate(InitTable.createRolePermissionTableSql);
|
||||||
|
statement.executeUpdate(InitTable.insertIntoUserToTableSql);
|
||||||
|
state = true;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getPreparedStatement() {
|
||||||
|
try {
|
||||||
|
preparedStatement = connection.prepareStatement("test");
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void closePreparedStatement() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void open() {
|
||||||
|
initDriver();
|
||||||
|
connection();
|
||||||
|
statement();
|
||||||
|
if (!checkTableExist()) {
|
||||||
|
//
|
||||||
|
createOriTable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close() {
|
||||||
|
closeStatement();
|
||||||
|
closeConnection();
|
||||||
|
// try {
|
||||||
|
// DriverManager.getConnection(protocal + shutdown);
|
||||||
|
// } catch (SQLException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Statement getStatement() {
|
||||||
|
return statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Connection getConnection() {
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class InitTable {
|
||||||
|
|
||||||
|
public static String createTableSql = "create table userTable("
|
||||||
|
+ "id INT generated always as identity(start with 1,increment by 1) not null primary key,"
|
||||||
|
+ "userName VARCHAR(20) not null unique," + "password VARCHAR(20) not null,"
|
||||||
|
+ "locked CHAR(1) check (locked='t' or locked='f')," + "validTime VARCHAR(20))";
|
||||||
|
|
||||||
|
public static String createRoleTableSql = "create table roleTable("
|
||||||
|
+ "id INT generated always as identity(start with 1, increment by 1) not null primary key,"
|
||||||
|
+ "roleName VARCHAR(20) not null unique)";
|
||||||
|
|
||||||
|
public static String createUserRoleRelTableSql = "create table userRoleRelTable("
|
||||||
|
+ "id INT generated always as identity(start with 1, increment by 1) ," + "userId INT," + "roleId INT,"
|
||||||
|
+ "constraint pk_userrolerel primary key (userId,roleId),"
|
||||||
|
+ "foreign key (userId) references usertable(id) on delete cascade,"
|
||||||
|
+ "foreign key (roleId) references roletable(id) on delete cascade)";
|
||||||
|
|
||||||
|
public static String creteUserPermissionTableSql = "create table userPermissionTable("
|
||||||
|
+ "id INT generated always as identity(start with 1,increment by 1) ," + "userId INT not null,"
|
||||||
|
+ "nodeName VARCHAR(20) not null," + "permissionId INT not null,"
|
||||||
|
+ "constraint pk_userpermission primary key (userId,nodeName,permissionId),"
|
||||||
|
+ "foreign key (userId) references usertable(id) on delete cascade)";
|
||||||
|
|
||||||
|
public static String createRolePermissionTableSql = "create table rolePermissionTable("
|
||||||
|
+ "id INT generated always as identity(start with 1, increment by 1)," + "roleId INT not null,"
|
||||||
|
+ "nodeName VARCHAR(20) not null," + "permissionId INT not null,"
|
||||||
|
+ "constraint pk_rolepermission primary key (roleId,nodeName,permissionId),"
|
||||||
|
+ "foreign key (roleId) references roleTable(id) on delete cascade)";
|
||||||
|
|
||||||
|
public static String insertIntoUserToTableSql = "insert into usertable (username,password) values('root','root')";
|
||||||
|
}
|
|
@ -0,0 +1,103 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.DBContext;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RoleDao {
|
||||||
|
|
||||||
|
public List<Role> getRoles(Statement statement) {
|
||||||
|
ArrayList<Role> arrayList = new ArrayList<>();
|
||||||
|
String sql = "select * from " + DBContext.roleTable;
|
||||||
|
|
||||||
|
try {
|
||||||
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
Role role = new Role();
|
||||||
|
int id = resultSet.getInt(1);
|
||||||
|
String roleName = resultSet.getString(2);
|
||||||
|
role.setId(id);
|
||||||
|
role.setRoleName(roleName);
|
||||||
|
arrayList.add(role);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return arrayList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Role getRole(Statement statement, String roleName) {
|
||||||
|
String sql = "select * from " + DBContext.roleTable + " where roleName=" + "'" + roleName + "'";
|
||||||
|
Role role = null;
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
int id = resultSet.getInt(1);
|
||||||
|
String name = resultSet.getString(2);
|
||||||
|
role = new Role(id, name);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return role;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Role getRole(Statement statement, int roleId) {
|
||||||
|
String sql = "select * from " + DBContext.roleTable + " where id=" + roleId;
|
||||||
|
Role role = null;
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
if (resultSet.next()) {
|
||||||
|
role = new Role(roleId, resultSet.getString(2));
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return role;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteRole(Statement statement, String roleName) {
|
||||||
|
String sql = "delete from " + DBContext.roleTable + " where roleName=" + "'" + roleName + "'";
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int createRole(Statement statement, Role role) {
|
||||||
|
String sql = "insert into " + DBContext.roleTable + " (" + "roleName" + ")" + " values('" + role.getRoleName()
|
||||||
|
+ "')";
|
||||||
|
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int updateRole(Statement statement) {
|
||||||
|
String sql = "update " + DBContext.roleTable + " set ";
|
||||||
|
int state = 0;
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.DBContext;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.RolePermission;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RolePermissionDao {
|
||||||
|
|
||||||
|
public int createRolePermission(Statement statement, RolePermission rolePermission) {
|
||||||
|
String sql = "insert into " + DBContext.rolePermission + " (roleId,nodeName,permissionId) values" + "("
|
||||||
|
+ rolePermission.getRoleId() + ",'" + rolePermission.getNodeName() + "',"
|
||||||
|
+ rolePermission.getPermissionId() + ")";
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteRolePermission(Statement statement, RolePermission rolePermission) {
|
||||||
|
String sql = "delete from " + DBContext.rolePermission + " where roleId=" + rolePermission.getRoleId() + " and "
|
||||||
|
+ "nodeName=" + "'" + rolePermission.getNodeName() + "'" + " and " + "permissionId="
|
||||||
|
+ rolePermission.getPermissionId();
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RolePermission getRolePermission(Statement statement, RolePermission rolePermission) {
|
||||||
|
String sql = "select * from " + DBContext.rolePermission + " where roleId=" + rolePermission.getRoleId()
|
||||||
|
+ " and nodeName='" + rolePermission.getNodeName() + "' and permissionId="
|
||||||
|
+ rolePermission.getPermissionId();
|
||||||
|
RolePermission permission = null;
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
if (resultSet.next()) {
|
||||||
|
permission = new RolePermission(resultSet.getInt(1), resultSet.getInt(2), resultSet.getString(3),
|
||||||
|
resultSet.getInt(4));
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<RolePermission> getRolePermissions(Statement statement) {
|
||||||
|
String sql = "select * from " + DBContext.rolePermission;
|
||||||
|
List<RolePermission> rolePermissions = new ArrayList<>();
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
RolePermission rolePermission = new RolePermission(resultSet.getInt(1), resultSet.getInt(2),
|
||||||
|
resultSet.getString(3), resultSet.getInt(4));
|
||||||
|
rolePermissions.add(rolePermission);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return rolePermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<RolePermission> getRolePermissionByRoleAndNodeName(Statement statement, int roleId, String nodeName) {
|
||||||
|
String sql = "select * from " + DBContext.rolePermission + " where roleId=" + roleId + " and nodeName='"
|
||||||
|
+ nodeName + "'";
|
||||||
|
List<RolePermission> rolePermissions = new ArrayList<>();
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
RolePermission rolePermission = new RolePermission(resultSet.getInt(1), resultSet.getInt(2),
|
||||||
|
resultSet.getString(3), resultSet.getInt(4));
|
||||||
|
rolePermissions.add(rolePermission);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return rolePermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,116 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.DBContext;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class UserDao {
|
||||||
|
|
||||||
|
public int createUser(Statement statement, User user) {
|
||||||
|
|
||||||
|
String sql = "insert into " + DBContext.userTable + " (userName,passWord) " + " values ('" + user.getUserName()
|
||||||
|
+ "','" + user.getPassWord() + "')";
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteUser(Statement statement, String userName) {
|
||||||
|
String sql = "delete from " + DBContext.userTable + " where userName=" + "'" + userName + "'";
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int updateUserPassword(Statement statement, String userName, String newPassword) {
|
||||||
|
String sql = "update " + DBContext.userTable + " set password='" + newPassword + "'" + " where username='"
|
||||||
|
+ userName + "'";
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<User> getUsers(Statement statement) {
|
||||||
|
String sql = "select * from " + DBContext.userTable;
|
||||||
|
ArrayList<User> arrayList = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
int id = resultSet.getInt(1);
|
||||||
|
String userName = resultSet.getString(2);
|
||||||
|
String passWord = resultSet.getString(3);
|
||||||
|
boolean isLock = resultSet.getBoolean(4);
|
||||||
|
String validTime = resultSet.getString(5);
|
||||||
|
User user = new User(id, userName, passWord, isLock, validTime);
|
||||||
|
arrayList.add(user);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return arrayList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User getUser(Statement statement, String userName) {
|
||||||
|
String sql = "select * from " + DBContext.userTable + " where userName=" + "'" + userName + "'";
|
||||||
|
User user = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
if (resultSet.next()) {
|
||||||
|
int id = resultSet.getInt(1);
|
||||||
|
String name = userName;
|
||||||
|
String passWord = resultSet.getString(3);
|
||||||
|
boolean isLock = resultSet.getBoolean(4);
|
||||||
|
String validTime = resultSet.getString(5);
|
||||||
|
user = new User(id, name, passWord, isLock, validTime);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public User getUser(Statement statement, String userName, String password) {
|
||||||
|
User user = null;
|
||||||
|
String sql = "select * from " + DBContext.userTable + " where username='" + userName + "'" + " and password='"
|
||||||
|
+ password + "'";
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
if (resultSet.next()) {
|
||||||
|
user = new User();
|
||||||
|
user.setId(resultSet.getInt(1));
|
||||||
|
user.setUserName(resultSet.getString(2));
|
||||||
|
user.setPassWord(resultSet.getString(3));
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.DBContext;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserPermission;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class UserPermissionDao {
|
||||||
|
|
||||||
|
public int createUserPermission(Statement statement, UserPermission userPermission) {
|
||||||
|
String sql = "insert into " + DBContext.userPermission + " (userId,nodeName,permissionId)" + " values("
|
||||||
|
+ userPermission.getUserId() + ",'" + userPermission.getNodeName() + "',"
|
||||||
|
+ userPermission.getPermissionId() + ")";
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteUserPermission(Statement statement, UserPermission userPermission) {
|
||||||
|
String sql = "delete from " + DBContext.userPermission + " where userId=" + userPermission.getUserId() + " and "
|
||||||
|
+ "nodeName=" + "'" + userPermission.getNodeName() + "'" + " and " + "permissionId="
|
||||||
|
+ userPermission.getPermissionId();
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserPermission getUserPermission(Statement statement, UserPermission userPermission) {
|
||||||
|
String sql = "select * from " + DBContext.userPermission + " where userId=" + userPermission.getUserId()
|
||||||
|
+ " and " + "nodeName=" + "'" + userPermission.getNodeName() + "'" + " and " + "permissionId="
|
||||||
|
+ userPermission.getPermissionId();
|
||||||
|
UserPermission permission = null;
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
if (resultSet.next()) {
|
||||||
|
permission = new UserPermission(resultSet.getInt(1), resultSet.getInt(2), resultSet.getString(3),
|
||||||
|
resultSet.getInt(4));
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
public ArrayList<UserPermission> getUserPermissionByUserAndNodeName(Statement statement, int userId,
|
||||||
|
String nodeName) {
|
||||||
|
ArrayList<UserPermission> userPermissions = new ArrayList<>();
|
||||||
|
String sql = "select * from " + DBContext.userPermission + " where userId=" + userId + " and " + "nodeName="
|
||||||
|
+ "'" + nodeName + "'";
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
UserPermission userPermission = new UserPermission(resultSet.getInt(1), resultSet.getInt(2),
|
||||||
|
resultSet.getString(3), resultSet.getInt(4));
|
||||||
|
userPermissions.add(userPermission);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return userPermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserPermission> getUserPermissions(Statement statement) {
|
||||||
|
ArrayList<UserPermission> userPermissions = new ArrayList<>();
|
||||||
|
String sql = "select * from " + DBContext.userPermission;
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
UserPermission userPermission = new UserPermission(resultSet.getInt(1), resultSet.getInt(2),
|
||||||
|
resultSet.getString(3), resultSet.getInt(4));
|
||||||
|
userPermissions.add(userPermission);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return userPermissions;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,117 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.dao;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.DBContext;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserRoleRel;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class UserRoleRelDao {
|
||||||
|
|
||||||
|
public List<UserRoleRel> getUserRoleRels(Statement statement) {
|
||||||
|
String sql = "select * from " + DBContext.userRoleRel;
|
||||||
|
ArrayList<UserRoleRel> arrayList = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
|
||||||
|
int id = resultSet.getInt(1);
|
||||||
|
int userId = resultSet.getInt(2);
|
||||||
|
int roleId = resultSet.getInt(3);
|
||||||
|
UserRoleRel rel = new UserRoleRel(id, userId, roleId);
|
||||||
|
arrayList.add(rel);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return arrayList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserRoleRel getUserRoleRel(Statement statement, UserRoleRel rel) {
|
||||||
|
String sql = "select * from " + DBContext.userRoleRel + " where userId=" + rel.getUserId() + " and roleId="
|
||||||
|
+ rel.getRoleId();
|
||||||
|
UserRoleRel userRoleRel = null;
|
||||||
|
ResultSet resultSet;
|
||||||
|
try {
|
||||||
|
resultSet = statement.executeQuery(sql);
|
||||||
|
if (resultSet.next()) {
|
||||||
|
userRoleRel = new UserRoleRel(resultSet.getInt(1), resultSet.getInt(2), resultSet.getInt(3));
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return userRoleRel;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserRoleRel> getUserRoleRelByUser(Statement statement, int userId) {
|
||||||
|
String sql = "select * from " + DBContext.userRoleRel + " where userId = " + userId;
|
||||||
|
ArrayList<UserRoleRel> arrayList = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
int id = resultSet.getInt(1);
|
||||||
|
int roleId = resultSet.getInt(3);
|
||||||
|
UserRoleRel rel = new UserRoleRel(id, userId, roleId);
|
||||||
|
arrayList.add(rel);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return arrayList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserRoleRel> getUserRoleRelByRole(Statement statement, int roleId) {
|
||||||
|
String sql = "select * from " + DBContext.userRoleRel + " where roleId=" + roleId;
|
||||||
|
ArrayList<UserRoleRel> arrayList = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
while (resultSet.next()) {
|
||||||
|
int id = resultSet.getInt(1);
|
||||||
|
int userId = resultSet.getInt(2);
|
||||||
|
UserRoleRel rel = new UserRoleRel(id, userId, roleId);
|
||||||
|
arrayList.add(rel);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return arrayList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int createUserRoleRel(Statement statement, UserRoleRel rel) {
|
||||||
|
String sql = "insert into " + DBContext.userRoleRel + " (userId,roleId) values" + "(" + rel.getUserId() + ","
|
||||||
|
+ rel.getRoleId() + ")";
|
||||||
|
int state = 0;
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteUserRoleRel(Statement statement, UserRoleRel rel) {
|
||||||
|
String sql = "delete from " + DBContext.userRoleRel + " where userId=" + rel.getUserId() + " and roleId="
|
||||||
|
+ rel.getRoleId();
|
||||||
|
int state = 0;
|
||||||
|
|
||||||
|
try {
|
||||||
|
state = statement.executeUpdate(sql);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The exception for authority model
|
||||||
|
* Created by liukun on 17/1/4.
|
||||||
|
*/
|
||||||
|
public class AuthException extends Exception {
|
||||||
|
public AuthException(String format, String userName, String roleName) {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected AuthException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
|
||||||
|
super(message, cause, enableSuppression, writableStackTrace);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DBContext {
|
||||||
|
|
||||||
|
public static final String userTable = "userTable";
|
||||||
|
public static final String roleTable = "roleTable";
|
||||||
|
public static final String userRoleRel = "userRoleRelTable";
|
||||||
|
public static final String userPermission = "userPermissionTable";
|
||||||
|
public static final String rolePermission = "rolePermissionTable";
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Permission {
|
||||||
|
|
||||||
|
public static final int CREATE = 0;
|
||||||
|
public static final int INSERT = 1;
|
||||||
|
public static final int MODIFY = 2;
|
||||||
|
public static final int READ = 3;
|
||||||
|
public static final int DELETE = 4;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Role {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private String roleName;
|
||||||
|
/**
|
||||||
|
* @param id
|
||||||
|
* @param roleName
|
||||||
|
*/
|
||||||
|
public Role(int id, String roleName) {
|
||||||
|
this.id = id;
|
||||||
|
this.roleName = roleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Role(String roleName) {
|
||||||
|
this.roleName = roleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Role(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id the id to set
|
||||||
|
*/
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the roleName
|
||||||
|
*/
|
||||||
|
public String getRoleName() {
|
||||||
|
return roleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param roleName the roleName to set
|
||||||
|
*/
|
||||||
|
public void setRoleName(String roleName) {
|
||||||
|
this.roleName = roleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RolePermission {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private int roleId;
|
||||||
|
private String nodeName;
|
||||||
|
private int permissionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id
|
||||||
|
* @param roleId
|
||||||
|
* @param permissionId
|
||||||
|
*/
|
||||||
|
public RolePermission(int id, int roleId, String nodeName, int permissionId) {
|
||||||
|
this.id = id;
|
||||||
|
this.roleId = roleId;
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
this.permissionId = permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RolePermission(int roleId, String nodeName, int permissionId) {
|
||||||
|
this.roleId = roleId;
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
this.permissionId = permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RolePermission() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id
|
||||||
|
* the id to set
|
||||||
|
*/
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the nodeName
|
||||||
|
*/
|
||||||
|
public String getNodeName() {
|
||||||
|
return nodeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param nodeName
|
||||||
|
* the nodeName to set
|
||||||
|
*/
|
||||||
|
public void setNodeName(String nodeName) {
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the roleId
|
||||||
|
*/
|
||||||
|
public int getRoleId() {
|
||||||
|
return roleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param roleId
|
||||||
|
* the roleId to set
|
||||||
|
*/
|
||||||
|
public void setRoleId(int roleId) {
|
||||||
|
this.roleId = roleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the permissionId
|
||||||
|
*/
|
||||||
|
public int getPermissionId() {
|
||||||
|
return permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param permissionId
|
||||||
|
* the permissionId to set
|
||||||
|
*/
|
||||||
|
public void setPermissionId(int permissionId) {
|
||||||
|
this.permissionId = permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class User {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private String userName;
|
||||||
|
private String passWord;
|
||||||
|
private boolean locked;//true - t false - f
|
||||||
|
private String validTime;
|
||||||
|
/**
|
||||||
|
* @param id
|
||||||
|
* @param userName
|
||||||
|
* @param passWord
|
||||||
|
* @param isLock
|
||||||
|
* @param validTime
|
||||||
|
*/
|
||||||
|
public User(int id, String userName, String passWord, boolean isLock, String validTime) {
|
||||||
|
this.id = id;
|
||||||
|
this.userName = userName;
|
||||||
|
this.passWord = passWord;
|
||||||
|
this.locked = isLock;
|
||||||
|
this.validTime = validTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public User(String userName, String passWord) {
|
||||||
|
this.userName = userName;
|
||||||
|
this.passWord = passWord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id the id to set
|
||||||
|
*/
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the userName
|
||||||
|
*/
|
||||||
|
public String getUserName() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param userName the userName to set
|
||||||
|
*/
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the passWord
|
||||||
|
*/
|
||||||
|
public String getPassWord() {
|
||||||
|
return passWord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param passWord the passWord to set
|
||||||
|
*/
|
||||||
|
public void setPassWord(String passWord) {
|
||||||
|
this.passWord = passWord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the isLock
|
||||||
|
*/
|
||||||
|
public boolean isLock() {
|
||||||
|
return locked;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param isLock the isLock to set
|
||||||
|
*/
|
||||||
|
public void setLock(boolean isLock) {
|
||||||
|
this.locked = isLock;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the validTime
|
||||||
|
*/
|
||||||
|
public String getValidTime() {
|
||||||
|
return validTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param validTime the validTime to set
|
||||||
|
*/
|
||||||
|
public void setValidTime(String validTime) {
|
||||||
|
this.validTime = validTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,98 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class UserPermission {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private int userId;
|
||||||
|
private String nodeName;
|
||||||
|
private int permissionId;// 权限的值必须是permission中的,在数据库中使用check方法来指定
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id
|
||||||
|
* @param userId
|
||||||
|
* @param nodeName
|
||||||
|
* @param permissionId
|
||||||
|
*/
|
||||||
|
public UserPermission(int id, int userId, String nodeName, int permissionId) {
|
||||||
|
this.id = id;
|
||||||
|
this.userId = userId;
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
this.permissionId = permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserPermission() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserPermission(int userId, String nodeName, int permissionId) {
|
||||||
|
this.userId = userId;
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
this.permissionId = permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id
|
||||||
|
* the id to set
|
||||||
|
*/
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the userId
|
||||||
|
*/
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param userId
|
||||||
|
* the userId to set
|
||||||
|
*/
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the nodeName
|
||||||
|
*/
|
||||||
|
public String getNodeName() {
|
||||||
|
return nodeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param nodeName
|
||||||
|
* the nodeName to set
|
||||||
|
*/
|
||||||
|
public void setNodeName(String nodeName) {
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the permissionId
|
||||||
|
*/
|
||||||
|
public int getPermissionId() {
|
||||||
|
return permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param permissionId
|
||||||
|
* the permissionId to set
|
||||||
|
*/
|
||||||
|
public void setPermissionId(int permissionId) {
|
||||||
|
this.permissionId = permissionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liukun
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class UserRoleRel {
|
||||||
|
private int id;
|
||||||
|
private int userId;
|
||||||
|
private int roleId;
|
||||||
|
/**
|
||||||
|
* @param id
|
||||||
|
* @param userId
|
||||||
|
* @param roleId
|
||||||
|
*/
|
||||||
|
public UserRoleRel(int id, int userId, int roleId) {
|
||||||
|
this.id = id;
|
||||||
|
this.userId = userId;
|
||||||
|
this.roleId = roleId;
|
||||||
|
}
|
||||||
|
public UserRoleRel(int userId,int roleId){
|
||||||
|
this.userId = userId;
|
||||||
|
this.roleId = roleId;
|
||||||
|
}
|
||||||
|
public UserRoleRel() {
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param id the id to set
|
||||||
|
*/
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the userId
|
||||||
|
*/
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param userId the userId to set
|
||||||
|
*/
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the roleId
|
||||||
|
*/
|
||||||
|
public int getRoleId() {
|
||||||
|
return roleId;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param roleId the roleId to set
|
||||||
|
*/
|
||||||
|
public void setRoleId(int roleId) {
|
||||||
|
this.roleId = roleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,229 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.SQLTimeoutException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
import jline.console.ConsoleReader;
|
||||||
|
|
||||||
|
public class Client {
|
||||||
|
|
||||||
|
private static final int MAX_PRINT_ROW_COUNT = 1000;
|
||||||
|
|
||||||
|
public static void main(String[] args) throws ClassNotFoundException, SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
Class.forName("com.corp.tsfile.jdbc.TsfileDriver");
|
||||||
|
Connection connection = null;
|
||||||
|
ConsoleReader reader = null;
|
||||||
|
String s;
|
||||||
|
boolean printToConsole = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
reader = new ConsoleReader();
|
||||||
|
String[] argsName = new String[] { "-host", "-port", "-u", "-print" };
|
||||||
|
String[] argv = new String[argsName.length];
|
||||||
|
|
||||||
|
if (args.length < 3) {
|
||||||
|
System.out.println("Useage : login -host<host> -port<port> -u<username>");
|
||||||
|
System.out.println("e.g. : login -host127.0.0.1 -port6667 -u<UserA>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < args.length; i++) {
|
||||||
|
String v = args[i].trim();
|
||||||
|
for (int j = 0; j < argsName.length; j++) {
|
||||||
|
if (v.startsWith(argsName[j])) {
|
||||||
|
argv[j] = v.substring(argsName[j].length()).trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argv[3] != null && !argv[3].equals("")) {
|
||||||
|
if (argv[3].toLowerCase().equals("true") || argv[3].toLowerCase().equals("false")) {
|
||||||
|
printToConsole = Boolean.valueOf(argv[3]);
|
||||||
|
} else {
|
||||||
|
System.out.println("-print args error.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String password = reader.readLine("Password: ", ' ');
|
||||||
|
try {
|
||||||
|
connection = DriverManager.getConnection("jdbc:tsfile://" + argv[0] + ":" + argv[1] + "/x", argv[2],
|
||||||
|
password);
|
||||||
|
} catch (SQLTimeoutException e){
|
||||||
|
System.out.println("Connect Timeout: " + e.getMessage());
|
||||||
|
return;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Console Input Error:" + e.getMessage());
|
||||||
|
} catch (Exception e){
|
||||||
|
System.out.println("Unknown Error: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(" _______________________________.___.__ \n"
|
||||||
|
+ " \\__ ___/ _____/\\_ _____/| | | ____ \n"
|
||||||
|
+ " | | \\_____ \\ | __) | | | _/ __ \\ \n"
|
||||||
|
+ " | | / \\ | \\ | | |_\\ ___/ \n"
|
||||||
|
+ " |____| /_______ / \\___ / |___|____/\\___ > version 0.0.1\n"
|
||||||
|
+ " \\/ \\/ \\/ \n");
|
||||||
|
// Login in and create connection first
|
||||||
|
|
||||||
|
System.out.println("login successfully");
|
||||||
|
// connection =
|
||||||
|
// DriverManager.getConnection("jdbc:tsfile://127.0.0.1:6667/x",
|
||||||
|
// "User", "HAHAH");
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (true) {
|
||||||
|
s = reader.readLine("[TSFile: ] > ");
|
||||||
|
if (s.toLowerCase().trim().equals("quit")) {
|
||||||
|
System.out.println(">> TSFile Quit");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (s.toLowerCase().trim().equals("show metadata")){
|
||||||
|
System.out.println(connection.getMetaData());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String[] cmds = s.split(";");
|
||||||
|
for (int i = 0; i < cmds.length; i++) {
|
||||||
|
String cmd = cmds[i];
|
||||||
|
if (cmd != null && !cmd.trim().equals("")) {
|
||||||
|
Statement statement = connection.createStatement();
|
||||||
|
statement.setFetchSize(500000);
|
||||||
|
try {
|
||||||
|
boolean hasResultSet = statement.execute(cmd.trim());
|
||||||
|
if (hasResultSet) {
|
||||||
|
ResultSet resultSet = statement.getResultSet();
|
||||||
|
output(resultSet, printToConsole);
|
||||||
|
}
|
||||||
|
statement.close();
|
||||||
|
System.out.println("Execute successfully.");
|
||||||
|
} catch (TsfileSQLException e) {
|
||||||
|
System.out.println("statement error: " + e.getMessage());
|
||||||
|
} catch (Exception e){
|
||||||
|
System.out.println("Connection error. " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
connection.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void output(ResultSet res, boolean printToConsole) {
|
||||||
|
try {
|
||||||
|
File file = new File("src/main/resources/output/queryRes.csv");
|
||||||
|
if (!file.exists()) {
|
||||||
|
if (!file.getParentFile().exists()) {
|
||||||
|
file.getParentFile().mkdirs();
|
||||||
|
}
|
||||||
|
file.createNewFile();
|
||||||
|
}
|
||||||
|
FileWriter fw = new FileWriter(file);
|
||||||
|
// BufferedWriter bw = new BufferedWriter(fw);
|
||||||
|
int cnt = 0;
|
||||||
|
int colCount = res.getMetaData().getColumnCount();
|
||||||
|
// //Output Labels
|
||||||
|
String format = "|%15s|";
|
||||||
|
String blockLine = "";
|
||||||
|
if (printToConsole) {
|
||||||
|
// System.out.printf("+---------------+");
|
||||||
|
// for(int i = 0 ; i < res.mapRet.keySet().size(); i++){
|
||||||
|
// System.out.printf("---------------+");
|
||||||
|
// }
|
||||||
|
// System.out.printf("\n");
|
||||||
|
//
|
||||||
|
// System.out.printf("|%15s|","Timestamp");
|
||||||
|
// for(String name : res.mapRet.keySet()){
|
||||||
|
// System.out.printf("%15s|", name.split(",")[1]);
|
||||||
|
// }
|
||||||
|
// System.out.printf("\n");
|
||||||
|
//
|
||||||
|
|
||||||
|
int maxv = 15;
|
||||||
|
for (int i = 0; i < colCount; i++) {
|
||||||
|
int len = res.getMetaData().getColumnLabel(i).length();
|
||||||
|
maxv = maxv < len ? len : maxv;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < maxv; i++) {
|
||||||
|
blockLine += "-";
|
||||||
|
}
|
||||||
|
System.out.printf("+" + blockLine + "+");
|
||||||
|
for (int i = 0; i < colCount - 1; i++) {
|
||||||
|
System.out.printf(blockLine + "+");
|
||||||
|
}
|
||||||
|
System.out.printf("\n");
|
||||||
|
|
||||||
|
format = "%" + maxv + "s|";
|
||||||
|
System.out.printf("|" + format, "Timestamp");
|
||||||
|
for (int i = 0; i < colCount - 1; i++) {
|
||||||
|
System.out.printf(format, res.getMetaData().getColumnLabel(i + 1));
|
||||||
|
}
|
||||||
|
System.out.printf("\n");
|
||||||
|
|
||||||
|
System.out.printf("+" + blockLine + "+");
|
||||||
|
for (int i = 0; i < colCount - 1; i++) {
|
||||||
|
System.out.printf(blockLine + "+");
|
||||||
|
}
|
||||||
|
System.out.printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Output values
|
||||||
|
while (res.next()) {
|
||||||
|
StringBuilder line = new StringBuilder();
|
||||||
|
line.append(String.valueOf(res.getString(0)));
|
||||||
|
|
||||||
|
if (printToConsole && cnt < MAX_PRINT_ROW_COUNT) {
|
||||||
|
System.out.printf("|" + format, String.valueOf(res.getString(0)));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 1; i < colCount; i++) {
|
||||||
|
line.append(",");
|
||||||
|
line.append(res.getString(i));
|
||||||
|
if (printToConsole && cnt < MAX_PRINT_ROW_COUNT) {
|
||||||
|
System.out.printf(format, String.valueOf(res.getString(i)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (printToConsole && cnt < MAX_PRINT_ROW_COUNT) {
|
||||||
|
System.out.printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// bw.write(line.toString());
|
||||||
|
// bw.newLine();
|
||||||
|
cnt++;
|
||||||
|
|
||||||
|
if (!printToConsole && cnt % 10000 == 0) {
|
||||||
|
System.out.println(cnt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (printToConsole) {
|
||||||
|
System.out.printf("+" + blockLine + "+");
|
||||||
|
for (int i = 0; i < colCount - 1; i++) {
|
||||||
|
System.out.printf(blockLine + "+");
|
||||||
|
}
|
||||||
|
System.out.printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// bw.close();
|
||||||
|
System.out.println("Result size : " + cnt);
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DatabaseMetaData;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
public class Demo {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws SQLException, ClassNotFoundException {
|
||||||
|
Class.forName("com.corp.tsfile.jdbc.TsfileDriver");
|
||||||
|
Connection connection = DriverManager.getConnection("jdbc:tsfile://127.0.0.1:6667/", "root", "root");
|
||||||
|
// Statement statement = connection.createStatement();
|
||||||
|
// statement.addBatch("123");
|
||||||
|
// statement.addBatch("321");
|
||||||
|
// int[] resultSet = statement.executeBatch();
|
||||||
|
// System.out.println(resultSet.length);
|
||||||
|
// statement.clearBatch();
|
||||||
|
// connection.close();
|
||||||
|
//
|
||||||
|
// Connection connection = DriverManager.getConnection("jdbc:tsfile://192.168.130.15:6667/","root","root");
|
||||||
|
DatabaseMetaData databaseMetaData = connection.getMetaData();
|
||||||
|
System.out.println("show metadata");
|
||||||
|
System.out.println(databaseMetaData);
|
||||||
|
// get all columns
|
||||||
|
ResultSet resultSet = databaseMetaData.getColumns(null, null, "car", null);
|
||||||
|
while(resultSet.next()){
|
||||||
|
System.out.println(String.format("column %s, type %s", resultSet.getString("COLUMN_NAME"), resultSet.getString("COLUMN_TYPE")));
|
||||||
|
}
|
||||||
|
// get all delta object
|
||||||
|
resultSet = databaseMetaData.getColumns(null, null, null, "car");
|
||||||
|
while(resultSet.next()){
|
||||||
|
System.out.println(String.format("delta object %s", resultSet.getString("DELTA_OBJECT")));
|
||||||
|
}
|
||||||
|
connection.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,137 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.lang.management.ManagementFactory;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
import com.sun.management.OperatingSystemMXBean;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfile.file.metadata.enums.TSDataType;
|
||||||
|
import cn.edu.thu.tsfile.file.metadata.enums.TSEncoding;
|
||||||
|
|
||||||
|
@SuppressWarnings("restriction")
|
||||||
|
public class Generator {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(Generator.class);
|
||||||
|
|
||||||
|
private String deviceName;
|
||||||
|
private OperatingSystemMXBean osmb;
|
||||||
|
|
||||||
|
private final String createTimeSeriesTemplate = "create timeseries root.%s.laptop.%s with datatype=%s,encoding=%s";
|
||||||
|
private final String insertDataTemplate = "insert into root.%s.laptop.%s values(%s,%s)";
|
||||||
|
private final String queryDataTemplate = "select laptop.* from root.%s where time < %s";
|
||||||
|
private final String setFileLevelTemplate = "set storage group to root.%s.laptop";
|
||||||
|
|
||||||
|
private final long SLEEP_INTERVAL = 5000;
|
||||||
|
|
||||||
|
// private final String JDBC_SERVER_URL = "jdbc:tsfile://127.0.0.1:6667/x";
|
||||||
|
private final String JDBC_SERVER_URL = "jdbc:tsfile://192.168.130.15:6667/x";
|
||||||
|
|
||||||
|
|
||||||
|
public Generator(String deviceName) {
|
||||||
|
this.deviceName = deviceName;
|
||||||
|
this.osmb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void start() throws ClassNotFoundException, SQLException {
|
||||||
|
Class.forName("com.corp.tsfile.jdbc.TsfileDriver");
|
||||||
|
createTimeSeriesMetadata();
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
insertData();
|
||||||
|
Thread.sleep(SLEEP_INTERVAL);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOGGER.error("tsfile-jdbc Generator: insertData failed because ", e);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
LOGGER.error("tsfile-jdbc Generator: thread sleep failed because ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void test() throws SQLException, ClassNotFoundException {
|
||||||
|
Class.forName("com.corp.tsfile.jdbc.TsfileDriver");
|
||||||
|
Connection connection = DriverManager.getConnection(JDBC_SERVER_URL, "root", "root");
|
||||||
|
Statement statement = connection.createStatement();
|
||||||
|
ResultSet res = statement.executeQuery(String.format(queryDataTemplate, deviceName, getCurretnTimestamp()));
|
||||||
|
Client.output(res, true);
|
||||||
|
connection.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createTimeSeriesMetadata() throws SQLException {
|
||||||
|
List<String> sqls = new ArrayList<>();
|
||||||
|
sqls.add(String.format(createTimeSeriesTemplate, deviceName, "cpu", TSDataType.FLOAT.toString(),
|
||||||
|
TSEncoding.RLE.toString()));
|
||||||
|
sqls.add(String.format(createTimeSeriesTemplate, deviceName, "memory", TSDataType.INT64.toString(),
|
||||||
|
TSEncoding.RLE.toString()));
|
||||||
|
sqls.add(String.format(setFileLevelTemplate, deviceName));
|
||||||
|
executeSQL(sqls);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void insertData() throws SQLException {
|
||||||
|
List<String> sqls = new ArrayList<>();
|
||||||
|
String timestamp = String.valueOf(getCurretnTimestamp());
|
||||||
|
sqls.add(String.format(insertDataTemplate, deviceName, "cpu", timestamp, getCpuRatio()));
|
||||||
|
sqls.add(String.format(insertDataTemplate, deviceName, "memory", timestamp, getFreePhysicalMemorySize()));
|
||||||
|
executeSQL(sqls);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executeSQL(List<String> sqls) throws SQLException {
|
||||||
|
Connection connection = null;
|
||||||
|
try {
|
||||||
|
connection = DriverManager.getConnection(JDBC_SERVER_URL, "root", "root");
|
||||||
|
Statement statement = connection.createStatement();
|
||||||
|
for (String sql : sqls) {
|
||||||
|
try {
|
||||||
|
statement.execute(sql);
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.error("tsfile-jdbc Generator: execute {} failed!", sql, e);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
LOGGER.info("tsfile-jdbc Generator: execute {} successfully!", sql);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOGGER.error("tsfile-jdbc Generator: fail to execute {} because ", sqls, e);
|
||||||
|
} finally {
|
||||||
|
if (connection != null) {
|
||||||
|
connection.close();
|
||||||
|
connection = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCpuRatio() {
|
||||||
|
double cpuRatio = osmb.getSystemCpuLoad() * 100;
|
||||||
|
if (cpuRatio < 0 || cpuRatio > 100) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
return String.format("%.2f", cpuRatio);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getFreePhysicalMemorySize() {
|
||||||
|
long sizeFree = osmb.getFreePhysicalMemorySize();
|
||||||
|
return sizeFree > 0 ? String.valueOf(sizeFree) : "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getCurretnTimestamp() {
|
||||||
|
return String.valueOf(System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws ClassNotFoundException, SQLException, InterruptedException {
|
||||||
|
Generator demo = new Generator("caogaofei_pc");
|
||||||
|
// insert data
|
||||||
|
demo.start();
|
||||||
|
|
||||||
|
// query data
|
||||||
|
// demo.test();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
public class TsfileConfig {
|
||||||
|
/**
|
||||||
|
* The required prefix for the connection URL.
|
||||||
|
*/
|
||||||
|
public static final String TSFILE_URL_PREFIX = "jdbc:tsfile://";
|
||||||
|
|
||||||
|
public static final String TSFILE_DEFAULT_HOST = "localhost";
|
||||||
|
/**
|
||||||
|
* If host is provided, without a port.
|
||||||
|
*/
|
||||||
|
public static final int TSFILE_DEFAULT_PORT = 8888;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tsfile's default series name
|
||||||
|
*/
|
||||||
|
public static final String DEFAULT_SERIES_NAME = "default";
|
||||||
|
|
||||||
|
public static final String URI_JDBC_PREFIX = "jdbc:";
|
||||||
|
|
||||||
|
public static final String URI_TSFILE_PREFIX = "tsfile:";
|
||||||
|
|
||||||
|
public static final int DEFAULT_FETCH_SIZE = 1000;
|
||||||
|
|
||||||
|
public static final String AUTH_USER = "user";
|
||||||
|
public static final String DEFAULT_USER = "user";
|
||||||
|
|
||||||
|
public static final String AUTH_PASSWORD = "password";
|
||||||
|
public static final String DEFALUT_PASSWORD = "password";
|
||||||
|
}
|
|
@ -0,0 +1,454 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationHandler;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.lang.reflect.Proxy;
|
||||||
|
import java.sql.Array;
|
||||||
|
import java.sql.Blob;
|
||||||
|
import java.sql.CallableStatement;
|
||||||
|
import java.sql.Clob;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DatabaseMetaData;
|
||||||
|
import java.sql.NClob;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLClientInfoException;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.SQLWarning;
|
||||||
|
import java.sql.SQLXML;
|
||||||
|
import java.sql.Savepoint;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.sql.Struct;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.protocol.TBinaryProtocol;
|
||||||
|
import org.apache.thrift.transport.TSocket;
|
||||||
|
import org.apache.thrift.transport.TTransport;
|
||||||
|
import org.apache.thrift.transport.TTransportException;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSIService;
|
||||||
|
import cn.edu.thu.tsfiledb.metadata.ColumnSchema;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCloseSessionReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSFetchMetadataReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSFetchMetadataResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSOpenSessionReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSOpenSessionResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TS_SessionHandle;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
public class TsfileConnection implements Connection {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(TsfileConnection.class);
|
||||||
|
private TsfileConnectionParams params;
|
||||||
|
private boolean isClosed = true;
|
||||||
|
private SQLWarning warningChain = null;
|
||||||
|
private TTransport transport;
|
||||||
|
private TSIService.Iface client = null;
|
||||||
|
private TS_SessionHandle sessionHandle = null;
|
||||||
|
private final List<TSProtocolVersion> supportedProtocols = new LinkedList<TSProtocolVersion>();
|
||||||
|
// private int loginTimeout = 0;
|
||||||
|
private TSProtocolVersion protocol;
|
||||||
|
|
||||||
|
public TsfileConnection(String url, Properties info) throws SQLException, TTransportException {
|
||||||
|
if (url == null) {
|
||||||
|
throw new TsfileURLException("Input url cannot be null");
|
||||||
|
}
|
||||||
|
params = Utils.parseURL(url, info);
|
||||||
|
|
||||||
|
supportedProtocols.add(TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1);
|
||||||
|
|
||||||
|
openTransport();
|
||||||
|
|
||||||
|
client = new TSIService.Client(new TBinaryProtocol(transport));
|
||||||
|
// open client session
|
||||||
|
openSession();
|
||||||
|
|
||||||
|
// Wrap the client with a thread-safe proxy to serialize the RPC calls
|
||||||
|
client = newSynchronizedClient(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWrapperFor(Class<?> arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T unwrap(Class<T> arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void abort(Executor arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearWarnings() throws SQLException {
|
||||||
|
warningChain = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() throws SQLException {
|
||||||
|
if (isClosed)
|
||||||
|
return;
|
||||||
|
TSCloseSessionReq req = new TSCloseSessionReq(sessionHandle);
|
||||||
|
try {
|
||||||
|
client.CloseSession(req);
|
||||||
|
} catch (TException e) {
|
||||||
|
throw new SQLException("Error occurs when closing session at server", e);
|
||||||
|
} finally {
|
||||||
|
isClosed = true;
|
||||||
|
if (transport != null)
|
||||||
|
transport.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void commit() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Array createArrayOf(String arg0, Object[] arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Blob createBlob() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Clob createClob() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NClob createNClob() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SQLXML createSQLXML() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement createStatement() throws SQLException {
|
||||||
|
if (isClosed) {
|
||||||
|
throw new SQLException("Cannot create statement because connection is closed");
|
||||||
|
}
|
||||||
|
return new TsfileStatement(this, client, sessionHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
|
||||||
|
if (resultSetConcurrency != ResultSet.CONCUR_READ_ONLY) {
|
||||||
|
throw new SQLException(String.format("Statement with resultset concurrency %d is not supported", resultSetConcurrency));
|
||||||
|
}
|
||||||
|
if (resultSetType == ResultSet.TYPE_SCROLL_SENSITIVE) {
|
||||||
|
throw new SQLException(String.format("Statement with resultset type %d is not supported", resultSetType));
|
||||||
|
}
|
||||||
|
return new TsfileStatement(this, client, sessionHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement createStatement(int arg0, int arg1, int arg2) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Struct createStruct(String arg0, Object[] arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getAutoCommit() throws SQLException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCatalog() throws SQLException {
|
||||||
|
return "no cata log";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Properties getClientInfo() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getClientInfo(String arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getHoldability() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DatabaseMetaData getMetaData() throws SQLException {
|
||||||
|
if (isClosed) {
|
||||||
|
throw new SQLException("Cannot create statement because connection is closed");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
TSFetchMetadataResp resp = client.FetchMetadata(new TSFetchMetadataReq());
|
||||||
|
Utils.verifySuccess(resp.getStatus());
|
||||||
|
Map<String, List<ColumnSchema>> seriesMap = Utils.convertAllSchema(resp.getSeriesMap());
|
||||||
|
Map<String, List<String>> deltaObjectMap = resp.getDeltaObjectMap();
|
||||||
|
String metadataInJson = resp.getMetadataInJson();
|
||||||
|
return new TsfileDatabaseMetadata(this, seriesMap, deltaObjectMap, metadataInJson);
|
||||||
|
} catch (TException e) {
|
||||||
|
throw new SQLException("Fail to connect to server when fetching metadata because "+e.getMessage());
|
||||||
|
} catch (Exception e){
|
||||||
|
throw new SQLException("Error occurs when fetching metaData because " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getNetworkTimeout() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSchema() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTransactionIsolation() throws SQLException {
|
||||||
|
return Connection.TRANSACTION_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Class<?>> getTypeMap() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SQLWarning getWarnings() throws SQLException {
|
||||||
|
return warningChain;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isClosed() throws SQLException {
|
||||||
|
return isClosed;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isReadOnly() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid(int arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String nativeSQL(String arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CallableStatement prepareCall(String arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CallableStatement prepareCall(String arg0, int arg1, int arg2) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CallableStatement prepareCall(String arg0, int arg1, int arg2, int arg3) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PreparedStatement prepareStatement(String sql) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
|
||||||
|
throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency,
|
||||||
|
int resultSetHoldability) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void releaseSavepoint(Savepoint arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rollback() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rollback(Savepoint arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setAutoCommit(boolean arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCatalog(String arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setClientInfo(Properties arg0) throws SQLClientInfoException {
|
||||||
|
throw new SQLClientInfoException("Method not supported", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setClientInfo(String arg0, String arg1) throws SQLClientInfoException {
|
||||||
|
throw new SQLClientInfoException("Method not supported", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHoldability(int arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNetworkTimeout(Executor arg0, int arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setReadOnly(boolean arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Savepoint setSavepoint() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Savepoint setSavepoint(String arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSchema(String arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTransactionIsolation(int arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTypeMap(Map<String, Class<?>> arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openTransport() throws TTransportException {
|
||||||
|
transport = new TSocket(params.getHost(), params.getPort());
|
||||||
|
if (!transport.isOpen()) {
|
||||||
|
transport.open();
|
||||||
|
LOGGER.debug("Connect to host {} port {}",params.getHost(),params.getPort());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openSession() throws SQLException {
|
||||||
|
TSOpenSessionReq openReq = new TSOpenSessionReq(TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1);
|
||||||
|
|
||||||
|
openReq.setUsername(params.getUsername());
|
||||||
|
openReq.setPassword(params.getPassword());
|
||||||
|
|
||||||
|
try {
|
||||||
|
TSOpenSessionResp openResp = client.OpenSession(openReq);
|
||||||
|
|
||||||
|
// validate connection
|
||||||
|
Utils.verifySuccess(openResp.getStatus());
|
||||||
|
if (!supportedProtocols.contains(openResp.getServerProtocolVersion())) {
|
||||||
|
throw new TException("Unsupported tsfile protocol");
|
||||||
|
}
|
||||||
|
setProtocol(openResp.getServerProtocolVersion());
|
||||||
|
sessionHandle = openResp.getSessionHandle();
|
||||||
|
} catch (TException e) {
|
||||||
|
throw new SQLException(String.format("Can not establish connection with %s. because %s",
|
||||||
|
params.getJdbcUriString()), e.getMessage());
|
||||||
|
}
|
||||||
|
isClosed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TSIService.Iface newSynchronizedClient(TSIService.Iface client) {
|
||||||
|
return (TSIService.Iface) Proxy.newProxyInstance(TsfileConnection.class.getClassLoader(),
|
||||||
|
new Class[] { TSIService.Iface.class }, new SynchronizedHandler(client));
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSProtocolVersion getProtocol() {
|
||||||
|
return protocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProtocol(TSProtocolVersion protocol) {
|
||||||
|
this.protocol = protocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class SynchronizedHandler implements InvocationHandler {
|
||||||
|
private final TSIService.Iface client;
|
||||||
|
|
||||||
|
SynchronizedHandler(TSIService.Iface client) {
|
||||||
|
this.client = client;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
||||||
|
try {
|
||||||
|
synchronized (client) {
|
||||||
|
return method.invoke(client, args);
|
||||||
|
}
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
// all IFace APIs throw TException
|
||||||
|
if (e.getTargetException() instanceof TException) {
|
||||||
|
throw (TException) e.getTargetException();
|
||||||
|
} else {
|
||||||
|
// should not happen
|
||||||
|
throw new TException("Error in calling method " + method.getName(), e.getTargetException());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new TException("Error in calling method " + method.getName(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
public class TsfileConnectionParams {
|
||||||
|
private String host = TsfileConfig.TSFILE_DEFAULT_HOST;
|
||||||
|
private int port = TsfileConfig.TSFILE_DEFAULT_PORT;
|
||||||
|
private String jdbcUriString;
|
||||||
|
private String seriesName = TsfileConfig.DEFAULT_SERIES_NAME;
|
||||||
|
private String username = TsfileConfig.DEFAULT_USER;
|
||||||
|
private String password = TsfileConfig.DEFALUT_PASSWORD;
|
||||||
|
private String dbName;
|
||||||
|
|
||||||
|
public TsfileConnectionParams(String url){
|
||||||
|
this.jdbcUriString = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHost() {
|
||||||
|
return host;
|
||||||
|
}
|
||||||
|
public void setHost(String host) {
|
||||||
|
this.host = host;
|
||||||
|
}
|
||||||
|
public int getPort() {
|
||||||
|
return port;
|
||||||
|
}
|
||||||
|
public void setPort(int port) {
|
||||||
|
this.port = port;
|
||||||
|
}
|
||||||
|
public String getJdbcUriString() {
|
||||||
|
return jdbcUriString;
|
||||||
|
}
|
||||||
|
public void setJdbcUriString(String jdbcUriString) {
|
||||||
|
this.jdbcUriString = jdbcUriString;
|
||||||
|
}
|
||||||
|
public String getSeriesName() {
|
||||||
|
return seriesName;
|
||||||
|
}
|
||||||
|
public void setSeriesName(String seriesName) {
|
||||||
|
this.seriesName = seriesName;
|
||||||
|
}
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
public String getDbName() {
|
||||||
|
return dbName;
|
||||||
|
}
|
||||||
|
public void setDbName(String dbName) {
|
||||||
|
this.dbName = dbName;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,77 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.Driver;
|
||||||
|
import java.sql.DriverPropertyInfo;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.SQLFeatureNotSupportedException;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import org.apache.thrift.transport.TTransportException;
|
||||||
|
|
||||||
|
|
||||||
|
public class TsfileDriver implements Driver {
|
||||||
|
private static final org.slf4j.Logger LOGGER = org.slf4j.LoggerFactory.getLogger(TsfileDriver.class);
|
||||||
|
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
java.sql.DriverManager.registerDriver(new TsfileDriver());
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOGGER.error("Error occurs when resgistering tsfile driver",e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is this driver JDBC compliant?
|
||||||
|
*/
|
||||||
|
private static final boolean TSFILE_JDBC_COMPLIANT = false;
|
||||||
|
|
||||||
|
public TsfileDriver() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean acceptsURL(String url) throws SQLException {
|
||||||
|
return Pattern.matches(TsfileConfig.TSFILE_URL_PREFIX+".*", url);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Connection connect(String url, Properties info) throws SQLException {
|
||||||
|
try {
|
||||||
|
return acceptsURL(url) ? new TsfileConnection(url, info) : null;
|
||||||
|
} catch (TTransportException e) {
|
||||||
|
throw new SQLException("Connection Error, Please check whether the network is avalible or the server has started. " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMajorVersion() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMinorVersion() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
|
||||||
|
throw new SQLFeatureNotSupportedException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean jdbcCompliant() {
|
||||||
|
return TSFILE_JDBC_COMPLIANT;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,257 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.sql.ResultSetMetaData;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.SQLWarning;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.sql.Time;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.metadata.ColumnSchema;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class TsfileMetadataResultSet extends TsfileQueryResultSet {
|
||||||
|
|
||||||
|
private Iterator<?> columnItr;
|
||||||
|
private ColumnSchema currentColumn;
|
||||||
|
private String currentDeltaObject;
|
||||||
|
private MetadataType type;
|
||||||
|
|
||||||
|
public TsfileMetadataResultSet(List<ColumnSchema> columnSchemas, List<String> deltaObjectList) {
|
||||||
|
if (columnSchemas != null) {
|
||||||
|
columnItr = columnSchemas.iterator();
|
||||||
|
type = MetadataType.COLUMN;
|
||||||
|
} else if (deltaObjectList != null) {
|
||||||
|
columnItr = deltaObjectList.iterator();
|
||||||
|
type = MetadataType.DELTA_OBJECT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int findColumn(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getBigDecimal(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getBigDecimal(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getBoolean(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getBoolean(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte getByte(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte getByte(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte[] getBytes(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte[] getBytes(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getConcurrency() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Date getDate(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Date getDate(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getDouble(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getDouble(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFetchDirection() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getFloat(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getFloat(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getInt(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getInt(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getLong(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getLong(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultSetMetaData getMetaData() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean next() throws SQLException {
|
||||||
|
boolean hasNext = columnItr.hasNext();
|
||||||
|
switch (type) {
|
||||||
|
case COLUMN:
|
||||||
|
if (hasNext) {
|
||||||
|
currentColumn = (ColumnSchema)columnItr.next();
|
||||||
|
}
|
||||||
|
return hasNext;
|
||||||
|
case DELTA_OBJECT:
|
||||||
|
if (hasNext) {
|
||||||
|
currentDeltaObject = (String)columnItr.next();
|
||||||
|
}
|
||||||
|
return hasNext;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getObject(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getObject(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public short getShort(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public short getShort(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement getStatement() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getString(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getString(String columnName) throws SQLException {
|
||||||
|
switch (columnName) {
|
||||||
|
case "COLUMN_NAME":
|
||||||
|
return currentColumn.name;
|
||||||
|
case "COLUMN_TYPE":
|
||||||
|
return currentColumn.dataType.toString();
|
||||||
|
case "DELTA_OBJECT":
|
||||||
|
return currentDeltaObject;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Time getTime(int columnIndex) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Time getTime(String columnName) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SQLWarning getWarnings() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isClosed() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasNull() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum MetadataType{
|
||||||
|
DELTA_OBJECT, COLUMN;
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,169 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.sql.ResultSetMetaData;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class TsfileResultMetadata implements ResultSetMetaData {
|
||||||
|
private Map<String, Integer> columnInfo;
|
||||||
|
|
||||||
|
public TsfileResultMetadata(Map<String, Integer> columnInfo) {
|
||||||
|
this.columnInfo = columnInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWrapperFor(Class<?> arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T unwrap(Class<T> arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCatalogName(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnClassName(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColumnCount() throws SQLException {
|
||||||
|
if (columnInfo == null || columnInfo.keySet() == null || columnInfo.keySet().size() == 0) {
|
||||||
|
throw new SQLException("No column exists");
|
||||||
|
}
|
||||||
|
return columnInfo.keySet().size();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColumnDisplaySize(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnLabel(int column) throws SQLException {
|
||||||
|
if (columnInfo == null || columnInfo.keySet() == null || columnInfo.keySet().size() == 0) {
|
||||||
|
throw new SQLException("No column exists");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Map.Entry<String, Integer> entry : columnInfo.entrySet()) {
|
||||||
|
if (entry.getValue().equals(column)) {
|
||||||
|
return String.format(entry.getKey());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new SQLException(String.format("column %d does not exist", column));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnName(int column) throws SQLException {
|
||||||
|
if (columnInfo == null || columnInfo.keySet() == null || columnInfo.keySet().size() == 0) {
|
||||||
|
throw new SQLException("tNo column exists");
|
||||||
|
}
|
||||||
|
for (Map.Entry<String, Integer> entry : columnInfo.entrySet()) {
|
||||||
|
if (entry.getValue().equals(column)) {
|
||||||
|
return entry.getKey();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new SQLException(String.format("column %d does not exist", column));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColumnType(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnTypeName(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPrecision(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getScale(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSchemaName(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTableName(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAutoIncrement(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCaseSensitive(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCurrency(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDefinitelyWritable(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int isNullable(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isReadOnly(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSearchable(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSigned(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWritable(int arg0) throws SQLException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public class TsfileSQLException extends SQLException{
|
||||||
|
private String errorMessage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -3306001287342258977L;
|
||||||
|
|
||||||
|
public TsfileSQLException(String reason){
|
||||||
|
super(reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorMessage(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,411 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.SQLFeatureNotSupportedException;
|
||||||
|
import java.sql.SQLWarning;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCancelOperationReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCancelOperationResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCloseOperationReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCloseOperationResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteBatchStatementReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteBatchStatementResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteStatementReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteStatementResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSIService;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSOperationHandle;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TS_SessionHandle;
|
||||||
|
|
||||||
|
public class TsfileStatement implements Statement {
|
||||||
|
|
||||||
|
private ResultSet resultSet = null;
|
||||||
|
private final TsfileConnection connection;
|
||||||
|
private int fetchSize = TsfileConfig.DEFAULT_FETCH_SIZE;
|
||||||
|
private int queryTimeout = 10;
|
||||||
|
private TSIService.Iface client = null;
|
||||||
|
private TS_SessionHandle sessionHandle = null;
|
||||||
|
private TSOperationHandle operationHandle = null;
|
||||||
|
private List<String> batchSQLList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Keep state so we can fail certain calls made after close().
|
||||||
|
*/
|
||||||
|
private boolean isClosed = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Keep state so we can fail certain calls made after cancel().
|
||||||
|
*/
|
||||||
|
private boolean isCancelled = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the limit for the maximum number of rows that any ResultSet object
|
||||||
|
* produced by this Statement can contain to the given number. If the limit
|
||||||
|
* is exceeded, the excess rows are silently dropped. The value must be >=
|
||||||
|
* 0, and 0 means there is not limit.
|
||||||
|
*/
|
||||||
|
private int maxRows = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add SQLWarnings to the warningChain if needed.
|
||||||
|
*/
|
||||||
|
private SQLWarning warningChain = null;
|
||||||
|
|
||||||
|
public TsfileStatement(TsfileConnection connection, TSIService.Iface client, TS_SessionHandle sessionHandle,
|
||||||
|
int fetchSize) {
|
||||||
|
this.connection = connection;
|
||||||
|
this.client = client;
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
this.fetchSize = fetchSize;
|
||||||
|
this.batchSQLList = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public TsfileStatement(TsfileConnection connection, TSIService.Iface client, TS_SessionHandle sessionHandle){
|
||||||
|
this(connection, client, sessionHandle, TsfileConfig.DEFAULT_FETCH_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWrapperFor(Class<?> iface) throws SQLException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T unwrap(Class<T> iface) throws SQLException {
|
||||||
|
throw new SQLException("Cannot unwrap to " + iface);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addBatch(String sql) throws SQLException {
|
||||||
|
if(batchSQLList == null){
|
||||||
|
batchSQLList = new ArrayList<>();
|
||||||
|
}
|
||||||
|
batchSQLList.add(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel() throws SQLException {
|
||||||
|
checkConnection("cancle");
|
||||||
|
if(isCancelled) return;
|
||||||
|
try {
|
||||||
|
if (operationHandle != null) {
|
||||||
|
TSCancelOperationReq closeReq = new TSCancelOperationReq(operationHandle);
|
||||||
|
TSCancelOperationResp closeResp = client.CancelOperation(closeReq);
|
||||||
|
Utils.verifySuccess(closeResp.getStatus());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new SQLException("Error occurs when cancling statement because "+e.getMessage());
|
||||||
|
}
|
||||||
|
isCancelled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearBatch() throws SQLException {
|
||||||
|
if(batchSQLList == null){
|
||||||
|
batchSQLList = new ArrayList<>();
|
||||||
|
}
|
||||||
|
batchSQLList.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearWarnings() throws SQLException {
|
||||||
|
warningChain = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void closeClientOperation() throws SQLException{
|
||||||
|
try {
|
||||||
|
if (operationHandle != null) {
|
||||||
|
TSCloseOperationReq closeReq = new TSCloseOperationReq(operationHandle);
|
||||||
|
TSCloseOperationResp closeResp = client.CloseOperation(closeReq);
|
||||||
|
Utils.verifySuccess(closeResp.getStatus());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new SQLException("Error occurs when closing statement because "+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() throws SQLException {
|
||||||
|
if(isClosed) return;
|
||||||
|
|
||||||
|
// if(resultSet != null){
|
||||||
|
// resultSet.close();
|
||||||
|
// resultSet = null;
|
||||||
|
// }else{
|
||||||
|
closeClientOperation();
|
||||||
|
// }
|
||||||
|
client = null;
|
||||||
|
isClosed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void closeOnCompletion() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(String sql) throws SQLException {
|
||||||
|
checkConnection("execute");
|
||||||
|
try {
|
||||||
|
isCancelled = false;
|
||||||
|
TSExecuteStatementReq execReq = new TSExecuteStatementReq(sessionHandle, sql);
|
||||||
|
TSExecuteStatementResp execResp = client.ExecuteStatement(execReq);
|
||||||
|
operationHandle = execResp.getOperationHandle();
|
||||||
|
Utils.verifySuccess(execResp.getStatus());
|
||||||
|
if(execResp.getOperationHandle().hasResultSet){
|
||||||
|
resultSet = new TsfileQueryResultSet(this, execResp.getColumns(), client, sessionHandle,operationHandle, sql);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} catch (TException e) {
|
||||||
|
throw new TsfileSQLException(String.format("Fail to execute %s when connecting to server because %s", sql, e.getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(String arg0, int arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(String arg0, int[] arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(String arg0, String[] arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] executeBatch() throws SQLException {
|
||||||
|
checkConnection("executeBatch");
|
||||||
|
try {
|
||||||
|
isCancelled = false;
|
||||||
|
TSExecuteBatchStatementReq execReq = new TSExecuteBatchStatementReq(sessionHandle, batchSQLList);
|
||||||
|
TSExecuteBatchStatementResp execResp = client.ExecuteBatchStatement(execReq);
|
||||||
|
Utils.verifySuccess(execResp.getStatus());
|
||||||
|
if (execResp.getResult() == null){
|
||||||
|
return new int[0];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
List<Integer> result = execResp.getResult();
|
||||||
|
int len = result.size();
|
||||||
|
int[] updateArray = new int[len];
|
||||||
|
for(int i = 0; i < len; i++){
|
||||||
|
updateArray[i] = result.get(i);
|
||||||
|
}
|
||||||
|
return updateArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (TException e) {
|
||||||
|
throw new TsfileSQLException(String.format("Fail to execute sqls in batch when connecting to server because %s",e.getMessage()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultSet executeQuery(String sql) throws SQLException {
|
||||||
|
checkConnection("execute");
|
||||||
|
try {
|
||||||
|
isCancelled = false;
|
||||||
|
TSExecuteStatementReq execReq = new TSExecuteStatementReq(sessionHandle, sql);
|
||||||
|
TSExecuteStatementResp execResp = client.ExecuteQueryStatement(execReq);
|
||||||
|
operationHandle = execResp.getOperationHandle();
|
||||||
|
Utils.verifySuccess(execResp.getStatus());
|
||||||
|
resultSet = new TsfileQueryResultSet(this,execResp.getColumns(), client,sessionHandle,operationHandle, sql);
|
||||||
|
} catch (TException e) {
|
||||||
|
throw new TsfileSQLException(String.format("Fail to execute query sql %s when connecting to server because %s",sql,e.getMessage()));
|
||||||
|
}
|
||||||
|
return resultSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int executeUpdate(String sql) throws SQLException {
|
||||||
|
try {
|
||||||
|
TSExecuteStatementReq execReq = new TSExecuteStatementReq(sessionHandle, sql);
|
||||||
|
TSExecuteStatementResp execResp = client.ExecuteUpdateStatement(execReq);
|
||||||
|
operationHandle = execResp.getOperationHandle();
|
||||||
|
Utils.verifySuccess(execResp.getStatus());
|
||||||
|
} catch (TException e) {
|
||||||
|
throw new TsfileSQLException(String.format("Fail to execute update sql %s when connecting to server because %s",sql,e.getMessage()));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int executeUpdate(String arg0, int arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int executeUpdate(String arg0, int[] arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int executeUpdate(String arg0, String[] arg1) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Connection getConnection() throws SQLException {
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFetchDirection() throws SQLException {
|
||||||
|
checkConnection("getFetchDirection");
|
||||||
|
return ResultSet.FETCH_FORWARD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFetchSize() throws SQLException {
|
||||||
|
checkConnection("getFetchSize");
|
||||||
|
return fetchSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultSet getGeneratedKeys() throws SQLException {
|
||||||
|
throw new SQLFeatureNotSupportedException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxFieldSize() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxRows() throws SQLException {
|
||||||
|
checkConnection("getMaxRows");
|
||||||
|
return maxRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getMoreResults() throws SQLException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getMoreResults(int arg0) throws SQLException {
|
||||||
|
throw new SQLFeatureNotSupportedException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getQueryTimeout() throws SQLException {
|
||||||
|
return this.queryTimeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultSet getResultSet() throws SQLException {
|
||||||
|
checkConnection("getResultSet");
|
||||||
|
return resultSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getResultSetConcurrency() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getResultSetHoldability() throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getResultSetType() throws SQLException {
|
||||||
|
checkConnection("getResultSetType");
|
||||||
|
return ResultSet.TYPE_FORWARD_ONLY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getUpdateCount() throws SQLException {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SQLWarning getWarnings() throws SQLException {
|
||||||
|
return warningChain;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCloseOnCompletion() throws SQLException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isClosed() throws SQLException {
|
||||||
|
return isClosed;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPoolable() throws SQLException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCursorName(String arg0) throws SQLException {
|
||||||
|
throw new SQLFeatureNotSupportedException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setEscapeProcessing(boolean enable) throws SQLException {
|
||||||
|
throw new SQLFeatureNotSupportedException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFetchDirection(int direction) throws SQLException {
|
||||||
|
checkConnection("setFetchDirection");
|
||||||
|
if (direction != ResultSet.FETCH_FORWARD) {
|
||||||
|
throw new SQLException(String.format("direction %d is not supported!", direction));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFetchSize(int fetchSize) throws SQLException {
|
||||||
|
checkConnection("setFetchSize");
|
||||||
|
if (fetchSize < 0) {
|
||||||
|
throw new SQLException(String.format("fetchSize %d must be >= 0!", fetchSize));
|
||||||
|
}
|
||||||
|
this.fetchSize = fetchSize == 0 ? TsfileConfig.DEFAULT_FETCH_SIZE : fetchSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMaxFieldSize(int arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMaxRows(int num) throws SQLException {
|
||||||
|
checkConnection("setMaxRows");
|
||||||
|
if (num < 0) {
|
||||||
|
throw new SQLException(String.format("maxRows %d must be >= 0!", num));
|
||||||
|
}
|
||||||
|
this.maxRows = num;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPoolable(boolean arg0) throws SQLException {
|
||||||
|
throw new SQLException("Method not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setQueryTimeout(int seconds) throws SQLException {
|
||||||
|
checkConnection("setQueryTimeout");
|
||||||
|
if (seconds <= 0) {
|
||||||
|
throw new SQLException(String.format("queryTimeout %d must be >= 0!", seconds));
|
||||||
|
}
|
||||||
|
this.queryTimeout = seconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkConnection(String action) throws SQLException {
|
||||||
|
if (isClosed) {
|
||||||
|
throw new SQLException(String.format("Cannot %s after statement has been closed!", action));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public class TsfileURLException extends SQLException{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -5071922897222027267L;
|
||||||
|
|
||||||
|
public TsfileURLException(String reason){
|
||||||
|
super(reason);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,162 @@
|
||||||
|
package cn.edu.thu.tsfiledb.jdbc;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfile.common.utils.Binary;
|
||||||
|
import cn.edu.thu.tsfile.file.metadata.enums.TSDataType;
|
||||||
|
import cn.edu.thu.tsfile.file.metadata.enums.TSEncoding;
|
||||||
|
import cn.edu.thu.tsfile.timeseries.read.query.DynamicOneColumnData;
|
||||||
|
import cn.edu.thu.tsfile.timeseries.read.query.QueryDataSet;
|
||||||
|
import cn.edu.thu.tsfiledb.metadata.ColumnSchema;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSColumnSchema;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSDynamicOneColumnData;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSQueryDataSet;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TS_Status;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TS_StatusCode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class Utils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse JDBC connection URL The only supported format of the URL is:
|
||||||
|
* jdbc:tsfile://localhost:8888/seriesName
|
||||||
|
*
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
* @throws TsfileURLException
|
||||||
|
*/
|
||||||
|
public static TsfileConnectionParams parseURL(String url, Properties info) throws TsfileURLException {
|
||||||
|
TsfileConnectionParams params = new TsfileConnectionParams(url);
|
||||||
|
if(url.trim().equalsIgnoreCase(TsfileConfig.TSFILE_URL_PREFIX)){
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
Pattern pattern = Pattern.compile("([^;]*):([^;]*)/");
|
||||||
|
Matcher matcher = pattern.matcher(url.substring(TsfileConfig.TSFILE_URL_PREFIX.length()));
|
||||||
|
boolean isUrlLegal = false;
|
||||||
|
while(matcher.find()){
|
||||||
|
params.setHost(matcher.group(1));
|
||||||
|
params.setPort(Integer.parseInt((matcher.group(2))));
|
||||||
|
isUrlLegal = true;
|
||||||
|
}
|
||||||
|
if(!isUrlLegal){
|
||||||
|
throw new TsfileURLException("Error url format, url should be jdbc:tsfile://ip:port/");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(info.containsKey(TsfileConfig.AUTH_USER)){
|
||||||
|
params.setUsername(info.getProperty(TsfileConfig.AUTH_USER));
|
||||||
|
}
|
||||||
|
if(info.containsKey(TsfileConfig.AUTH_PASSWORD)){
|
||||||
|
params.setPassword(info.getProperty(TsfileConfig.AUTH_PASSWORD));
|
||||||
|
}
|
||||||
|
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void verifySuccess(TS_Status status) throws TsfileSQLException{
|
||||||
|
if(status.getStatusCode() != TS_StatusCode.SUCCESS_STATUS){
|
||||||
|
throw new TsfileSQLException(status.errorMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String, List<ColumnSchema>> convertAllSchema(Map<String, List<TSColumnSchema>> tsAllSchema){
|
||||||
|
if(tsAllSchema == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Map<String, List<ColumnSchema>> allSchema = new HashMap<>();
|
||||||
|
for(Map.Entry<String, List<TSColumnSchema>> entry : tsAllSchema.entrySet()){
|
||||||
|
List<ColumnSchema> columnSchemas = new ArrayList<>();
|
||||||
|
for(TSColumnSchema columnSchema : entry.getValue()){
|
||||||
|
columnSchemas.add(convertColumnSchema(columnSchema));
|
||||||
|
}
|
||||||
|
allSchema.put(entry.getKey(), columnSchemas);
|
||||||
|
}
|
||||||
|
return allSchema;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ColumnSchema convertColumnSchema(TSColumnSchema tsSchema){
|
||||||
|
if(tsSchema == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
TSDataType dataType = tsSchema.dataType == null ? null : TSDataType.valueOf(tsSchema.dataType);
|
||||||
|
TSEncoding encoding = tsSchema.encoding == null ? null : TSEncoding.valueOf(tsSchema.encoding);
|
||||||
|
ColumnSchema ColumnSchema = new ColumnSchema(tsSchema.name, dataType, encoding);
|
||||||
|
ColumnSchema.setArgsMap(tsSchema.getOtherArgs());
|
||||||
|
return ColumnSchema;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static QueryDataSet convertQueryDataSet(TSQueryDataSet tsQueryDataSet){
|
||||||
|
QueryDataSet queryDataSet = new QueryDataSet();
|
||||||
|
List<String> keys = tsQueryDataSet.getKeys();
|
||||||
|
List<TSDynamicOneColumnData> values = tsQueryDataSet.getValues();
|
||||||
|
|
||||||
|
LinkedHashMap<String, DynamicOneColumnData> ret = new LinkedHashMap<>();
|
||||||
|
int length = keys.size();
|
||||||
|
for(int i = 0; i < length;i++){
|
||||||
|
ret.put(keys.get(i), convertDynamicOneColumnData(values.get(i)));
|
||||||
|
}
|
||||||
|
queryDataSet.mapRet = ret;
|
||||||
|
return queryDataSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DynamicOneColumnData convertDynamicOneColumnData(TSDynamicOneColumnData tsDynamicOneColumnData){
|
||||||
|
TSDataType dataType = TSDataType.valueOf(tsDynamicOneColumnData.getDataType());
|
||||||
|
DynamicOneColumnData dynamicOneColumnData = new DynamicOneColumnData(dataType,true);
|
||||||
|
dynamicOneColumnData.setDeltaObjectType(tsDynamicOneColumnData.getDeviceType());
|
||||||
|
|
||||||
|
for(long time : tsDynamicOneColumnData.getTimeRet()){
|
||||||
|
dynamicOneColumnData.putTime(time);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (dataType) {
|
||||||
|
case BOOLEAN:
|
||||||
|
List<Boolean> booleans = tsDynamicOneColumnData.getBoolList();
|
||||||
|
for(Boolean b: booleans){
|
||||||
|
dynamicOneColumnData.putBoolean(b);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case INT32:
|
||||||
|
List<Integer> integers = tsDynamicOneColumnData.getI32List();
|
||||||
|
for(Integer i: integers){
|
||||||
|
dynamicOneColumnData.putInt(i);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case INT64:
|
||||||
|
List<Long> longs = tsDynamicOneColumnData.getI64List();
|
||||||
|
for(Long l: longs){
|
||||||
|
dynamicOneColumnData.putLong(l);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FLOAT:
|
||||||
|
List<Double> floats = tsDynamicOneColumnData.getFloatList();
|
||||||
|
for(double f: floats){
|
||||||
|
dynamicOneColumnData.putFloat((float)f);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DOUBLE:
|
||||||
|
List<Double> doubles = tsDynamicOneColumnData.getDoubleList();
|
||||||
|
for(double d: doubles){
|
||||||
|
dynamicOneColumnData.putDouble(d);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BYTE_ARRAY:
|
||||||
|
List<Byte> binaries = tsDynamicOneColumnData.getBinaryList();
|
||||||
|
for(Byte b: binaries){
|
||||||
|
dynamicOneColumnData.putBinary(new Binary(b.toString()));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return dynamicOneColumnData;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,102 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfile.timeseries.read.qp.Path;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.Authorizer;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Permission;
|
||||||
|
|
||||||
|
public class AuthorityChecker {
|
||||||
|
|
||||||
|
public static final String SUPER_USER = "root";
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(AuthorityChecker.class);
|
||||||
|
|
||||||
|
public static boolean check(String username, List<Path> paths, OperatorType type){
|
||||||
|
if(SUPER_USER.equals(username)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
int permission = translateToPermissionId(type);
|
||||||
|
if(permission == -1){
|
||||||
|
logger.error("OperateType not found. {}", type);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for(int i = 0 ; i < paths.size() ; i ++){
|
||||||
|
if(!checkOnePath(username, paths.get(i), permission)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<String> getAllParentPath(Path path){
|
||||||
|
List<String> parentPaths = new ArrayList<String>();
|
||||||
|
String fullPath = path.getFullPath();
|
||||||
|
String[] nodes = fullPath.split("\\.");
|
||||||
|
|
||||||
|
for(int i = 0 ; i < nodes.length ; i++){
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for(int j = 0 ; j <= i ; j++){
|
||||||
|
sb.append(nodes[j]);
|
||||||
|
if(j < i){
|
||||||
|
sb.append(".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parentPaths.add(sb.toString());
|
||||||
|
}
|
||||||
|
return parentPaths;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean checkOnePath(String username, Path path, int permission){
|
||||||
|
List<String> parentPaths = getAllParentPath(path);
|
||||||
|
for(int i = 0 ; i < parentPaths.size(); i ++){
|
||||||
|
if(Authorizer.checkUserPermission(username, parentPaths.get(i), permission)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int translateToPermissionId(OperatorType type){
|
||||||
|
switch(type){
|
||||||
|
case METADATA:
|
||||||
|
return Permission.CREATE;
|
||||||
|
case QUERY:
|
||||||
|
case SELECT:
|
||||||
|
case FILTER:
|
||||||
|
case GROUPBY:
|
||||||
|
case SEQTABLESCAN:
|
||||||
|
case TABLESCAN:
|
||||||
|
return Permission.READ;
|
||||||
|
case DELETE:
|
||||||
|
return Permission.DELETE;
|
||||||
|
case INSERT:
|
||||||
|
case LOADDATA:
|
||||||
|
return Permission.INSERT;
|
||||||
|
case UPDATE:
|
||||||
|
return Permission.MODIFY;
|
||||||
|
case AUTHOR:
|
||||||
|
case BASIC_FUNC:
|
||||||
|
case FILEREAD:
|
||||||
|
case FROM:
|
||||||
|
case FUNC:
|
||||||
|
case HASHTABLESCAN:
|
||||||
|
case JOIN:
|
||||||
|
case LIMIT:
|
||||||
|
case MERGEJOIN:
|
||||||
|
case NULL:
|
||||||
|
case ORDERBY:
|
||||||
|
case PROPERTY:
|
||||||
|
case ROOT:
|
||||||
|
case UNION:
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import org.apache.thrift.protocol.TBinaryProtocol;
|
||||||
|
import org.apache.thrift.protocol.TBinaryProtocol.Factory;
|
||||||
|
import org.apache.thrift.server.TServer;
|
||||||
|
import org.apache.thrift.server.TThreadPoolServer;
|
||||||
|
import org.apache.thrift.transport.TServerSocket;
|
||||||
|
import org.apache.thrift.transport.TTransportException;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSIService;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSIService.Processor;
|
||||||
|
|
||||||
|
|
||||||
|
public class Daemon {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//init Derby Database
|
||||||
|
DBdao dBdao = new DBdao();
|
||||||
|
dBdao.open();
|
||||||
|
|
||||||
|
startRPC();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TServer startRPC() {
|
||||||
|
try {
|
||||||
|
// 设置服务器端口
|
||||||
|
TServerSocket serverTransport = new TServerSocket(JDBCServerConfig.PORT);
|
||||||
|
// 设置二进制协议工厂
|
||||||
|
Factory protocolFactory = new TBinaryProtocol.Factory();
|
||||||
|
//处理器关联业务实现
|
||||||
|
Processor<TSIService.Iface> processor = new TSIService.Processor<TSIService.Iface>(new TSServiceImpl());
|
||||||
|
// 2. 使用线程池服务模型
|
||||||
|
TThreadPoolServer.Args poolArgs = new TThreadPoolServer.Args(serverTransport);
|
||||||
|
poolArgs.processor(processor);
|
||||||
|
poolArgs.protocolFactory(protocolFactory);
|
||||||
|
TServer poolServer = new TThreadPoolServer(poolArgs);
|
||||||
|
poolServer.serve();
|
||||||
|
|
||||||
|
} catch (TTransportException e) {
|
||||||
|
|
||||||
|
e.printStackTrace();
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,155 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import org.apache.thrift.protocol.TBinaryProtocol;
|
||||||
|
import org.apache.thrift.protocol.TBinaryProtocol.Factory;
|
||||||
|
import org.apache.thrift.server.TServer;
|
||||||
|
import org.apache.thrift.server.TThreadPoolServer;
|
||||||
|
import org.apache.thrift.transport.TServerSocket;
|
||||||
|
import org.apache.thrift.transport.TTransportException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.engine.exception.FileNodeManagerException;
|
||||||
|
import cn.edu.thu.tsfiledb.engine.exception.LRUManagerException;
|
||||||
|
import cn.edu.thu.tsfiledb.engine.filenode.FileNodeManager;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSIService;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSIService.Processor;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class JDBCServer implements JDBCServerMBean {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(JDBCServer.class);
|
||||||
|
private DBdao dBdao;
|
||||||
|
private Thread jdbcServerThread;
|
||||||
|
private boolean isStart;
|
||||||
|
|
||||||
|
private Factory protocolFactory;
|
||||||
|
private Processor<TSIService.Iface> processor;
|
||||||
|
private TServerSocket serverTransport;
|
||||||
|
private TThreadPoolServer.Args poolArgs;
|
||||||
|
private TServer poolServer;
|
||||||
|
|
||||||
|
private boolean isMerging;
|
||||||
|
|
||||||
|
public JDBCServer() throws TTransportException {
|
||||||
|
isStart = false;
|
||||||
|
isMerging = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void startServer() {
|
||||||
|
if(isStart){
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: jdbc server has been already running now");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: starting jdbc server...");
|
||||||
|
dBdao = new DBdao();
|
||||||
|
dBdao.open();
|
||||||
|
|
||||||
|
try {
|
||||||
|
jdbcServerThread = new Thread(new JDBCServerThread());
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOGGER.error("Server start Error. {}", e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
jdbcServerThread.start();
|
||||||
|
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: start jdbc server successfully");
|
||||||
|
isStart = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void restartServer() {
|
||||||
|
stopServer();
|
||||||
|
startServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void stopServer() {
|
||||||
|
if(!isStart){
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: jdbc server isn't running now");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: closing jdbc server...");
|
||||||
|
|
||||||
|
if(dBdao != null){
|
||||||
|
dBdao.close();
|
||||||
|
dBdao = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: flush data in memory to disk");
|
||||||
|
try {
|
||||||
|
FileNodeManager.getInstance().close();
|
||||||
|
} catch (LRUManagerException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
close();
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: close jdbc server successfully");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void close(){
|
||||||
|
if(poolServer != null){
|
||||||
|
poolServer.stop();
|
||||||
|
poolServer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(serverTransport != null){
|
||||||
|
serverTransport.close();
|
||||||
|
serverTransport = null;
|
||||||
|
}
|
||||||
|
isStart = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
class JDBCServerThread implements Runnable{
|
||||||
|
|
||||||
|
public JDBCServerThread() throws IOException{
|
||||||
|
protocolFactory = new TBinaryProtocol.Factory();
|
||||||
|
processor = new TSIService.Processor<TSIService.Iface>(new TSServiceImpl());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
serverTransport = new TServerSocket(JDBCServerConfig.PORT);
|
||||||
|
poolArgs = new TThreadPoolServer.Args(serverTransport);
|
||||||
|
poolArgs.processor(processor);
|
||||||
|
poolArgs.protocolFactory(protocolFactory);
|
||||||
|
poolServer = new TThreadPoolServer(poolArgs);
|
||||||
|
// poolServer.serve(); will block next statement to execute
|
||||||
|
poolServer.serve();
|
||||||
|
} catch (TTransportException e) {
|
||||||
|
LOGGER.error("tsfile-service JDBCServer: failed to start jdbc server, because ", e);
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.error("tsfile-service JDBCServer: jdbc server exit, because ", e);
|
||||||
|
} finally {
|
||||||
|
close();
|
||||||
|
LOGGER.info("tsfile-service JDBCServer: close TThreadPoolServer and TServerSocket");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws TTransportException, InterruptedException{
|
||||||
|
JDBCServer server = new JDBCServer();
|
||||||
|
server.startServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void mergeAll() {
|
||||||
|
LOGGER.info("tsfile-service JDBCServer : start merging..");
|
||||||
|
try {
|
||||||
|
FileNodeManager.getInstance().mergeAll();
|
||||||
|
} catch (FileNodeManagerException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
LOGGER.info("tsfile-service JDBCServer : Done.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
public class JDBCServerConfig {
|
||||||
|
public static final int PORT = 6667;
|
||||||
|
|
||||||
|
// public static final String TSFILE_DATA_PATH = "writeV2Huge.out";
|
||||||
|
|
||||||
|
public static final String overflowErrOutput = "overflowErrOutput";
|
||||||
|
public static final String overflowOutput = "overflowOutput";
|
||||||
|
|
||||||
|
public static final String JMX_IP = "0.0.0.0";
|
||||||
|
public static final int JMX_PORT = 31999;
|
||||||
|
public static final String JMX_USER = "saf";
|
||||||
|
public static final String JMX_PASS = "pass";
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
|
||||||
|
public interface JDBCServerMBean {
|
||||||
|
public void startServer();
|
||||||
|
public void restartServer();
|
||||||
|
public void stopServer();
|
||||||
|
public void mergeAll();
|
||||||
|
}
|
|
@ -0,0 +1,115 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.management.ManagementFactory;
|
||||||
|
import java.rmi.registry.LocateRegistry;
|
||||||
|
import java.rmi.server.RMISocketFactory;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.management.InstanceAlreadyExistsException;
|
||||||
|
import javax.management.MBeanRegistrationException;
|
||||||
|
import javax.management.MBeanServer;
|
||||||
|
import javax.management.MalformedObjectNameException;
|
||||||
|
import javax.management.NotCompliantMBeanException;
|
||||||
|
import javax.management.ObjectName;
|
||||||
|
import javax.management.remote.JMXAuthenticator;
|
||||||
|
import javax.management.remote.JMXConnectorServer;
|
||||||
|
import javax.management.remote.JMXConnectorServerFactory;
|
||||||
|
import javax.management.remote.JMXPrincipal;
|
||||||
|
import javax.management.remote.JMXServiceURL;
|
||||||
|
import javax.management.remote.rmi.RMIConnectorServer;
|
||||||
|
import javax.security.auth.Subject;
|
||||||
|
|
||||||
|
import org.apache.thrift.transport.TTransportException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import ch.qos.logback.core.joran.spi.JoranException;
|
||||||
|
import cn.edu.thu.tsfile.common.constant.SystemConstant;
|
||||||
|
|
||||||
|
public class JMXManager {
|
||||||
|
|
||||||
|
static{
|
||||||
|
try {
|
||||||
|
String home = System.getProperty(SystemConstant.TSFILE_HOME);
|
||||||
|
if(home != null && !home.equals("")){
|
||||||
|
LogBackConfigLoader.load(home + File.separator + "conf" + File.separator + "logback.xml");
|
||||||
|
}
|
||||||
|
} catch (IOException | JoranException e) {
|
||||||
|
System.out.println("Load configuration file error");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(JMXManager.class);
|
||||||
|
|
||||||
|
private JMXConnectorServer connector;
|
||||||
|
private Map<String, Object> jmxEnvironment;
|
||||||
|
|
||||||
|
public JMXManager() {
|
||||||
|
jmxEnvironment = new HashMap<String, Object>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serice() throws IOException, TTransportException, MalformedObjectNameException,
|
||||||
|
InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException {
|
||||||
|
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
|
||||||
|
String addr = String.format("service:jmx:rmi://%s:%d/jndi/rmi://%s:%d/jmxrmi", JDBCServerConfig.JMX_IP,
|
||||||
|
JDBCServerConfig.JMX_PORT, JDBCServerConfig.JMX_IP, JDBCServerConfig.JMX_PORT);
|
||||||
|
JMXServiceURL address = new JMXServiceURL(addr);
|
||||||
|
|
||||||
|
RMISocketFactory rmiFactory = RMISocketFactory.getDefaultSocketFactory();
|
||||||
|
LocateRegistry.createRegistry(JDBCServerConfig.JMX_PORT, null, rmiFactory);
|
||||||
|
|
||||||
|
jmxEnvironment.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, rmiFactory);
|
||||||
|
|
||||||
|
// for auth
|
||||||
|
JMXAuthenticator auth = createJMXAuthenticator();
|
||||||
|
jmxEnvironment.put(JMXConnectorServer.AUTHENTICATOR, auth);
|
||||||
|
|
||||||
|
connector = JMXConnectorServerFactory.newJMXConnectorServer(address, jmxEnvironment,
|
||||||
|
ManagementFactory.getPlatformMBeanServer());
|
||||||
|
JDBCServerMBean mbean = new JDBCServer();
|
||||||
|
mbean.startServer();
|
||||||
|
ObjectName mBeanName = new ObjectName("JDBCServerDomain", "type", "JDBCServer");
|
||||||
|
mbs.registerMBean(mbean, mBeanName);
|
||||||
|
connector.start();
|
||||||
|
LOGGER.info("tsfile-service JMXManager: start JMX manager...");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close() throws IOException {
|
||||||
|
connector.stop();
|
||||||
|
LOGGER.info("tsfile-service JMXManager: close JMX manager...");
|
||||||
|
}
|
||||||
|
|
||||||
|
private JMXAuthenticator createJMXAuthenticator() {
|
||||||
|
return new JMXAuthenticator() {
|
||||||
|
public Subject authenticate(Object credentials) {
|
||||||
|
String[] sCredentials = (String[]) credentials;
|
||||||
|
if (null == sCredentials || sCredentials.length != 2) {
|
||||||
|
LOGGER.error("tsfile-service JMXManager: auth info in wrong format!");
|
||||||
|
throw new SecurityException("Authentication failed!");
|
||||||
|
}
|
||||||
|
String userName = sCredentials[0];
|
||||||
|
String pValue = sCredentials[1];
|
||||||
|
if (JDBCServerConfig.JMX_USER.equals(userName) && JDBCServerConfig.JMX_PASS.equals(pValue)) {
|
||||||
|
Set<JMXPrincipal> principals = new HashSet<JMXPrincipal>();
|
||||||
|
principals.add(new JMXPrincipal(userName));
|
||||||
|
return new Subject(true, principals, Collections.EMPTY_SET, Collections.EMPTY_SET);
|
||||||
|
}
|
||||||
|
LOGGER.error("tsfile-service JMXManager: Authentication failed!");
|
||||||
|
throw new SecurityException("Authentication failed!");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws MalformedObjectNameException, InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException, TTransportException, IOException {
|
||||||
|
JMXManager manager = new JMXManager();
|
||||||
|
manager.serice();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To change this template, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.LoggerContext;
|
||||||
|
import ch.qos.logback.classic.joran.JoranConfigurator;
|
||||||
|
import ch.qos.logback.core.joran.spi.JoranException;
|
||||||
|
import ch.qos.logback.core.util.StatusPrinter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple Utility class for loading an external config file for logback
|
||||||
|
* @author daniel
|
||||||
|
*/
|
||||||
|
public class LogBackConfigLoader {
|
||||||
|
|
||||||
|
public static void load (String externalConfigFileLocation) throws IOException, JoranException{
|
||||||
|
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
|
||||||
|
|
||||||
|
File externalConfigFile = new File(externalConfigFileLocation);
|
||||||
|
if(!externalConfigFile.exists()){
|
||||||
|
throw new IOException("Logback External Config File Parameter does not reference a file that exists");
|
||||||
|
}else{
|
||||||
|
if(!externalConfigFile.isFile()){
|
||||||
|
throw new IOException("Logback External Config File Parameter exists, but does not reference a file");
|
||||||
|
}else{
|
||||||
|
if(!externalConfigFile.canRead()){
|
||||||
|
throw new IOException("Logback External Config File exists and is a file, but cannot be read.");
|
||||||
|
}else{
|
||||||
|
JoranConfigurator configurator = new JoranConfigurator();
|
||||||
|
configurator.setContext(lc);
|
||||||
|
lc.reset();
|
||||||
|
configurator.doConfigure(externalConfigFileLocation);
|
||||||
|
StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,662 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfile.common.exception.ProcessorException;
|
||||||
|
import cn.edu.thu.tsfile.file.metadata.enums.TSDataType;
|
||||||
|
import cn.edu.thu.tsfile.timeseries.read.qp.Path;
|
||||||
|
import cn.edu.thu.tsfile.timeseries.read.query.QueryDataSet;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.Authorizer;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.AuthException;
|
||||||
|
import cn.edu.thu.tsfiledb.engine.filenode.FileNodeManager;
|
||||||
|
import cn.edu.thu.tsfiledb.exception.NotConsistentException;
|
||||||
|
import cn.edu.thu.tsfiledb.exception.PathErrorException;
|
||||||
|
import cn.edu.thu.tsfiledb.metadata.ColumnSchema;
|
||||||
|
import cn.edu.thu.tsfiledb.metadata.MManager;
|
||||||
|
import cn.edu.thu.tsfiledb.metadata.Metadata;
|
||||||
|
import cn.edu.thu.tsfiledb.query.aggregation.AggreFuncFactory;
|
||||||
|
import cn.edu.thu.tsfiledb.query.aggregation.AggregateFunction;
|
||||||
|
import cn.edu.thu.tsfiledb.query.engine.OverflowQueryEngine;
|
||||||
|
import cn.edu.thu.tsfiledb.query.management.ReadLockManager;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCancelOperationReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCancelOperationResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCloseOperationReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCloseOperationResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCloseSessionReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSCloseSessionResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSColumnSchema;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteBatchStatementReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteBatchStatementResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteStatementReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSExecuteStatementResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSFetchMetadataReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSFetchMetadataResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSFetchResultsReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSFetchResultsResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSHandleIdentifier;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSOpenSessionReq;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSOpenSessionResp;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSOperationHandle;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSQueryDataSet;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TS_SessionHandle;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TS_Status;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TS_StatusCode;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSIService;;
|
||||||
|
|
||||||
|
public class TSServiceImpl implements TSIService.Iface {
|
||||||
|
|
||||||
|
private WriteLogManager writeLogManager;
|
||||||
|
private OverflowQPExecutor exec = new OverflowQPExecutor();
|
||||||
|
// Record the username for every rpc connection. Username.get() is null if
|
||||||
|
// login is failed.
|
||||||
|
private ThreadLocal<String> username = new ThreadLocal<>();
|
||||||
|
private ThreadLocal<HashMap<String, RootOperator>> queryStatus = new ThreadLocal<>();
|
||||||
|
private ThreadLocal<HashMap<String, Iterator<QueryDataSet>>> queryRet = new ThreadLocal<>();
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(TSServiceImpl.class);
|
||||||
|
|
||||||
|
public TSServiceImpl() throws IOException {
|
||||||
|
LOGGER.info("start check write log...");
|
||||||
|
writeLogManager = WriteLogManager.getInstance();
|
||||||
|
long cnt = 0l;
|
||||||
|
PhysicalPlan plan;
|
||||||
|
while ((plan = writeLogManager.getPhysicalPlan()) != null) {
|
||||||
|
try {
|
||||||
|
plan.processNonQuery(exec);
|
||||||
|
cnt++;
|
||||||
|
} catch (ProcessorException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new IOException("Error in recovery from write log");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LOGGER.info("Done. Recover operation count {}", cnt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSOpenSessionResp OpenSession(TSOpenSessionReq req) throws TException {
|
||||||
|
|
||||||
|
if (LOGGER.isInfoEnabled())
|
||||||
|
LOGGER.info("tsfile-server TSServiceImpl: receive open session from username {}", req.getUsername());
|
||||||
|
|
||||||
|
boolean status = false;
|
||||||
|
try {
|
||||||
|
status = Authorizer.login(req.getUsername(), req.getPassword());
|
||||||
|
} catch (AuthException e) {
|
||||||
|
status = false;
|
||||||
|
}
|
||||||
|
// boolean status = true;
|
||||||
|
TS_Status ts_status;
|
||||||
|
if (status) {
|
||||||
|
ts_status = new TS_Status(TS_StatusCode.SUCCESS_STATUS);
|
||||||
|
ts_status.setErrorMessage("login successfully.");
|
||||||
|
username.set(req.getUsername());
|
||||||
|
initForOneSession();
|
||||||
|
} else {
|
||||||
|
ts_status = new TS_Status(TS_StatusCode.ERROR_STATUS);
|
||||||
|
ts_status.setErrorMessage("login failed. Username or password is wrong.");
|
||||||
|
}
|
||||||
|
TSOpenSessionResp resp = new TSOpenSessionResp(ts_status, TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1);
|
||||||
|
resp.setSessionHandle(new TS_SessionHandle(new TSHandleIdentifier(ByteBuffer.wrap(req.getUsername().getBytes()),
|
||||||
|
ByteBuffer.wrap((req.getPassword().getBytes())))));
|
||||||
|
if (LOGGER.isInfoEnabled())
|
||||||
|
LOGGER.info("tsfile-server TSServiceImpl: Login status: {}. User : {}", ts_status.getErrorMessage(),
|
||||||
|
req.getUsername());
|
||||||
|
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initForOneSession() {
|
||||||
|
queryStatus.set(new HashMap<String, RootOperator>());
|
||||||
|
queryRet.set(new HashMap<String, Iterator<QueryDataSet>>());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSCloseSessionResp CloseSession(TSCloseSessionReq req) throws TException {
|
||||||
|
if (LOGGER.isInfoEnabled())
|
||||||
|
LOGGER.info("tsfile-server TSServiceImpl: receive close session");
|
||||||
|
TS_Status ts_status;
|
||||||
|
if (username.get() == null) {
|
||||||
|
ts_status = new TS_Status(TS_StatusCode.ERROR_STATUS);
|
||||||
|
ts_status.setErrorMessage("Has not logged in");
|
||||||
|
} else {
|
||||||
|
ts_status = new TS_Status(TS_StatusCode.SUCCESS_STATUS);
|
||||||
|
username.remove();
|
||||||
|
}
|
||||||
|
return new TSCloseSessionResp(ts_status);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
// TODO: 这个方法啥意思?
|
||||||
|
public TSCancelOperationResp CancelOperation(TSCancelOperationReq req) throws TException {
|
||||||
|
if (LOGGER.isInfoEnabled())
|
||||||
|
LOGGER.info("tsfile-server TSServiceImpl: receive cancle operation");
|
||||||
|
return new TSCancelOperationResp(new TS_Status(TS_StatusCode.SUCCESS_STATUS));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSCloseOperationResp CloseOperation(TSCloseOperationReq req) throws TException {
|
||||||
|
if (LOGGER.isInfoEnabled())
|
||||||
|
LOGGER.info("tsfile-server TSServiceImpl: receive statement close operation");
|
||||||
|
try {
|
||||||
|
ReadLockManager.getInstance().unlockForOneRequest();
|
||||||
|
clearAllStatusForCurrentRequest();
|
||||||
|
} catch (NotConsistentException e) {
|
||||||
|
LOGGER.warn("Warning in closeOperation : {}", e.getMessage());
|
||||||
|
// e.printStackTrace();
|
||||||
|
} catch (ProcessorException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
LOGGER.error("Error in closeOperation : {}", e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return new TSCloseOperationResp(new TS_Status(TS_StatusCode.SUCCESS_STATUS));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearAllStatusForCurrentRequest() {
|
||||||
|
this.queryRet.get().clear();
|
||||||
|
this.queryStatus.get().clear();
|
||||||
|
// Clear all parameters in last request.
|
||||||
|
exec.clearParamter();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSFetchMetadataResp FetchMetadata(TSFetchMetadataReq req) throws TException {
|
||||||
|
LOGGER.info("tsfile-server FetchMetadata: Receive fetch metadata operation");
|
||||||
|
TS_Status status;
|
||||||
|
if (!checkLogin()) {
|
||||||
|
LOGGER.info("tsfile-server ExecuteStatement: Not login.");
|
||||||
|
status = new TS_Status(TS_StatusCode.ERROR_STATUS);
|
||||||
|
status.setErrorMessage("Not login");
|
||||||
|
return new TSFetchMetadataResp(status);
|
||||||
|
}
|
||||||
|
TSFetchMetadataResp resp = new TSFetchMetadataResp();
|
||||||
|
try {
|
||||||
|
Metadata metadata = MManager.getInstance().getMetadata();
|
||||||
|
String metadataInJson = MManager.getInstance().getMetadataInString();
|
||||||
|
Map<String, List<ColumnSchema>> seriesMap = metadata.getSeriesMap();
|
||||||
|
Map<String, List<TSColumnSchema>> tsSeriesMap = Utils.convertAllSchema(seriesMap);
|
||||||
|
resp.setSeriesMap(tsSeriesMap);
|
||||||
|
resp.setDeltaObjectMap(metadata.getDeltaObjectMap());
|
||||||
|
resp.setMetadataInJson(metadataInJson);
|
||||||
|
status = new TS_Status(TS_StatusCode.SUCCESS_STATUS);
|
||||||
|
resp.setStatus(status);
|
||||||
|
} catch (PathErrorException e) {
|
||||||
|
LOGGER.error("tsfile-server FetchMetadata: failed to get all schema", e);
|
||||||
|
status = new TS_Status(TS_StatusCode.ERROR_STATUS);
|
||||||
|
status.setErrorMessage(e.getMessage());
|
||||||
|
resp.setStatus(status);
|
||||||
|
resp.setSeriesMap(null);
|
||||||
|
resp.setDeltaObjectMap(null);
|
||||||
|
resp.setMetadataInJson(null);
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.error("tsfile-server FetchMetadata: failed to get all schema with unknown reason", e);
|
||||||
|
status = new TS_Status(TS_StatusCode.ERROR_STATUS);
|
||||||
|
status.setErrorMessage(e.getMessage());
|
||||||
|
resp.setStatus(status);
|
||||||
|
resp.setSeriesMap(null);
|
||||||
|
resp.setDeltaObjectMap(null);
|
||||||
|
resp.setMetadataInJson(null);
|
||||||
|
}
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Judge whether the statement is ADMIN COMMOND and if true, execute it.
|
||||||
|
*
|
||||||
|
* @param statement
|
||||||
|
* @return true if the statement is ADMIN COMMOND
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public boolean execAdminCommond(String statement) throws IOException {
|
||||||
|
if (!username.get().equals("root")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (statement == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
statement = statement.toLowerCase();
|
||||||
|
switch (statement) {
|
||||||
|
case "close":
|
||||||
|
FileNodeManager.getInstance().closeAll();
|
||||||
|
writeLogManager.overflowFlush();
|
||||||
|
writeLogManager.bufferFlush();
|
||||||
|
// MManager.getInstance().flushObjectToFile();
|
||||||
|
return true;
|
||||||
|
case "merge":
|
||||||
|
FileNodeManager.getInstance().mergeAll();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用来测试的函数,仅供测试,后面要删除
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
* @throws TException
|
||||||
|
*/
|
||||||
|
public TSExecuteStatementResp testExecute(TSExecuteStatementReq req) {
|
||||||
|
TSExecuteStatementResp resp = getTSExecuteStatementResp(TS_StatusCode.SUCCESS_STATUS, "");
|
||||||
|
String sql = req.statement;
|
||||||
|
String[] params = sql.substring(5).split(" ");
|
||||||
|
List<String> columns = new ArrayList<>();
|
||||||
|
columns.add(params[0] + "(" + params[1] + ")");
|
||||||
|
TSHandleIdentifier operationId = new TSHandleIdentifier(ByteBuffer.wrap(username.get().getBytes()),
|
||||||
|
ByteBuffer.wrap(("PASS".getBytes())));
|
||||||
|
TSOperationHandle operationHandle = null;
|
||||||
|
resp.setColumns(columns);
|
||||||
|
operationHandle = new TSOperationHandle(operationId, true);
|
||||||
|
resp.setOperationHandle(operationHandle);
|
||||||
|
recordANewQuery(sql, null);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSExecuteBatchStatementResp ExecuteBatchStatement(TSExecuteBatchStatementReq req) throws TException {
|
||||||
|
try {
|
||||||
|
LOGGER.info("tsfile-server ExecuteBatchStatement: Receive execute batch sql operation");
|
||||||
|
if (!checkLogin()) {
|
||||||
|
LOGGER.info("tsfile-server ExecuteBatchStatement: Not login.");
|
||||||
|
return getTSBathcExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Not login", null);
|
||||||
|
}
|
||||||
|
List<String> statements = req.getStatements();
|
||||||
|
List<Integer> result = new ArrayList<>();
|
||||||
|
|
||||||
|
TSqlParserV2 parser = new TSqlParserV2();
|
||||||
|
ArrayList<RootOperator> opList = new ArrayList<>();
|
||||||
|
for (String statement : statements) {
|
||||||
|
RootOperator root = parser.parseSQLToOperator(statement);
|
||||||
|
if (root.isQuery()) {
|
||||||
|
return getTSBathcExecuteStatementResp(TS_StatusCode.ERROR_STATUS,
|
||||||
|
"statement is query :" + statement, result);
|
||||||
|
}
|
||||||
|
opList.add(root);
|
||||||
|
}
|
||||||
|
for (RootOperator op: opList) {
|
||||||
|
ExecuteUpdateStatement(op);
|
||||||
|
}
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
return getTSBathcExecuteStatementResp(TS_StatusCode.SUCCESS_STATUS, "Execute statements successfully",
|
||||||
|
result);
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.error("tsfile-server ExecuteBatchStatement: error occurs when executing statements", e);
|
||||||
|
return getTSBathcExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSExecuteStatementResp ExecuteStatement(TSExecuteStatementReq req) throws TException {
|
||||||
|
try {
|
||||||
|
// 测试代码
|
||||||
|
String sql = req.getStatement();
|
||||||
|
if (sql != null && sql.startsWith("test:")) {
|
||||||
|
return testExecute(req);
|
||||||
|
}
|
||||||
|
// 测试代码(结束)
|
||||||
|
|
||||||
|
LOGGER.info("tsfile-server ExecuteStatement: Receive execute sql operation,statement {}", req.statement);
|
||||||
|
if (!checkLogin()) {
|
||||||
|
LOGGER.info("tsfile-server ExecuteStatement: Not login.");
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Not login");
|
||||||
|
}
|
||||||
|
String statement = req.getStatement();
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (execAdminCommond(statement)) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.SUCCESS_STATUS, "ADMIN_COMMOND_SUCCESS");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Server Internal Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
TSqlParserV2 parser = new TSqlParserV2();
|
||||||
|
RootOperator root;
|
||||||
|
try {
|
||||||
|
root = parser.parseSQLToOperator(statement);
|
||||||
|
} catch (IllegalASTFormatException e) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS,
|
||||||
|
"Statement is not right:" + e.getMessage());
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Statement is not allowed");
|
||||||
|
}
|
||||||
|
if (root.isQuery()) {
|
||||||
|
return ExecuteQueryStatement(req);
|
||||||
|
} else {
|
||||||
|
return ExecuteUpdateStatement(root);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSExecuteStatementResp ExecuteQueryStatement(TSExecuteStatementReq req) throws TException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
LOGGER.info("tsfile-server ExecuteQueryStatement: receive query sql operation,statement {}", req.statement);
|
||||||
|
if (!checkLogin()) {
|
||||||
|
LOGGER.info("tsfile-server ExecuteQueryStatement: Not login.");
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Not login");
|
||||||
|
}
|
||||||
|
|
||||||
|
String statement = req.getStatement();
|
||||||
|
TSqlParserV2 parser = new TSqlParserV2();
|
||||||
|
RootOperator root = parser.parseSQLToOperator(statement);
|
||||||
|
|
||||||
|
List<Path> paths = null;
|
||||||
|
// paths = ((SFWOperator) root).getSelSeriesPaths(exec);
|
||||||
|
PhysicalPlan plan = parser.parseSQLToPhysicalPlan(statement, exec);
|
||||||
|
paths = plan.getInvolvedSeriesPaths();
|
||||||
|
|
||||||
|
// check whether current statement is a query statement
|
||||||
|
if (!root.isQuery()) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Statement Error: Not a query statement");
|
||||||
|
}
|
||||||
|
|
||||||
|
// check path exists
|
||||||
|
if (paths.size() == 0) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Selected columns do NOT EXIST.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// check file level set
|
||||||
|
try {
|
||||||
|
MManager.getInstance().checkFileLevel(paths);
|
||||||
|
} catch (PathErrorException e) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
// check permissions
|
||||||
|
if (!checkAuthorization(paths, root.getType())) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "No permissions for this query.");
|
||||||
|
}
|
||||||
|
|
||||||
|
TSExecuteStatementResp resp = getTSExecuteStatementResp(TS_StatusCode.SUCCESS_STATUS, "");
|
||||||
|
List<String> columns = new ArrayList<>();
|
||||||
|
for (Path p : paths) {
|
||||||
|
columns.add(p.getFullPath());
|
||||||
|
}
|
||||||
|
TSHandleIdentifier operationId = new TSHandleIdentifier(ByteBuffer.wrap(username.get().getBytes()),
|
||||||
|
ByteBuffer.wrap(("PASS".getBytes())));
|
||||||
|
TSOperationHandle operationHandle = null;
|
||||||
|
resp.setColumns(columns);
|
||||||
|
operationHandle = new TSOperationHandle(operationId, true);
|
||||||
|
resp.setOperationHandle(operationHandle);
|
||||||
|
|
||||||
|
recordANewQuery(statement, root);
|
||||||
|
|
||||||
|
LOGGER.info("ExecuteQueryStatement: finish query statement {}", statement);
|
||||||
|
return resp;
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.error("Server internal error: {}", e.getMessage());
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsResp testFetchResults(TSFetchResultsReq req) {
|
||||||
|
String sql = req.statement;
|
||||||
|
if (!queryStatus.get().containsKey(sql)) {
|
||||||
|
TSFetchResultsResp resp = getTSFetchResultsResp(TS_StatusCode.SUCCESS_STATUS,
|
||||||
|
"FetchResult successfully. Has more result: " + false);
|
||||||
|
resp.setHasResultSet(false);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
String[] params = sql.substring(5).split(" ");
|
||||||
|
TSDataType dataType;
|
||||||
|
try {
|
||||||
|
dataType = MManager.getInstance().getSeriesType(params[1]);
|
||||||
|
AggregateFunction aggrFunc = AggreFuncFactory.getAggrFuncByName(params[0], dataType);
|
||||||
|
Path p = new Path(params[1]);
|
||||||
|
QueryDataSet queryDataSet = new OverflowQueryEngine().aggregate(p, aggrFunc, null, null, null);
|
||||||
|
TSQueryDataSet tsQueryDataSet = Utils.convertQueryDataSet(queryDataSet);
|
||||||
|
|
||||||
|
TSFetchResultsResp resp = getTSFetchResultsResp(TS_StatusCode.SUCCESS_STATUS,
|
||||||
|
"FetchResult successfully. Has more result: " + false);
|
||||||
|
resp.setHasResultSet(true);
|
||||||
|
resp.setQueryDataSet(tsQueryDataSet);
|
||||||
|
queryStatus.get().remove(sql);
|
||||||
|
return resp;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSFetchResultsResp FetchResults(TSFetchResultsReq req) throws TException {
|
||||||
|
// 测试代码
|
||||||
|
if (req.statement.startsWith("test:")) {
|
||||||
|
return testFetchResults(req);
|
||||||
|
}
|
||||||
|
// 测试代码(结束)
|
||||||
|
try {
|
||||||
|
if (!checkLogin()) {
|
||||||
|
return getTSFetchResultsResp(TS_StatusCode.ERROR_STATUS, "Not login.");
|
||||||
|
}
|
||||||
|
String statement = req.getStatement();
|
||||||
|
LOGGER.info("tsfile-server TSServiceImpl: receive fetch result sql operation,statement {}", statement);
|
||||||
|
|
||||||
|
if (!queryStatus.get().containsKey(statement)) {
|
||||||
|
return getTSFetchResultsResp(TS_StatusCode.ERROR_STATUS, "Has not executed statement");
|
||||||
|
}
|
||||||
|
|
||||||
|
int fetchSize = req.getFetch_size();
|
||||||
|
Iterator<QueryDataSet> queryDataSetIterator;
|
||||||
|
if (!queryRet.get().containsKey(statement)) {
|
||||||
|
TSqlParserV2 parser = new TSqlParserV2();
|
||||||
|
RootOperator operator = queryStatus.get().get(statement);
|
||||||
|
exec.setFetchSize(fetchSize);
|
||||||
|
queryDataSetIterator = parser.query(operator, exec);
|
||||||
|
queryRet.get().put(statement, queryDataSetIterator);
|
||||||
|
} else {
|
||||||
|
queryDataSetIterator = queryRet.get().get(statement);
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean hasResultSet = false;
|
||||||
|
// TODO: 需要和徐毅确认res是否可以这么用
|
||||||
|
QueryDataSet res = new QueryDataSet();
|
||||||
|
if (queryDataSetIterator.hasNext()) {
|
||||||
|
res = queryDataSetIterator.next();
|
||||||
|
hasResultSet = true;
|
||||||
|
} else {
|
||||||
|
hasResultSet = false;
|
||||||
|
queryRet.get().remove(statement);
|
||||||
|
}
|
||||||
|
TSQueryDataSet tsQueryDataSet = Utils.convertQueryDataSet(res);
|
||||||
|
|
||||||
|
TSFetchResultsResp resp = getTSFetchResultsResp(TS_StatusCode.SUCCESS_STATUS,
|
||||||
|
"FetchResult successfully. Has more result: " + hasResultSet);
|
||||||
|
resp.setHasResultSet(hasResultSet);
|
||||||
|
resp.setQueryDataSet(tsQueryDataSet);
|
||||||
|
return resp;
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.error("Server Internal Error: {}", e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
return getTSFetchResultsResp(TS_StatusCode.ERROR_STATUS, "Server Internal Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSExecuteStatementResp ExecuteUpdateStatement(TSExecuteStatementReq req) throws TException {
|
||||||
|
try {
|
||||||
|
if (!checkLogin()) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Not login");
|
||||||
|
}
|
||||||
|
String statement = req.getStatement();
|
||||||
|
return ExecuteUpdateStatement(statement);
|
||||||
|
} catch (ProcessorException e) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
LOGGER.error(e.getMessage());
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private TSExecuteStatementResp ExecuteUpdateStatement(RootOperator root) throws TException {
|
||||||
|
try {
|
||||||
|
LOGGER.debug("ExecuteUpdateStatement: receive statement {}", root);
|
||||||
|
PhysicalPlan plan = root.transformToPhysicalPlan(exec);
|
||||||
|
List<Path> paths = plan.getInvolvedSeriesPaths();
|
||||||
|
|
||||||
|
if (!checkAuthorization(paths, root.getType())) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "No permissions for this operation");
|
||||||
|
}
|
||||||
|
// TODO 是否要添加执行的信息而不是仅仅返回正确或者错误
|
||||||
|
boolean execRet;
|
||||||
|
try {
|
||||||
|
execRet = plan.processNonQuery(exec);
|
||||||
|
} catch (ProcessorException e) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
}
|
||||||
|
if (execRet && needToBeWritenToLog(plan)) {
|
||||||
|
writeLogManager.write(plan);
|
||||||
|
}
|
||||||
|
TS_StatusCode statusCode = execRet ? TS_StatusCode.SUCCESS_STATUS : TS_StatusCode.ERROR_STATUS;
|
||||||
|
String msg = execRet ? "Execute successfully" : "Execute statement error.";
|
||||||
|
TSExecuteStatementResp resp = getTSExecuteStatementResp(statusCode, msg);
|
||||||
|
TSHandleIdentifier operationId = new TSHandleIdentifier(ByteBuffer.wrap(username.get().getBytes()),
|
||||||
|
ByteBuffer.wrap(("PASS".getBytes())));
|
||||||
|
TSOperationHandle operationHandle = null;
|
||||||
|
operationHandle = new TSOperationHandle(operationId, false);
|
||||||
|
resp.setOperationHandle(operationHandle);
|
||||||
|
return resp;
|
||||||
|
} catch (QueryProcessorException e) {
|
||||||
|
LOGGER.error(e.getMessage());
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOGGER.error("Write preLog error", e);
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.SUCCESS_STATUS, "Write log error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private TSExecuteStatementResp ExecuteUpdateStatement(String statement)
|
||||||
|
throws TException, QueryProcessorException, IOException, ProcessorException {
|
||||||
|
|
||||||
|
LOGGER.info("ExecuteUpdateStatement: receive statement {}", statement);
|
||||||
|
TSqlParserV2 parser = new TSqlParserV2();
|
||||||
|
RootOperator root;
|
||||||
|
|
||||||
|
try {
|
||||||
|
root = parser.parseSQLToOperator(statement);
|
||||||
|
} catch (QueryProcessorException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
}
|
||||||
|
if (root.isQuery()) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Statement is a query statement.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果操作是增删改
|
||||||
|
PhysicalPlan plan = parser.parseSQLToPhysicalPlan(statement, exec);
|
||||||
|
List<Path> paths = plan.getInvolvedSeriesPaths();
|
||||||
|
|
||||||
|
if (!checkAuthorization(paths, root.getType())) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "No permissions for this operation");
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO 是否要添加执行的信息而不是仅仅返回正确或者错误
|
||||||
|
boolean execRet;
|
||||||
|
try {
|
||||||
|
execRet = parser.nonQuery(root, exec);
|
||||||
|
} catch (ProcessorException e) {
|
||||||
|
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
|
||||||
|
}
|
||||||
|
if (execRet && needToBeWritenToLog(plan)) {
|
||||||
|
writeLogManager.write(plan);
|
||||||
|
}
|
||||||
|
TS_StatusCode statusCode = execRet ? TS_StatusCode.SUCCESS_STATUS : TS_StatusCode.ERROR_STATUS;
|
||||||
|
String msg = execRet ? "Execute successfully" : "Execute statement error.";
|
||||||
|
TSExecuteStatementResp resp = getTSExecuteStatementResp(statusCode, msg);
|
||||||
|
TSHandleIdentifier operationId = new TSHandleIdentifier(ByteBuffer.wrap(username.get().getBytes()),
|
||||||
|
ByteBuffer.wrap(("PASS".getBytes())));
|
||||||
|
TSOperationHandle operationHandle = null;
|
||||||
|
operationHandle = new TSOperationHandle(operationId, false);
|
||||||
|
resp.setOperationHandle(operationHandle);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean needToBeWritenToLog(PhysicalPlan plan) {
|
||||||
|
if (plan.getOperatorType() == OperatorType.INSERT) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (plan.getOperatorType() == OperatorType.UPDATE) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (plan.getOperatorType() == OperatorType.DELETE) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void recordANewQuery(String statement, RootOperator op) {
|
||||||
|
queryStatus.get().put(statement, op);
|
||||||
|
// refresh current queryRet for statement
|
||||||
|
if (queryRet.get().containsKey(statement)) {
|
||||||
|
queryRet.get().remove(statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether current user has logined.
|
||||||
|
*
|
||||||
|
* @return true: If logined; false: If not logined
|
||||||
|
*/
|
||||||
|
private boolean checkLogin() {
|
||||||
|
if (username.get() == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkAuthorization(List<Path> paths, OperatorType type) {
|
||||||
|
return AuthorityChecker.check(username.get(), paths, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TSExecuteStatementResp getTSExecuteStatementResp(TS_StatusCode code, String msg) {
|
||||||
|
TSExecuteStatementResp resp = new TSExecuteStatementResp();
|
||||||
|
TS_Status ts_status = new TS_Status(code);
|
||||||
|
ts_status.setErrorMessage(msg);
|
||||||
|
resp.setStatus(ts_status);
|
||||||
|
TSHandleIdentifier operationId = new TSHandleIdentifier(ByteBuffer.wrap(username.get().getBytes()),
|
||||||
|
ByteBuffer.wrap(("PASS".getBytes())));
|
||||||
|
TSOperationHandle operationHandle = new TSOperationHandle(operationId, false);
|
||||||
|
resp.setOperationHandle(operationHandle);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
private TSExecuteBatchStatementResp getTSBathcExecuteStatementResp(TS_StatusCode code, String msg,
|
||||||
|
List<Integer> result) {
|
||||||
|
TSExecuteBatchStatementResp resp = new TSExecuteBatchStatementResp();
|
||||||
|
TS_Status ts_status = new TS_Status(code);
|
||||||
|
ts_status.setErrorMessage(msg);
|
||||||
|
resp.setStatus(ts_status);
|
||||||
|
resp.setResult(result);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
private TSFetchResultsResp getTSFetchResultsResp(TS_StatusCode code, String msg) {
|
||||||
|
TSFetchResultsResp resp = new TSFetchResultsResp();
|
||||||
|
TS_Status ts_status = new TS_Status(code);
|
||||||
|
ts_status.setErrorMessage(msg);
|
||||||
|
resp.setStatus(ts_status);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,129 @@
|
||||||
|
package cn.edu.thu.tsfiledb.service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfile.timeseries.read.query.DynamicOneColumnData;
|
||||||
|
import cn.edu.thu.tsfile.timeseries.read.query.QueryDataSet;
|
||||||
|
import cn.edu.thu.tsfiledb.metadata.ColumnSchema;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSColumnSchema;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSDynamicOneColumnData;
|
||||||
|
import cn.edu.thu.tsfiledb.service.rpc.thrift.TSQueryDataSet;
|
||||||
|
|
||||||
|
public class Utils {
|
||||||
|
public static Map<String, List<TSColumnSchema>> convertAllSchema(Map<String, List<ColumnSchema>> allSchema){
|
||||||
|
if(allSchema == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Map<String, List<TSColumnSchema>> tsAllSchema = new HashMap<>();
|
||||||
|
for(Map.Entry<String, List<ColumnSchema>> entry : allSchema.entrySet()){
|
||||||
|
List<TSColumnSchema> tsColumnSchemas = new ArrayList<>();
|
||||||
|
for(ColumnSchema columnSchema : entry.getValue()){
|
||||||
|
tsColumnSchemas.add(convertColumnSchema(columnSchema));
|
||||||
|
}
|
||||||
|
tsAllSchema.put(entry.getKey(), tsColumnSchemas);
|
||||||
|
}
|
||||||
|
return tsAllSchema;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TSColumnSchema convertColumnSchema(ColumnSchema schema){
|
||||||
|
if(schema == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
TSColumnSchema tsColumnSchema = new TSColumnSchema();
|
||||||
|
tsColumnSchema.setName(schema.name);
|
||||||
|
tsColumnSchema.setDataType(schema.dataType == null ? null : schema.dataType.toString());
|
||||||
|
tsColumnSchema.setEncoding(schema.encoding == null ? null : schema.encoding.toString());
|
||||||
|
tsColumnSchema.setOtherArgs(schema.getArgsMap() == null ? null : schema.getArgsMap());
|
||||||
|
return tsColumnSchema;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static TSQueryDataSet convertQueryDataSet(QueryDataSet queryDataSet){
|
||||||
|
List<String> keys = new ArrayList<>();
|
||||||
|
List<TSDynamicOneColumnData> values = new ArrayList<>();
|
||||||
|
for(Map.Entry<String,DynamicOneColumnData> entry: queryDataSet.mapRet.entrySet()){
|
||||||
|
keys.add(entry.getKey());
|
||||||
|
values.add(convertDynamicOneColumnData(entry.getValue()));
|
||||||
|
}
|
||||||
|
TSQueryDataSet tsQueryDataSet = new TSQueryDataSet(keys,values);
|
||||||
|
return tsQueryDataSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static TSDynamicOneColumnData convertDynamicOneColumnData(DynamicOneColumnData dynamicOneColumnData){
|
||||||
|
List<Long> timeRetList = new ArrayList<Long>();
|
||||||
|
for(int i = 0 ; i < dynamicOneColumnData.timeLength; i ++){
|
||||||
|
timeRetList.add(dynamicOneColumnData.getTime(i));
|
||||||
|
}
|
||||||
|
TSDynamicOneColumnData tsDynamicOneColumnData = new TSDynamicOneColumnData(dynamicOneColumnData.getDeltaObjectType(), dynamicOneColumnData.dataType.toString(), dynamicOneColumnData.length, timeRetList);
|
||||||
|
|
||||||
|
switch (dynamicOneColumnData.dataType) {
|
||||||
|
case BOOLEAN:
|
||||||
|
List<Boolean> boolList = new ArrayList<>();
|
||||||
|
for(int i = 0 ; i < dynamicOneColumnData.length; i ++){
|
||||||
|
boolList.add(dynamicOneColumnData.getBoolean(i));
|
||||||
|
}
|
||||||
|
tsDynamicOneColumnData.setBoolList(boolList);
|
||||||
|
break;
|
||||||
|
case INT32:
|
||||||
|
List<Integer> intList = new ArrayList<>();
|
||||||
|
for(int i = 0 ; i < dynamicOneColumnData.length; i ++){
|
||||||
|
intList.add(dynamicOneColumnData.getInt(i));
|
||||||
|
}
|
||||||
|
tsDynamicOneColumnData.setI32List(intList);
|
||||||
|
break;
|
||||||
|
case INT64:
|
||||||
|
List<Long> longList = new ArrayList<>();
|
||||||
|
for(int i = 0 ; i < dynamicOneColumnData.length; i ++){
|
||||||
|
longList.add(dynamicOneColumnData.getLong(i));
|
||||||
|
}
|
||||||
|
tsDynamicOneColumnData.setI64List(longList);
|
||||||
|
break;
|
||||||
|
case FLOAT:
|
||||||
|
List<Double> floatList = new ArrayList<>();
|
||||||
|
for(int i = 0 ; i < dynamicOneColumnData.length; i ++){
|
||||||
|
floatList.add((double) dynamicOneColumnData.getFloat(i));
|
||||||
|
}
|
||||||
|
tsDynamicOneColumnData.setFloatList(floatList);
|
||||||
|
break;
|
||||||
|
case DOUBLE:
|
||||||
|
List<Double> doubleList = new ArrayList<>();
|
||||||
|
for(int i = 0 ; i < dynamicOneColumnData.length; i ++){
|
||||||
|
doubleList.add(dynamicOneColumnData.getDouble(i));
|
||||||
|
}
|
||||||
|
tsDynamicOneColumnData.setDoubleList(doubleList);
|
||||||
|
break;
|
||||||
|
case BYTE_ARRAY:
|
||||||
|
List<Byte> byteList = new ArrayList<>();
|
||||||
|
for(int i = 0 ; i < dynamicOneColumnData.length; i ++){
|
||||||
|
byteList.add(Byte.valueOf(dynamicOneColumnData.getStringValue(i)));
|
||||||
|
}
|
||||||
|
tsDynamicOneColumnData.setBinaryList(byteList);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tsDynamicOneColumnData;
|
||||||
|
}
|
||||||
|
|
||||||
|
// public static TSJDBCRecord convertRecord(TSRecord record){
|
||||||
|
// TSJDBCRecord tsJDBCRecord = new TSJDBCRecord();
|
||||||
|
// tsJDBCRecord.setDeviceId(record.getRowKey());
|
||||||
|
// tsJDBCRecord.setTimeValue(new TSTimeValue(record.getTime().getTime()));
|
||||||
|
// tsJDBCRecord.setDeviceType(record.getDeviceType());
|
||||||
|
// List<TSDataPoint> dataPoints = new ArrayList<>();
|
||||||
|
// for(DataPoint point : record.getTuple()){
|
||||||
|
// String valueStr = point.getValue() == null ? "null" : point.getValue();
|
||||||
|
// TSDataPoint tsDataPoint = new TSDataPoint(point.getType().toString(),point.getSeriesName(),point.getDeviceId(),valueStr);
|
||||||
|
// tsDataPoint.setGroupId(point.getGroupId());
|
||||||
|
// dataPoints.add(tsDataPoint);
|
||||||
|
// }
|
||||||
|
// tsJDBCRecord.setDataList(dataPoints);
|
||||||
|
// return tsJDBCRecord;
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,393 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSCancelOperationReq implements org.apache.thrift.TBase<TSCancelOperationReq, TSCancelOperationReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSCancelOperationReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSCancelOperationReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField OPERATION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("operationHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSCancelOperationReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSCancelOperationReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle operationHandle; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
OPERATION_HANDLE((short)1, "operationHandle");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // OPERATION_HANDLE
|
||||||
|
return OPERATION_HANDLE;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.OPERATION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("operationHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TSOperationHandle")));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSCancelOperationReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationReq(
|
||||||
|
TSOperationHandle operationHandle)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.operationHandle = operationHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSCancelOperationReq(TSCancelOperationReq other) {
|
||||||
|
if (other.isSetOperationHandle()) {
|
||||||
|
this.operationHandle = other.operationHandle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationReq deepCopy() {
|
||||||
|
return new TSCancelOperationReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle getOperationHandle() {
|
||||||
|
return this.operationHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationReq setOperationHandle(TSOperationHandle operationHandle) {
|
||||||
|
this.operationHandle = operationHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetOperationHandle() {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field operationHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetOperationHandle() {
|
||||||
|
return this.operationHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetOperationHandle();
|
||||||
|
} else {
|
||||||
|
setOperationHandle((TSOperationHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return getOperationHandle();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return isSetOperationHandle();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSCancelOperationReq)
|
||||||
|
return this.equals((TSCancelOperationReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSCancelOperationReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_operationHandle = true && this.isSetOperationHandle();
|
||||||
|
boolean that_present_operationHandle = true && that.isSetOperationHandle();
|
||||||
|
if (this_present_operationHandle || that_present_operationHandle) {
|
||||||
|
if (!(this_present_operationHandle && that_present_operationHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.operationHandle.equals(that.operationHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_operationHandle = true && (isSetOperationHandle());
|
||||||
|
list.add(present_operationHandle);
|
||||||
|
if (present_operationHandle)
|
||||||
|
list.add(operationHandle);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSCancelOperationReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetOperationHandle()).compareTo(other.isSetOperationHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetOperationHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operationHandle, other.operationHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSCancelOperationReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("operationHandle:");
|
||||||
|
if (this.operationHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.operationHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (operationHandle == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'operationHandle' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCancelOperationReqStandardScheme getScheme() {
|
||||||
|
return new TSCancelOperationReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationReqStandardScheme extends StandardScheme<TSCancelOperationReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSCancelOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // OPERATION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSCancelOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.operationHandle != null) {
|
||||||
|
oprot.writeFieldBegin(OPERATION_HANDLE_FIELD_DESC);
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCancelOperationReqTupleScheme getScheme() {
|
||||||
|
return new TSCancelOperationReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationReqTupleScheme extends TupleScheme<TSCancelOperationReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSCancelOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSCancelOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,396 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSCancelOperationResp implements org.apache.thrift.TBase<TSCancelOperationResp, TSCancelOperationResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSCancelOperationResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSCancelOperationResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSCancelOperationRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSCancelOperationRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSCancelOperationResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationResp(
|
||||||
|
TS_Status status)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSCancelOperationResp(TSCancelOperationResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationResp deepCopy() {
|
||||||
|
return new TSCancelOperationResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCancelOperationResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSCancelOperationResp)
|
||||||
|
return this.equals((TSCancelOperationResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSCancelOperationResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSCancelOperationResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSCancelOperationResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCancelOperationRespStandardScheme getScheme() {
|
||||||
|
return new TSCancelOperationRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationRespStandardScheme extends StandardScheme<TSCancelOperationResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSCancelOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSCancelOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCancelOperationRespTupleScheme getScheme() {
|
||||||
|
return new TSCancelOperationRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCancelOperationRespTupleScheme extends TupleScheme<TSCancelOperationResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSCancelOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSCancelOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,393 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSCloseOperationReq implements org.apache.thrift.TBase<TSCloseOperationReq, TSCloseOperationReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSCloseOperationReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSCloseOperationReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField OPERATION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("operationHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSCloseOperationReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSCloseOperationReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle operationHandle; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
OPERATION_HANDLE((short)1, "operationHandle");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // OPERATION_HANDLE
|
||||||
|
return OPERATION_HANDLE;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.OPERATION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("operationHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TSOperationHandle")));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSCloseOperationReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationReq(
|
||||||
|
TSOperationHandle operationHandle)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.operationHandle = operationHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSCloseOperationReq(TSCloseOperationReq other) {
|
||||||
|
if (other.isSetOperationHandle()) {
|
||||||
|
this.operationHandle = other.operationHandle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationReq deepCopy() {
|
||||||
|
return new TSCloseOperationReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle getOperationHandle() {
|
||||||
|
return this.operationHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationReq setOperationHandle(TSOperationHandle operationHandle) {
|
||||||
|
this.operationHandle = operationHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetOperationHandle() {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field operationHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetOperationHandle() {
|
||||||
|
return this.operationHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetOperationHandle();
|
||||||
|
} else {
|
||||||
|
setOperationHandle((TSOperationHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return getOperationHandle();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return isSetOperationHandle();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSCloseOperationReq)
|
||||||
|
return this.equals((TSCloseOperationReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSCloseOperationReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_operationHandle = true && this.isSetOperationHandle();
|
||||||
|
boolean that_present_operationHandle = true && that.isSetOperationHandle();
|
||||||
|
if (this_present_operationHandle || that_present_operationHandle) {
|
||||||
|
if (!(this_present_operationHandle && that_present_operationHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.operationHandle.equals(that.operationHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_operationHandle = true && (isSetOperationHandle());
|
||||||
|
list.add(present_operationHandle);
|
||||||
|
if (present_operationHandle)
|
||||||
|
list.add(operationHandle);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSCloseOperationReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetOperationHandle()).compareTo(other.isSetOperationHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetOperationHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operationHandle, other.operationHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSCloseOperationReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("operationHandle:");
|
||||||
|
if (this.operationHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.operationHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (operationHandle == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'operationHandle' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseOperationReqStandardScheme getScheme() {
|
||||||
|
return new TSCloseOperationReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationReqStandardScheme extends StandardScheme<TSCloseOperationReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSCloseOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // OPERATION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSCloseOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.operationHandle != null) {
|
||||||
|
oprot.writeFieldBegin(OPERATION_HANDLE_FIELD_DESC);
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseOperationReqTupleScheme getScheme() {
|
||||||
|
return new TSCloseOperationReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationReqTupleScheme extends TupleScheme<TSCloseOperationReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSCloseOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSCloseOperationReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,396 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSCloseOperationResp implements org.apache.thrift.TBase<TSCloseOperationResp, TSCloseOperationResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSCloseOperationResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSCloseOperationResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSCloseOperationRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSCloseOperationRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSCloseOperationResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationResp(
|
||||||
|
TS_Status status)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSCloseOperationResp(TSCloseOperationResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationResp deepCopy() {
|
||||||
|
return new TSCloseOperationResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseOperationResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSCloseOperationResp)
|
||||||
|
return this.equals((TSCloseOperationResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSCloseOperationResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSCloseOperationResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSCloseOperationResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseOperationRespStandardScheme getScheme() {
|
||||||
|
return new TSCloseOperationRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationRespStandardScheme extends StandardScheme<TSCloseOperationResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSCloseOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSCloseOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseOperationRespTupleScheme getScheme() {
|
||||||
|
return new TSCloseOperationRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseOperationRespTupleScheme extends TupleScheme<TSCloseOperationResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSCloseOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSCloseOperationResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,393 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSCloseSessionReq implements org.apache.thrift.TBase<TSCloseSessionReq, TSCloseSessionReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSCloseSessionReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSCloseSessionReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField SESSION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSCloseSessionReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSCloseSessionReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle sessionHandle; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
SESSION_HANDLE((short)1, "sessionHandle");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // SESSION_HANDLE
|
||||||
|
return SESSION_HANDLE;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.SESSION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("sessionHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TS_SessionHandle")));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSCloseSessionReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionReq(
|
||||||
|
TS_SessionHandle sessionHandle)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSCloseSessionReq(TSCloseSessionReq other) {
|
||||||
|
if (other.isSetSessionHandle()) {
|
||||||
|
this.sessionHandle = other.sessionHandle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionReq deepCopy() {
|
||||||
|
return new TSCloseSessionReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle getSessionHandle() {
|
||||||
|
return this.sessionHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionReq setSessionHandle(TS_SessionHandle sessionHandle) {
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSessionHandle() {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field sessionHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSessionHandle() {
|
||||||
|
return this.sessionHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSessionHandle();
|
||||||
|
} else {
|
||||||
|
setSessionHandle((TS_SessionHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return getSessionHandle();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return isSetSessionHandle();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSCloseSessionReq)
|
||||||
|
return this.equals((TSCloseSessionReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSCloseSessionReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_sessionHandle = true && this.isSetSessionHandle();
|
||||||
|
boolean that_present_sessionHandle = true && that.isSetSessionHandle();
|
||||||
|
if (this_present_sessionHandle || that_present_sessionHandle) {
|
||||||
|
if (!(this_present_sessionHandle && that_present_sessionHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.sessionHandle.equals(that.sessionHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_sessionHandle = true && (isSetSessionHandle());
|
||||||
|
list.add(present_sessionHandle);
|
||||||
|
if (present_sessionHandle)
|
||||||
|
list.add(sessionHandle);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSCloseSessionReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetSessionHandle()).compareTo(other.isSetSessionHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSessionHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionHandle, other.sessionHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSCloseSessionReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("sessionHandle:");
|
||||||
|
if (this.sessionHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.sessionHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (sessionHandle == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'sessionHandle' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseSessionReqStandardScheme getScheme() {
|
||||||
|
return new TSCloseSessionReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionReqStandardScheme extends StandardScheme<TSCloseSessionReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSCloseSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // SESSION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSCloseSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.sessionHandle != null) {
|
||||||
|
oprot.writeFieldBegin(SESSION_HANDLE_FIELD_DESC);
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseSessionReqTupleScheme getScheme() {
|
||||||
|
return new TSCloseSessionReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionReqTupleScheme extends TupleScheme<TSCloseSessionReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSCloseSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSCloseSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,396 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSCloseSessionResp implements org.apache.thrift.TBase<TSCloseSessionResp, TSCloseSessionResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSCloseSessionResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSCloseSessionResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSCloseSessionRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSCloseSessionRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSCloseSessionResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionResp(
|
||||||
|
TS_Status status)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSCloseSessionResp(TSCloseSessionResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionResp deepCopy() {
|
||||||
|
return new TSCloseSessionResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSCloseSessionResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSCloseSessionResp)
|
||||||
|
return this.equals((TSCloseSessionResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSCloseSessionResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSCloseSessionResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSCloseSessionResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseSessionRespStandardScheme getScheme() {
|
||||||
|
return new TSCloseSessionRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionRespStandardScheme extends StandardScheme<TSCloseSessionResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSCloseSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSCloseSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSCloseSessionRespTupleScheme getScheme() {
|
||||||
|
return new TSCloseSessionRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSCloseSessionRespTupleScheme extends TupleScheme<TSCloseSessionResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSCloseSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSCloseSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,769 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSColumnSchema implements org.apache.thrift.TBase<TSColumnSchema, TSColumnSchema._Fields>, java.io.Serializable, Cloneable, Comparable<TSColumnSchema> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSColumnSchema");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField DATA_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("dataType", org.apache.thrift.protocol.TType.STRING, (short)2);
|
||||||
|
private static final org.apache.thrift.protocol.TField ENCODING_FIELD_DESC = new org.apache.thrift.protocol.TField("encoding", org.apache.thrift.protocol.TType.STRING, (short)3);
|
||||||
|
private static final org.apache.thrift.protocol.TField OTHER_ARGS_FIELD_DESC = new org.apache.thrift.protocol.TField("otherArgs", org.apache.thrift.protocol.TType.MAP, (short)4);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSColumnSchemaStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSColumnSchemaTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String name; // optional
|
||||||
|
public String dataType; // optional
|
||||||
|
public String encoding; // optional
|
||||||
|
public Map<String,String> otherArgs; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
NAME((short)1, "name"),
|
||||||
|
DATA_TYPE((short)2, "dataType"),
|
||||||
|
ENCODING((short)3, "encoding"),
|
||||||
|
OTHER_ARGS((short)4, "otherArgs");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // NAME
|
||||||
|
return NAME;
|
||||||
|
case 2: // DATA_TYPE
|
||||||
|
return DATA_TYPE;
|
||||||
|
case 3: // ENCODING
|
||||||
|
return ENCODING;
|
||||||
|
case 4: // OTHER_ARGS
|
||||||
|
return OTHER_ARGS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final _Fields optionals[] = {_Fields.NAME,_Fields.DATA_TYPE,_Fields.ENCODING,_Fields.OTHER_ARGS};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
tmpMap.put(_Fields.DATA_TYPE, new org.apache.thrift.meta_data.FieldMetaData("dataType", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
tmpMap.put(_Fields.ENCODING, new org.apache.thrift.meta_data.FieldMetaData("encoding", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
tmpMap.put(_Fields.OTHER_ARGS, new org.apache.thrift.meta_data.FieldMetaData("otherArgs", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSColumnSchema.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSColumnSchema() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSColumnSchema(TSColumnSchema other) {
|
||||||
|
if (other.isSetName()) {
|
||||||
|
this.name = other.name;
|
||||||
|
}
|
||||||
|
if (other.isSetDataType()) {
|
||||||
|
this.dataType = other.dataType;
|
||||||
|
}
|
||||||
|
if (other.isSetEncoding()) {
|
||||||
|
this.encoding = other.encoding;
|
||||||
|
}
|
||||||
|
if (other.isSetOtherArgs()) {
|
||||||
|
Map<String,String> __this__otherArgs = new HashMap<String,String>(other.otherArgs);
|
||||||
|
this.otherArgs = __this__otherArgs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSColumnSchema deepCopy() {
|
||||||
|
return new TSColumnSchema(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.name = null;
|
||||||
|
this.dataType = null;
|
||||||
|
this.encoding = null;
|
||||||
|
this.otherArgs = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSColumnSchema setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetName() {
|
||||||
|
this.name = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field name is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetName() {
|
||||||
|
return this.name != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNameIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.name = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataType() {
|
||||||
|
return this.dataType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSColumnSchema setDataType(String dataType) {
|
||||||
|
this.dataType = dataType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetDataType() {
|
||||||
|
this.dataType = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field dataType is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetDataType() {
|
||||||
|
return this.dataType != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataTypeIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.dataType = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEncoding() {
|
||||||
|
return this.encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSColumnSchema setEncoding(String encoding) {
|
||||||
|
this.encoding = encoding;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetEncoding() {
|
||||||
|
this.encoding = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field encoding is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetEncoding() {
|
||||||
|
return this.encoding != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEncodingIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.encoding = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOtherArgsSize() {
|
||||||
|
return (this.otherArgs == null) ? 0 : this.otherArgs.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void putToOtherArgs(String key, String val) {
|
||||||
|
if (this.otherArgs == null) {
|
||||||
|
this.otherArgs = new HashMap<String,String>();
|
||||||
|
}
|
||||||
|
this.otherArgs.put(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String,String> getOtherArgs() {
|
||||||
|
return this.otherArgs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSColumnSchema setOtherArgs(Map<String,String> otherArgs) {
|
||||||
|
this.otherArgs = otherArgs;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetOtherArgs() {
|
||||||
|
this.otherArgs = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field otherArgs is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetOtherArgs() {
|
||||||
|
return this.otherArgs != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOtherArgsIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.otherArgs = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case NAME:
|
||||||
|
if (value == null) {
|
||||||
|
unsetName();
|
||||||
|
} else {
|
||||||
|
setName((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DATA_TYPE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetDataType();
|
||||||
|
} else {
|
||||||
|
setDataType((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ENCODING:
|
||||||
|
if (value == null) {
|
||||||
|
unsetEncoding();
|
||||||
|
} else {
|
||||||
|
setEncoding((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OTHER_ARGS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetOtherArgs();
|
||||||
|
} else {
|
||||||
|
setOtherArgs((Map<String,String>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case NAME:
|
||||||
|
return getName();
|
||||||
|
|
||||||
|
case DATA_TYPE:
|
||||||
|
return getDataType();
|
||||||
|
|
||||||
|
case ENCODING:
|
||||||
|
return getEncoding();
|
||||||
|
|
||||||
|
case OTHER_ARGS:
|
||||||
|
return getOtherArgs();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case NAME:
|
||||||
|
return isSetName();
|
||||||
|
case DATA_TYPE:
|
||||||
|
return isSetDataType();
|
||||||
|
case ENCODING:
|
||||||
|
return isSetEncoding();
|
||||||
|
case OTHER_ARGS:
|
||||||
|
return isSetOtherArgs();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSColumnSchema)
|
||||||
|
return this.equals((TSColumnSchema)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSColumnSchema that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_name = true && this.isSetName();
|
||||||
|
boolean that_present_name = true && that.isSetName();
|
||||||
|
if (this_present_name || that_present_name) {
|
||||||
|
if (!(this_present_name && that_present_name))
|
||||||
|
return false;
|
||||||
|
if (!this.name.equals(that.name))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_dataType = true && this.isSetDataType();
|
||||||
|
boolean that_present_dataType = true && that.isSetDataType();
|
||||||
|
if (this_present_dataType || that_present_dataType) {
|
||||||
|
if (!(this_present_dataType && that_present_dataType))
|
||||||
|
return false;
|
||||||
|
if (!this.dataType.equals(that.dataType))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_encoding = true && this.isSetEncoding();
|
||||||
|
boolean that_present_encoding = true && that.isSetEncoding();
|
||||||
|
if (this_present_encoding || that_present_encoding) {
|
||||||
|
if (!(this_present_encoding && that_present_encoding))
|
||||||
|
return false;
|
||||||
|
if (!this.encoding.equals(that.encoding))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_otherArgs = true && this.isSetOtherArgs();
|
||||||
|
boolean that_present_otherArgs = true && that.isSetOtherArgs();
|
||||||
|
if (this_present_otherArgs || that_present_otherArgs) {
|
||||||
|
if (!(this_present_otherArgs && that_present_otherArgs))
|
||||||
|
return false;
|
||||||
|
if (!this.otherArgs.equals(that.otherArgs))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_name = true && (isSetName());
|
||||||
|
list.add(present_name);
|
||||||
|
if (present_name)
|
||||||
|
list.add(name);
|
||||||
|
|
||||||
|
boolean present_dataType = true && (isSetDataType());
|
||||||
|
list.add(present_dataType);
|
||||||
|
if (present_dataType)
|
||||||
|
list.add(dataType);
|
||||||
|
|
||||||
|
boolean present_encoding = true && (isSetEncoding());
|
||||||
|
list.add(present_encoding);
|
||||||
|
if (present_encoding)
|
||||||
|
list.add(encoding);
|
||||||
|
|
||||||
|
boolean present_otherArgs = true && (isSetOtherArgs());
|
||||||
|
list.add(present_otherArgs);
|
||||||
|
if (present_otherArgs)
|
||||||
|
list.add(otherArgs);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSColumnSchema other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetName()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetDataType()).compareTo(other.isSetDataType());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetDataType()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataType, other.dataType);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetEncoding()).compareTo(other.isSetEncoding());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetEncoding()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.encoding, other.encoding);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetOtherArgs()).compareTo(other.isSetOtherArgs());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetOtherArgs()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.otherArgs, other.otherArgs);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSColumnSchema(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
if (isSetName()) {
|
||||||
|
sb.append("name:");
|
||||||
|
if (this.name == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.name);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetDataType()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("dataType:");
|
||||||
|
if (this.dataType == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.dataType);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetEncoding()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("encoding:");
|
||||||
|
if (this.encoding == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.encoding);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetOtherArgs()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("otherArgs:");
|
||||||
|
if (this.otherArgs == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.otherArgs);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSColumnSchemaStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSColumnSchemaStandardScheme getScheme() {
|
||||||
|
return new TSColumnSchemaStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSColumnSchemaStandardScheme extends StandardScheme<TSColumnSchema> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSColumnSchema struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // NAME
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.name = iprot.readString();
|
||||||
|
struct.setNameIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // DATA_TYPE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.dataType = iprot.readString();
|
||||||
|
struct.setDataTypeIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // ENCODING
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.encoding = iprot.readString();
|
||||||
|
struct.setEncodingIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: // OTHER_ARGS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map160 = iprot.readMapBegin();
|
||||||
|
struct.otherArgs = new HashMap<String,String>(2*_map160.size);
|
||||||
|
String _key161;
|
||||||
|
String _val162;
|
||||||
|
for (int _i163 = 0; _i163 < _map160.size; ++_i163)
|
||||||
|
{
|
||||||
|
_key161 = iprot.readString();
|
||||||
|
_val162 = iprot.readString();
|
||||||
|
struct.otherArgs.put(_key161, _val162);
|
||||||
|
}
|
||||||
|
iprot.readMapEnd();
|
||||||
|
}
|
||||||
|
struct.setOtherArgsIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSColumnSchema struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.name != null) {
|
||||||
|
if (struct.isSetName()) {
|
||||||
|
oprot.writeFieldBegin(NAME_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.name);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.dataType != null) {
|
||||||
|
if (struct.isSetDataType()) {
|
||||||
|
oprot.writeFieldBegin(DATA_TYPE_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.dataType);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.encoding != null) {
|
||||||
|
if (struct.isSetEncoding()) {
|
||||||
|
oprot.writeFieldBegin(ENCODING_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.encoding);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.otherArgs != null) {
|
||||||
|
if (struct.isSetOtherArgs()) {
|
||||||
|
oprot.writeFieldBegin(OTHER_ARGS_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.otherArgs.size()));
|
||||||
|
for (Map.Entry<String, String> _iter164 : struct.otherArgs.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter164.getKey());
|
||||||
|
oprot.writeString(_iter164.getValue());
|
||||||
|
}
|
||||||
|
oprot.writeMapEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSColumnSchemaTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSColumnSchemaTupleScheme getScheme() {
|
||||||
|
return new TSColumnSchemaTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSColumnSchemaTupleScheme extends TupleScheme<TSColumnSchema> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSColumnSchema struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetName()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
if (struct.isSetDataType()) {
|
||||||
|
optionals.set(1);
|
||||||
|
}
|
||||||
|
if (struct.isSetEncoding()) {
|
||||||
|
optionals.set(2);
|
||||||
|
}
|
||||||
|
if (struct.isSetOtherArgs()) {
|
||||||
|
optionals.set(3);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 4);
|
||||||
|
if (struct.isSetName()) {
|
||||||
|
oprot.writeString(struct.name);
|
||||||
|
}
|
||||||
|
if (struct.isSetDataType()) {
|
||||||
|
oprot.writeString(struct.dataType);
|
||||||
|
}
|
||||||
|
if (struct.isSetEncoding()) {
|
||||||
|
oprot.writeString(struct.encoding);
|
||||||
|
}
|
||||||
|
if (struct.isSetOtherArgs()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.otherArgs.size());
|
||||||
|
for (Map.Entry<String, String> _iter165 : struct.otherArgs.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter165.getKey());
|
||||||
|
oprot.writeString(_iter165.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSColumnSchema struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
BitSet incoming = iprot.readBitSet(4);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
struct.name = iprot.readString();
|
||||||
|
struct.setNameIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(1)) {
|
||||||
|
struct.dataType = iprot.readString();
|
||||||
|
struct.setDataTypeIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(2)) {
|
||||||
|
struct.encoding = iprot.readString();
|
||||||
|
struct.setEncodingIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(3)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map166 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
struct.otherArgs = new HashMap<String,String>(2*_map166.size);
|
||||||
|
String _key167;
|
||||||
|
String _val168;
|
||||||
|
for (int _i169 = 0; _i169 < _map166.size; ++_i169)
|
||||||
|
{
|
||||||
|
_key167 = iprot.readString();
|
||||||
|
_val168 = iprot.readString();
|
||||||
|
struct.otherArgs.put(_key167, _val168);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setOtherArgsIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,546 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSExecuteBatchStatementReq implements org.apache.thrift.TBase<TSExecuteBatchStatementReq, TSExecuteBatchStatementReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSExecuteBatchStatementReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSExecuteBatchStatementReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField SESSION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField STATEMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("statements", org.apache.thrift.protocol.TType.LIST, (short)2);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSExecuteBatchStatementReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSExecuteBatchStatementReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle sessionHandle; // required
|
||||||
|
public List<String> statements; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
SESSION_HANDLE((short)1, "sessionHandle"),
|
||||||
|
STATEMENTS((short)2, "statements");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // SESSION_HANDLE
|
||||||
|
return SESSION_HANDLE;
|
||||||
|
case 2: // STATEMENTS
|
||||||
|
return STATEMENTS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.SESSION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("sessionHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_SessionHandle.class)));
|
||||||
|
tmpMap.put(_Fields.STATEMENTS, new org.apache.thrift.meta_data.FieldMetaData("statements", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSExecuteBatchStatementReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementReq(
|
||||||
|
TS_SessionHandle sessionHandle,
|
||||||
|
List<String> statements)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
this.statements = statements;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSExecuteBatchStatementReq(TSExecuteBatchStatementReq other) {
|
||||||
|
if (other.isSetSessionHandle()) {
|
||||||
|
this.sessionHandle = new TS_SessionHandle(other.sessionHandle);
|
||||||
|
}
|
||||||
|
if (other.isSetStatements()) {
|
||||||
|
List<String> __this__statements = new ArrayList<String>(other.statements);
|
||||||
|
this.statements = __this__statements;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementReq deepCopy() {
|
||||||
|
return new TSExecuteBatchStatementReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
this.statements = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle getSessionHandle() {
|
||||||
|
return this.sessionHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementReq setSessionHandle(TS_SessionHandle sessionHandle) {
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSessionHandle() {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field sessionHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSessionHandle() {
|
||||||
|
return this.sessionHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStatementsSize() {
|
||||||
|
return (this.statements == null) ? 0 : this.statements.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public java.util.Iterator<String> getStatementsIterator() {
|
||||||
|
return (this.statements == null) ? null : this.statements.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addToStatements(String elem) {
|
||||||
|
if (this.statements == null) {
|
||||||
|
this.statements = new ArrayList<String>();
|
||||||
|
}
|
||||||
|
this.statements.add(elem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getStatements() {
|
||||||
|
return this.statements;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementReq setStatements(List<String> statements) {
|
||||||
|
this.statements = statements;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatements() {
|
||||||
|
this.statements = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field statements is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatements() {
|
||||||
|
return this.statements != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatementsIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.statements = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSessionHandle();
|
||||||
|
} else {
|
||||||
|
setSessionHandle((TS_SessionHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATEMENTS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatements();
|
||||||
|
} else {
|
||||||
|
setStatements((List<String>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return getSessionHandle();
|
||||||
|
|
||||||
|
case STATEMENTS:
|
||||||
|
return getStatements();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return isSetSessionHandle();
|
||||||
|
case STATEMENTS:
|
||||||
|
return isSetStatements();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSExecuteBatchStatementReq)
|
||||||
|
return this.equals((TSExecuteBatchStatementReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSExecuteBatchStatementReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_sessionHandle = true && this.isSetSessionHandle();
|
||||||
|
boolean that_present_sessionHandle = true && that.isSetSessionHandle();
|
||||||
|
if (this_present_sessionHandle || that_present_sessionHandle) {
|
||||||
|
if (!(this_present_sessionHandle && that_present_sessionHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.sessionHandle.equals(that.sessionHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_statements = true && this.isSetStatements();
|
||||||
|
boolean that_present_statements = true && that.isSetStatements();
|
||||||
|
if (this_present_statements || that_present_statements) {
|
||||||
|
if (!(this_present_statements && that_present_statements))
|
||||||
|
return false;
|
||||||
|
if (!this.statements.equals(that.statements))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_sessionHandle = true && (isSetSessionHandle());
|
||||||
|
list.add(present_sessionHandle);
|
||||||
|
if (present_sessionHandle)
|
||||||
|
list.add(sessionHandle);
|
||||||
|
|
||||||
|
boolean present_statements = true && (isSetStatements());
|
||||||
|
list.add(present_statements);
|
||||||
|
if (present_statements)
|
||||||
|
list.add(statements);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSExecuteBatchStatementReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetSessionHandle()).compareTo(other.isSetSessionHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSessionHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionHandle, other.sessionHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatements()).compareTo(other.isSetStatements());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatements()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statements, other.statements);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSExecuteBatchStatementReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("sessionHandle:");
|
||||||
|
if (this.sessionHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.sessionHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("statements:");
|
||||||
|
if (this.statements == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.statements);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (sessionHandle == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'sessionHandle' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
if (statements == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'statements' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (sessionHandle != null) {
|
||||||
|
sessionHandle.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteBatchStatementReqStandardScheme getScheme() {
|
||||||
|
return new TSExecuteBatchStatementReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementReqStandardScheme extends StandardScheme<TSExecuteBatchStatementReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSExecuteBatchStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // SESSION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // STATEMENTS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list44 = iprot.readListBegin();
|
||||||
|
struct.statements = new ArrayList<String>(_list44.size);
|
||||||
|
String _elem45;
|
||||||
|
for (int _i46 = 0; _i46 < _list44.size; ++_i46)
|
||||||
|
{
|
||||||
|
_elem45 = iprot.readString();
|
||||||
|
struct.statements.add(_elem45);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.setStatementsIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSExecuteBatchStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.sessionHandle != null) {
|
||||||
|
oprot.writeFieldBegin(SESSION_HANDLE_FIELD_DESC);
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.statements != null) {
|
||||||
|
oprot.writeFieldBegin(STATEMENTS_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.statements.size()));
|
||||||
|
for (String _iter47 : struct.statements)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter47);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteBatchStatementReqTupleScheme getScheme() {
|
||||||
|
return new TSExecuteBatchStatementReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementReqTupleScheme extends TupleScheme<TSExecuteBatchStatementReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSExecuteBatchStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.statements.size());
|
||||||
|
for (String _iter48 : struct.statements)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter48);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSExecuteBatchStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list49 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
struct.statements = new ArrayList<String>(_list49.size);
|
||||||
|
String _elem50;
|
||||||
|
for (int _i51 = 0; _i51 < _list49.size; ++_i51)
|
||||||
|
{
|
||||||
|
_elem50 = iprot.readString();
|
||||||
|
struct.statements.add(_elem50);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setStatementsIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,556 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSExecuteBatchStatementResp implements org.apache.thrift.TBase<TSExecuteBatchStatementResp, TSExecuteBatchStatementResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSExecuteBatchStatementResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSExecuteBatchStatementResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField RESULT_FIELD_DESC = new org.apache.thrift.protocol.TField("result", org.apache.thrift.protocol.TType.LIST, (short)2);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSExecuteBatchStatementRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSExecuteBatchStatementRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
public List<Integer> result; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status"),
|
||||||
|
RESULT((short)2, "result");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
case 2: // RESULT
|
||||||
|
return RESULT;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final _Fields optionals[] = {_Fields.RESULT};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
tmpMap.put(_Fields.RESULT, new org.apache.thrift.meta_data.FieldMetaData("result", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSExecuteBatchStatementResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementResp(
|
||||||
|
TS_Status status)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSExecuteBatchStatementResp(TSExecuteBatchStatementResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
if (other.isSetResult()) {
|
||||||
|
List<Integer> __this__result = new ArrayList<Integer>(other.result);
|
||||||
|
this.result = __this__result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementResp deepCopy() {
|
||||||
|
return new TSExecuteBatchStatementResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
this.result = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getResultSize() {
|
||||||
|
return (this.result == null) ? 0 : this.result.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public java.util.Iterator<Integer> getResultIterator() {
|
||||||
|
return (this.result == null) ? null : this.result.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addToResult(int elem) {
|
||||||
|
if (this.result == null) {
|
||||||
|
this.result = new ArrayList<Integer>();
|
||||||
|
}
|
||||||
|
this.result.add(elem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Integer> getResult() {
|
||||||
|
return this.result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteBatchStatementResp setResult(List<Integer> result) {
|
||||||
|
this.result = result;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetResult() {
|
||||||
|
this.result = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field result is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetResult() {
|
||||||
|
return this.result != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResultIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.result = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RESULT:
|
||||||
|
if (value == null) {
|
||||||
|
unsetResult();
|
||||||
|
} else {
|
||||||
|
setResult((List<Integer>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
case RESULT:
|
||||||
|
return getResult();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
case RESULT:
|
||||||
|
return isSetResult();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSExecuteBatchStatementResp)
|
||||||
|
return this.equals((TSExecuteBatchStatementResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSExecuteBatchStatementResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_result = true && this.isSetResult();
|
||||||
|
boolean that_present_result = true && that.isSetResult();
|
||||||
|
if (this_present_result || that_present_result) {
|
||||||
|
if (!(this_present_result && that_present_result))
|
||||||
|
return false;
|
||||||
|
if (!this.result.equals(that.result))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
boolean present_result = true && (isSetResult());
|
||||||
|
list.add(present_result);
|
||||||
|
if (present_result)
|
||||||
|
list.add(result);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSExecuteBatchStatementResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetResult()).compareTo(other.isSetResult());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetResult()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.result, other.result);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSExecuteBatchStatementResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (isSetResult()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("result:");
|
||||||
|
if (this.result == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.result);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteBatchStatementRespStandardScheme getScheme() {
|
||||||
|
return new TSExecuteBatchStatementRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementRespStandardScheme extends StandardScheme<TSExecuteBatchStatementResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSExecuteBatchStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // RESULT
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list36 = iprot.readListBegin();
|
||||||
|
struct.result = new ArrayList<Integer>(_list36.size);
|
||||||
|
int _elem37;
|
||||||
|
for (int _i38 = 0; _i38 < _list36.size; ++_i38)
|
||||||
|
{
|
||||||
|
_elem37 = iprot.readI32();
|
||||||
|
struct.result.add(_elem37);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.setResultIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSExecuteBatchStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.result != null) {
|
||||||
|
if (struct.isSetResult()) {
|
||||||
|
oprot.writeFieldBegin(RESULT_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, struct.result.size()));
|
||||||
|
for (int _iter39 : struct.result)
|
||||||
|
{
|
||||||
|
oprot.writeI32(_iter39);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteBatchStatementRespTupleScheme getScheme() {
|
||||||
|
return new TSExecuteBatchStatementRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteBatchStatementRespTupleScheme extends TupleScheme<TSExecuteBatchStatementResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSExecuteBatchStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetResult()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 1);
|
||||||
|
if (struct.isSetResult()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.result.size());
|
||||||
|
for (int _iter40 : struct.result)
|
||||||
|
{
|
||||||
|
oprot.writeI32(_iter40);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSExecuteBatchStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
BitSet incoming = iprot.readBitSet(1);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list41 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, iprot.readI32());
|
||||||
|
struct.result = new ArrayList<Integer>(_list41.size);
|
||||||
|
int _elem42;
|
||||||
|
for (int _i43 = 0; _i43 < _list41.size; ++_i43)
|
||||||
|
{
|
||||||
|
_elem42 = iprot.readI32();
|
||||||
|
struct.result.add(_elem42);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setResultIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,497 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSExecuteStatementReq implements org.apache.thrift.TBase<TSExecuteStatementReq, TSExecuteStatementReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSExecuteStatementReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSExecuteStatementReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField SESSION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField STATEMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("statement", org.apache.thrift.protocol.TType.STRING, (short)2);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSExecuteStatementReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSExecuteStatementReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle sessionHandle; // required
|
||||||
|
public String statement; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
SESSION_HANDLE((short)1, "sessionHandle"),
|
||||||
|
STATEMENT((short)2, "statement");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // SESSION_HANDLE
|
||||||
|
return SESSION_HANDLE;
|
||||||
|
case 2: // STATEMENT
|
||||||
|
return STATEMENT;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.SESSION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("sessionHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_SessionHandle.class)));
|
||||||
|
tmpMap.put(_Fields.STATEMENT, new org.apache.thrift.meta_data.FieldMetaData("statement", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSExecuteStatementReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementReq(
|
||||||
|
TS_SessionHandle sessionHandle,
|
||||||
|
String statement)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
this.statement = statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSExecuteStatementReq(TSExecuteStatementReq other) {
|
||||||
|
if (other.isSetSessionHandle()) {
|
||||||
|
this.sessionHandle = new TS_SessionHandle(other.sessionHandle);
|
||||||
|
}
|
||||||
|
if (other.isSetStatement()) {
|
||||||
|
this.statement = other.statement;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementReq deepCopy() {
|
||||||
|
return new TSExecuteStatementReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
this.statement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle getSessionHandle() {
|
||||||
|
return this.sessionHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementReq setSessionHandle(TS_SessionHandle sessionHandle) {
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSessionHandle() {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field sessionHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSessionHandle() {
|
||||||
|
return this.sessionHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatement() {
|
||||||
|
return this.statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementReq setStatement(String statement) {
|
||||||
|
this.statement = statement;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatement() {
|
||||||
|
this.statement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field statement is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatement() {
|
||||||
|
return this.statement != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatementIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.statement = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSessionHandle();
|
||||||
|
} else {
|
||||||
|
setSessionHandle((TS_SessionHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STATEMENT:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatement();
|
||||||
|
} else {
|
||||||
|
setStatement((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return getSessionHandle();
|
||||||
|
|
||||||
|
case STATEMENT:
|
||||||
|
return getStatement();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return isSetSessionHandle();
|
||||||
|
case STATEMENT:
|
||||||
|
return isSetStatement();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSExecuteStatementReq)
|
||||||
|
return this.equals((TSExecuteStatementReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSExecuteStatementReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_sessionHandle = true && this.isSetSessionHandle();
|
||||||
|
boolean that_present_sessionHandle = true && that.isSetSessionHandle();
|
||||||
|
if (this_present_sessionHandle || that_present_sessionHandle) {
|
||||||
|
if (!(this_present_sessionHandle && that_present_sessionHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.sessionHandle.equals(that.sessionHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_statement = true && this.isSetStatement();
|
||||||
|
boolean that_present_statement = true && that.isSetStatement();
|
||||||
|
if (this_present_statement || that_present_statement) {
|
||||||
|
if (!(this_present_statement && that_present_statement))
|
||||||
|
return false;
|
||||||
|
if (!this.statement.equals(that.statement))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_sessionHandle = true && (isSetSessionHandle());
|
||||||
|
list.add(present_sessionHandle);
|
||||||
|
if (present_sessionHandle)
|
||||||
|
list.add(sessionHandle);
|
||||||
|
|
||||||
|
boolean present_statement = true && (isSetStatement());
|
||||||
|
list.add(present_statement);
|
||||||
|
if (present_statement)
|
||||||
|
list.add(statement);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSExecuteStatementReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetSessionHandle()).compareTo(other.isSetSessionHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSessionHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionHandle, other.sessionHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatement()).compareTo(other.isSetStatement());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatement()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statement, other.statement);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSExecuteStatementReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("sessionHandle:");
|
||||||
|
if (this.sessionHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.sessionHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("statement:");
|
||||||
|
if (this.statement == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.statement);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (sessionHandle == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'sessionHandle' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
if (statement == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'statement' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (sessionHandle != null) {
|
||||||
|
sessionHandle.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteStatementReqStandardScheme getScheme() {
|
||||||
|
return new TSExecuteStatementReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementReqStandardScheme extends StandardScheme<TSExecuteStatementReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSExecuteStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // SESSION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // STATEMENT
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.statement = iprot.readString();
|
||||||
|
struct.setStatementIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSExecuteStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.sessionHandle != null) {
|
||||||
|
oprot.writeFieldBegin(SESSION_HANDLE_FIELD_DESC);
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.statement != null) {
|
||||||
|
oprot.writeFieldBegin(STATEMENT_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.statement);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteStatementReqTupleScheme getScheme() {
|
||||||
|
return new TSExecuteStatementReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementReqTupleScheme extends TupleScheme<TSExecuteStatementReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSExecuteStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
oprot.writeString(struct.statement);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSExecuteStatementReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
struct.statement = iprot.readString();
|
||||||
|
struct.setStatementIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,668 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSExecuteStatementResp implements org.apache.thrift.TBase<TSExecuteStatementResp, TSExecuteStatementResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSExecuteStatementResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSExecuteStatementResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField OPERATION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("operationHandle", org.apache.thrift.protocol.TType.STRUCT, (short)2);
|
||||||
|
private static final org.apache.thrift.protocol.TField COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("columns", org.apache.thrift.protocol.TType.LIST, (short)3);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSExecuteStatementRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSExecuteStatementRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
public TSOperationHandle operationHandle; // optional
|
||||||
|
public List<String> columns; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status"),
|
||||||
|
OPERATION_HANDLE((short)2, "operationHandle"),
|
||||||
|
COLUMNS((short)3, "columns");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
case 2: // OPERATION_HANDLE
|
||||||
|
return OPERATION_HANDLE;
|
||||||
|
case 3: // COLUMNS
|
||||||
|
return COLUMNS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final _Fields optionals[] = {_Fields.OPERATION_HANDLE,_Fields.COLUMNS};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
tmpMap.put(_Fields.OPERATION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("operationHandle", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSOperationHandle.class)));
|
||||||
|
tmpMap.put(_Fields.COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("columns", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSExecuteStatementResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementResp(
|
||||||
|
TS_Status status)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSExecuteStatementResp(TSExecuteStatementResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
if (other.isSetOperationHandle()) {
|
||||||
|
this.operationHandle = new TSOperationHandle(other.operationHandle);
|
||||||
|
}
|
||||||
|
if (other.isSetColumns()) {
|
||||||
|
List<String> __this__columns = new ArrayList<String>(other.columns);
|
||||||
|
this.columns = __this__columns;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementResp deepCopy() {
|
||||||
|
return new TSExecuteStatementResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
this.operationHandle = null;
|
||||||
|
this.columns = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle getOperationHandle() {
|
||||||
|
return this.operationHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementResp setOperationHandle(TSOperationHandle operationHandle) {
|
||||||
|
this.operationHandle = operationHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetOperationHandle() {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field operationHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetOperationHandle() {
|
||||||
|
return this.operationHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getColumnsSize() {
|
||||||
|
return (this.columns == null) ? 0 : this.columns.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public java.util.Iterator<String> getColumnsIterator() {
|
||||||
|
return (this.columns == null) ? null : this.columns.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addToColumns(String elem) {
|
||||||
|
if (this.columns == null) {
|
||||||
|
this.columns = new ArrayList<String>();
|
||||||
|
}
|
||||||
|
this.columns.add(elem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getColumns() {
|
||||||
|
return this.columns;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSExecuteStatementResp setColumns(List<String> columns) {
|
||||||
|
this.columns = columns;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetColumns() {
|
||||||
|
this.columns = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field columns is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetColumns() {
|
||||||
|
return this.columns != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColumnsIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.columns = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetOperationHandle();
|
||||||
|
} else {
|
||||||
|
setOperationHandle((TSOperationHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case COLUMNS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetColumns();
|
||||||
|
} else {
|
||||||
|
setColumns((List<String>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return getOperationHandle();
|
||||||
|
|
||||||
|
case COLUMNS:
|
||||||
|
return getColumns();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return isSetOperationHandle();
|
||||||
|
case COLUMNS:
|
||||||
|
return isSetColumns();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSExecuteStatementResp)
|
||||||
|
return this.equals((TSExecuteStatementResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSExecuteStatementResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_operationHandle = true && this.isSetOperationHandle();
|
||||||
|
boolean that_present_operationHandle = true && that.isSetOperationHandle();
|
||||||
|
if (this_present_operationHandle || that_present_operationHandle) {
|
||||||
|
if (!(this_present_operationHandle && that_present_operationHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.operationHandle.equals(that.operationHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_columns = true && this.isSetColumns();
|
||||||
|
boolean that_present_columns = true && that.isSetColumns();
|
||||||
|
if (this_present_columns || that_present_columns) {
|
||||||
|
if (!(this_present_columns && that_present_columns))
|
||||||
|
return false;
|
||||||
|
if (!this.columns.equals(that.columns))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
boolean present_operationHandle = true && (isSetOperationHandle());
|
||||||
|
list.add(present_operationHandle);
|
||||||
|
if (present_operationHandle)
|
||||||
|
list.add(operationHandle);
|
||||||
|
|
||||||
|
boolean present_columns = true && (isSetColumns());
|
||||||
|
list.add(present_columns);
|
||||||
|
if (present_columns)
|
||||||
|
list.add(columns);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSExecuteStatementResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetOperationHandle()).compareTo(other.isSetOperationHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetOperationHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operationHandle, other.operationHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetColumns()).compareTo(other.isSetColumns());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetColumns()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.columns, other.columns);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSExecuteStatementResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (isSetOperationHandle()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("operationHandle:");
|
||||||
|
if (this.operationHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.operationHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetColumns()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("columns:");
|
||||||
|
if (this.columns == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.columns);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
if (operationHandle != null) {
|
||||||
|
operationHandle.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteStatementRespStandardScheme getScheme() {
|
||||||
|
return new TSExecuteStatementRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementRespStandardScheme extends StandardScheme<TSExecuteStatementResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSExecuteStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // OPERATION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // COLUMNS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list28 = iprot.readListBegin();
|
||||||
|
struct.columns = new ArrayList<String>(_list28.size);
|
||||||
|
String _elem29;
|
||||||
|
for (int _i30 = 0; _i30 < _list28.size; ++_i30)
|
||||||
|
{
|
||||||
|
_elem29 = iprot.readString();
|
||||||
|
struct.columns.add(_elem29);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.setColumnsIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSExecuteStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.operationHandle != null) {
|
||||||
|
if (struct.isSetOperationHandle()) {
|
||||||
|
oprot.writeFieldBegin(OPERATION_HANDLE_FIELD_DESC);
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.columns != null) {
|
||||||
|
if (struct.isSetColumns()) {
|
||||||
|
oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.columns.size()));
|
||||||
|
for (String _iter31 : struct.columns)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter31);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSExecuteStatementRespTupleScheme getScheme() {
|
||||||
|
return new TSExecuteStatementRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSExecuteStatementRespTupleScheme extends TupleScheme<TSExecuteStatementResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSExecuteStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetOperationHandle()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
if (struct.isSetColumns()) {
|
||||||
|
optionals.set(1);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 2);
|
||||||
|
if (struct.isSetOperationHandle()) {
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
}
|
||||||
|
if (struct.isSetColumns()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.columns.size());
|
||||||
|
for (String _iter32 : struct.columns)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter32);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSExecuteStatementResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
BitSet incoming = iprot.readBitSet(2);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(1)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list33 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
struct.columns = new ArrayList<String>(_list33.size);
|
||||||
|
String _elem34;
|
||||||
|
for (int _i35 = 0; _i35 < _list33.size; ++_i35)
|
||||||
|
{
|
||||||
|
_elem34 = iprot.readString();
|
||||||
|
struct.columns.add(_elem34);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setColumnsIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,285 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSFetchMetadataReq implements org.apache.thrift.TBase<TSFetchMetadataReq, TSFetchMetadataReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSFetchMetadataReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSFetchMetadataReq");
|
||||||
|
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSFetchMetadataReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSFetchMetadataReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
;
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSFetchMetadataReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSFetchMetadataReq(TSFetchMetadataReq other) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataReq deepCopy() {
|
||||||
|
return new TSFetchMetadataReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSFetchMetadataReq)
|
||||||
|
return this.equals((TSFetchMetadataReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSFetchMetadataReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSFetchMetadataReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSFetchMetadataReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchMetadataReqStandardScheme getScheme() {
|
||||||
|
return new TSFetchMetadataReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataReqStandardScheme extends StandardScheme<TSFetchMetadataReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSFetchMetadataReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSFetchMetadataReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchMetadataReqTupleScheme getScheme() {
|
||||||
|
return new TSFetchMetadataReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataReqTupleScheme extends TupleScheme<TSFetchMetadataReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSFetchMetadataReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSFetchMetadataReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,918 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSFetchMetadataResp implements org.apache.thrift.TBase<TSFetchMetadataResp, TSFetchMetadataResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSFetchMetadataResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSFetchMetadataResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField SERIES_MAP_FIELD_DESC = new org.apache.thrift.protocol.TField("seriesMap", org.apache.thrift.protocol.TType.MAP, (short)2);
|
||||||
|
private static final org.apache.thrift.protocol.TField DELTA_OBJECT_MAP_FIELD_DESC = new org.apache.thrift.protocol.TField("deltaObjectMap", org.apache.thrift.protocol.TType.MAP, (short)3);
|
||||||
|
private static final org.apache.thrift.protocol.TField METADATA_IN_JSON_FIELD_DESC = new org.apache.thrift.protocol.TField("metadataInJson", org.apache.thrift.protocol.TType.STRING, (short)4);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSFetchMetadataRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSFetchMetadataRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
public Map<String,List<TSColumnSchema>> seriesMap; // optional
|
||||||
|
public Map<String,List<String>> deltaObjectMap; // optional
|
||||||
|
public String metadataInJson; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status"),
|
||||||
|
SERIES_MAP((short)2, "seriesMap"),
|
||||||
|
DELTA_OBJECT_MAP((short)3, "deltaObjectMap"),
|
||||||
|
METADATA_IN_JSON((short)4, "metadataInJson");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
case 2: // SERIES_MAP
|
||||||
|
return SERIES_MAP;
|
||||||
|
case 3: // DELTA_OBJECT_MAP
|
||||||
|
return DELTA_OBJECT_MAP;
|
||||||
|
case 4: // METADATA_IN_JSON
|
||||||
|
return METADATA_IN_JSON;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final _Fields optionals[] = {_Fields.SERIES_MAP,_Fields.DELTA_OBJECT_MAP,_Fields.METADATA_IN_JSON};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
tmpMap.put(_Fields.SERIES_MAP, new org.apache.thrift.meta_data.FieldMetaData("seriesMap", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TSColumnSchema")))));
|
||||||
|
tmpMap.put(_Fields.DELTA_OBJECT_MAP, new org.apache.thrift.meta_data.FieldMetaData("deltaObjectMap", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))));
|
||||||
|
tmpMap.put(_Fields.METADATA_IN_JSON, new org.apache.thrift.meta_data.FieldMetaData("metadataInJson", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSFetchMetadataResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataResp(
|
||||||
|
TS_Status status)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSFetchMetadataResp(TSFetchMetadataResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
if (other.isSetSeriesMap()) {
|
||||||
|
Map<String,List<TSColumnSchema>> __this__seriesMap = new HashMap<String,List<TSColumnSchema>>(other.seriesMap.size());
|
||||||
|
for (Map.Entry<String, List<TSColumnSchema>> other_element : other.seriesMap.entrySet()) {
|
||||||
|
|
||||||
|
String other_element_key = other_element.getKey();
|
||||||
|
List<TSColumnSchema> other_element_value = other_element.getValue();
|
||||||
|
|
||||||
|
String __this__seriesMap_copy_key = other_element_key;
|
||||||
|
|
||||||
|
List<TSColumnSchema> __this__seriesMap_copy_value = new ArrayList<TSColumnSchema>(other_element_value.size());
|
||||||
|
for (TSColumnSchema other_element_value_element : other_element_value) {
|
||||||
|
__this__seriesMap_copy_value.add(other_element_value_element);
|
||||||
|
}
|
||||||
|
|
||||||
|
__this__seriesMap.put(__this__seriesMap_copy_key, __this__seriesMap_copy_value);
|
||||||
|
}
|
||||||
|
this.seriesMap = __this__seriesMap;
|
||||||
|
}
|
||||||
|
if (other.isSetDeltaObjectMap()) {
|
||||||
|
Map<String,List<String>> __this__deltaObjectMap = new HashMap<String,List<String>>(other.deltaObjectMap.size());
|
||||||
|
for (Map.Entry<String, List<String>> other_element : other.deltaObjectMap.entrySet()) {
|
||||||
|
|
||||||
|
String other_element_key = other_element.getKey();
|
||||||
|
List<String> other_element_value = other_element.getValue();
|
||||||
|
|
||||||
|
String __this__deltaObjectMap_copy_key = other_element_key;
|
||||||
|
|
||||||
|
List<String> __this__deltaObjectMap_copy_value = new ArrayList<String>(other_element_value);
|
||||||
|
|
||||||
|
__this__deltaObjectMap.put(__this__deltaObjectMap_copy_key, __this__deltaObjectMap_copy_value);
|
||||||
|
}
|
||||||
|
this.deltaObjectMap = __this__deltaObjectMap;
|
||||||
|
}
|
||||||
|
if (other.isSetMetadataInJson()) {
|
||||||
|
this.metadataInJson = other.metadataInJson;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataResp deepCopy() {
|
||||||
|
return new TSFetchMetadataResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
this.seriesMap = null;
|
||||||
|
this.deltaObjectMap = null;
|
||||||
|
this.metadataInJson = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSeriesMapSize() {
|
||||||
|
return (this.seriesMap == null) ? 0 : this.seriesMap.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void putToSeriesMap(String key, List<TSColumnSchema> val) {
|
||||||
|
if (this.seriesMap == null) {
|
||||||
|
this.seriesMap = new HashMap<String,List<TSColumnSchema>>();
|
||||||
|
}
|
||||||
|
this.seriesMap.put(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String,List<TSColumnSchema>> getSeriesMap() {
|
||||||
|
return this.seriesMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataResp setSeriesMap(Map<String,List<TSColumnSchema>> seriesMap) {
|
||||||
|
this.seriesMap = seriesMap;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSeriesMap() {
|
||||||
|
this.seriesMap = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field seriesMap is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSeriesMap() {
|
||||||
|
return this.seriesMap != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSeriesMapIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.seriesMap = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDeltaObjectMapSize() {
|
||||||
|
return (this.deltaObjectMap == null) ? 0 : this.deltaObjectMap.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void putToDeltaObjectMap(String key, List<String> val) {
|
||||||
|
if (this.deltaObjectMap == null) {
|
||||||
|
this.deltaObjectMap = new HashMap<String,List<String>>();
|
||||||
|
}
|
||||||
|
this.deltaObjectMap.put(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String,List<String>> getDeltaObjectMap() {
|
||||||
|
return this.deltaObjectMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataResp setDeltaObjectMap(Map<String,List<String>> deltaObjectMap) {
|
||||||
|
this.deltaObjectMap = deltaObjectMap;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetDeltaObjectMap() {
|
||||||
|
this.deltaObjectMap = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field deltaObjectMap is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetDeltaObjectMap() {
|
||||||
|
return this.deltaObjectMap != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeltaObjectMapIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.deltaObjectMap = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMetadataInJson() {
|
||||||
|
return this.metadataInJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchMetadataResp setMetadataInJson(String metadataInJson) {
|
||||||
|
this.metadataInJson = metadataInJson;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetMetadataInJson() {
|
||||||
|
this.metadataInJson = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field metadataInJson is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetMetadataInJson() {
|
||||||
|
return this.metadataInJson != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMetadataInJsonIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.metadataInJson = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SERIES_MAP:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSeriesMap();
|
||||||
|
} else {
|
||||||
|
setSeriesMap((Map<String,List<TSColumnSchema>>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DELTA_OBJECT_MAP:
|
||||||
|
if (value == null) {
|
||||||
|
unsetDeltaObjectMap();
|
||||||
|
} else {
|
||||||
|
setDeltaObjectMap((Map<String,List<String>>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case METADATA_IN_JSON:
|
||||||
|
if (value == null) {
|
||||||
|
unsetMetadataInJson();
|
||||||
|
} else {
|
||||||
|
setMetadataInJson((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
case SERIES_MAP:
|
||||||
|
return getSeriesMap();
|
||||||
|
|
||||||
|
case DELTA_OBJECT_MAP:
|
||||||
|
return getDeltaObjectMap();
|
||||||
|
|
||||||
|
case METADATA_IN_JSON:
|
||||||
|
return getMetadataInJson();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
case SERIES_MAP:
|
||||||
|
return isSetSeriesMap();
|
||||||
|
case DELTA_OBJECT_MAP:
|
||||||
|
return isSetDeltaObjectMap();
|
||||||
|
case METADATA_IN_JSON:
|
||||||
|
return isSetMetadataInJson();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSFetchMetadataResp)
|
||||||
|
return this.equals((TSFetchMetadataResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSFetchMetadataResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_seriesMap = true && this.isSetSeriesMap();
|
||||||
|
boolean that_present_seriesMap = true && that.isSetSeriesMap();
|
||||||
|
if (this_present_seriesMap || that_present_seriesMap) {
|
||||||
|
if (!(this_present_seriesMap && that_present_seriesMap))
|
||||||
|
return false;
|
||||||
|
if (!this.seriesMap.equals(that.seriesMap))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_deltaObjectMap = true && this.isSetDeltaObjectMap();
|
||||||
|
boolean that_present_deltaObjectMap = true && that.isSetDeltaObjectMap();
|
||||||
|
if (this_present_deltaObjectMap || that_present_deltaObjectMap) {
|
||||||
|
if (!(this_present_deltaObjectMap && that_present_deltaObjectMap))
|
||||||
|
return false;
|
||||||
|
if (!this.deltaObjectMap.equals(that.deltaObjectMap))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_metadataInJson = true && this.isSetMetadataInJson();
|
||||||
|
boolean that_present_metadataInJson = true && that.isSetMetadataInJson();
|
||||||
|
if (this_present_metadataInJson || that_present_metadataInJson) {
|
||||||
|
if (!(this_present_metadataInJson && that_present_metadataInJson))
|
||||||
|
return false;
|
||||||
|
if (!this.metadataInJson.equals(that.metadataInJson))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
boolean present_seriesMap = true && (isSetSeriesMap());
|
||||||
|
list.add(present_seriesMap);
|
||||||
|
if (present_seriesMap)
|
||||||
|
list.add(seriesMap);
|
||||||
|
|
||||||
|
boolean present_deltaObjectMap = true && (isSetDeltaObjectMap());
|
||||||
|
list.add(present_deltaObjectMap);
|
||||||
|
if (present_deltaObjectMap)
|
||||||
|
list.add(deltaObjectMap);
|
||||||
|
|
||||||
|
boolean present_metadataInJson = true && (isSetMetadataInJson());
|
||||||
|
list.add(present_metadataInJson);
|
||||||
|
if (present_metadataInJson)
|
||||||
|
list.add(metadataInJson);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSFetchMetadataResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetSeriesMap()).compareTo(other.isSetSeriesMap());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSeriesMap()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.seriesMap, other.seriesMap);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetDeltaObjectMap()).compareTo(other.isSetDeltaObjectMap());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetDeltaObjectMap()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deltaObjectMap, other.deltaObjectMap);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetMetadataInJson()).compareTo(other.isSetMetadataInJson());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetMetadataInJson()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metadataInJson, other.metadataInJson);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSFetchMetadataResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (isSetSeriesMap()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("seriesMap:");
|
||||||
|
if (this.seriesMap == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.seriesMap);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetDeltaObjectMap()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("deltaObjectMap:");
|
||||||
|
if (this.deltaObjectMap == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.deltaObjectMap);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetMetadataInJson()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("metadataInJson:");
|
||||||
|
if (this.metadataInJson == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.metadataInJson);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchMetadataRespStandardScheme getScheme() {
|
||||||
|
return new TSFetchMetadataRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataRespStandardScheme extends StandardScheme<TSFetchMetadataResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSFetchMetadataResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // SERIES_MAP
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map124 = iprot.readMapBegin();
|
||||||
|
struct.seriesMap = new HashMap<String,List<TSColumnSchema>>(2*_map124.size);
|
||||||
|
String _key125;
|
||||||
|
List<TSColumnSchema> _val126;
|
||||||
|
for (int _i127 = 0; _i127 < _map124.size; ++_i127)
|
||||||
|
{
|
||||||
|
_key125 = iprot.readString();
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list128 = iprot.readListBegin();
|
||||||
|
_val126 = new ArrayList<TSColumnSchema>(_list128.size);
|
||||||
|
TSColumnSchema _elem129;
|
||||||
|
for (int _i130 = 0; _i130 < _list128.size; ++_i130)
|
||||||
|
{
|
||||||
|
_elem129 = new TSColumnSchema();
|
||||||
|
_elem129.read(iprot);
|
||||||
|
_val126.add(_elem129);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.seriesMap.put(_key125, _val126);
|
||||||
|
}
|
||||||
|
iprot.readMapEnd();
|
||||||
|
}
|
||||||
|
struct.setSeriesMapIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // DELTA_OBJECT_MAP
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map131 = iprot.readMapBegin();
|
||||||
|
struct.deltaObjectMap = new HashMap<String,List<String>>(2*_map131.size);
|
||||||
|
String _key132;
|
||||||
|
List<String> _val133;
|
||||||
|
for (int _i134 = 0; _i134 < _map131.size; ++_i134)
|
||||||
|
{
|
||||||
|
_key132 = iprot.readString();
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list135 = iprot.readListBegin();
|
||||||
|
_val133 = new ArrayList<String>(_list135.size);
|
||||||
|
String _elem136;
|
||||||
|
for (int _i137 = 0; _i137 < _list135.size; ++_i137)
|
||||||
|
{
|
||||||
|
_elem136 = iprot.readString();
|
||||||
|
_val133.add(_elem136);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.deltaObjectMap.put(_key132, _val133);
|
||||||
|
}
|
||||||
|
iprot.readMapEnd();
|
||||||
|
}
|
||||||
|
struct.setDeltaObjectMapIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: // METADATA_IN_JSON
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.metadataInJson = iprot.readString();
|
||||||
|
struct.setMetadataInJsonIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSFetchMetadataResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.seriesMap != null) {
|
||||||
|
if (struct.isSetSeriesMap()) {
|
||||||
|
oprot.writeFieldBegin(SERIES_MAP_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, struct.seriesMap.size()));
|
||||||
|
for (Map.Entry<String, List<TSColumnSchema>> _iter138 : struct.seriesMap.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter138.getKey());
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter138.getValue().size()));
|
||||||
|
for (TSColumnSchema _iter139 : _iter138.getValue())
|
||||||
|
{
|
||||||
|
_iter139.write(oprot);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeMapEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.deltaObjectMap != null) {
|
||||||
|
if (struct.isSetDeltaObjectMap()) {
|
||||||
|
oprot.writeFieldBegin(DELTA_OBJECT_MAP_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, struct.deltaObjectMap.size()));
|
||||||
|
for (Map.Entry<String, List<String>> _iter140 : struct.deltaObjectMap.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter140.getKey());
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter140.getValue().size()));
|
||||||
|
for (String _iter141 : _iter140.getValue())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter141);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeMapEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.metadataInJson != null) {
|
||||||
|
if (struct.isSetMetadataInJson()) {
|
||||||
|
oprot.writeFieldBegin(METADATA_IN_JSON_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.metadataInJson);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchMetadataRespTupleScheme getScheme() {
|
||||||
|
return new TSFetchMetadataRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchMetadataRespTupleScheme extends TupleScheme<TSFetchMetadataResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSFetchMetadataResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetSeriesMap()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
if (struct.isSetDeltaObjectMap()) {
|
||||||
|
optionals.set(1);
|
||||||
|
}
|
||||||
|
if (struct.isSetMetadataInJson()) {
|
||||||
|
optionals.set(2);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 3);
|
||||||
|
if (struct.isSetSeriesMap()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.seriesMap.size());
|
||||||
|
for (Map.Entry<String, List<TSColumnSchema>> _iter142 : struct.seriesMap.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter142.getKey());
|
||||||
|
{
|
||||||
|
oprot.writeI32(_iter142.getValue().size());
|
||||||
|
for (TSColumnSchema _iter143 : _iter142.getValue())
|
||||||
|
{
|
||||||
|
_iter143.write(oprot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.isSetDeltaObjectMap()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.deltaObjectMap.size());
|
||||||
|
for (Map.Entry<String, List<String>> _iter144 : struct.deltaObjectMap.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter144.getKey());
|
||||||
|
{
|
||||||
|
oprot.writeI32(_iter144.getValue().size());
|
||||||
|
for (String _iter145 : _iter144.getValue())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter145);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.isSetMetadataInJson()) {
|
||||||
|
oprot.writeString(struct.metadataInJson);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSFetchMetadataResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
BitSet incoming = iprot.readBitSet(3);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map146 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32());
|
||||||
|
struct.seriesMap = new HashMap<String,List<TSColumnSchema>>(2*_map146.size);
|
||||||
|
String _key147;
|
||||||
|
List<TSColumnSchema> _val148;
|
||||||
|
for (int _i149 = 0; _i149 < _map146.size; ++_i149)
|
||||||
|
{
|
||||||
|
_key147 = iprot.readString();
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list150 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
|
||||||
|
_val148 = new ArrayList<TSColumnSchema>(_list150.size);
|
||||||
|
TSColumnSchema _elem151;
|
||||||
|
for (int _i152 = 0; _i152 < _list150.size; ++_i152)
|
||||||
|
{
|
||||||
|
_elem151 = new TSColumnSchema();
|
||||||
|
_elem151.read(iprot);
|
||||||
|
_val148.add(_elem151);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.seriesMap.put(_key147, _val148);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setSeriesMapIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(1)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map153 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32());
|
||||||
|
struct.deltaObjectMap = new HashMap<String,List<String>>(2*_map153.size);
|
||||||
|
String _key154;
|
||||||
|
List<String> _val155;
|
||||||
|
for (int _i156 = 0; _i156 < _map153.size; ++_i156)
|
||||||
|
{
|
||||||
|
_key154 = iprot.readString();
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list157 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
_val155 = new ArrayList<String>(_list157.size);
|
||||||
|
String _elem158;
|
||||||
|
for (int _i159 = 0; _i159 < _list157.size; ++_i159)
|
||||||
|
{
|
||||||
|
_elem158 = iprot.readString();
|
||||||
|
_val155.add(_elem158);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.deltaObjectMap.put(_key154, _val155);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setDeltaObjectMapIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(2)) {
|
||||||
|
struct.metadataInJson = iprot.readString();
|
||||||
|
struct.setMetadataInJsonIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,491 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSFetchResultsReq implements org.apache.thrift.TBase<TSFetchResultsReq, TSFetchResultsReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSFetchResultsReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSFetchResultsReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATEMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("statement", org.apache.thrift.protocol.TType.STRING, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField FETCH_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("fetch_size", org.apache.thrift.protocol.TType.I32, (short)2);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSFetchResultsReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSFetchResultsReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String statement; // required
|
||||||
|
public int fetch_size; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATEMENT((short)1, "statement"),
|
||||||
|
FETCH_SIZE((short)2, "fetch_size");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATEMENT
|
||||||
|
return STATEMENT;
|
||||||
|
case 2: // FETCH_SIZE
|
||||||
|
return FETCH_SIZE;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final int __FETCH_SIZE_ISSET_ID = 0;
|
||||||
|
private byte __isset_bitfield = 0;
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATEMENT, new org.apache.thrift.meta_data.FieldMetaData("statement", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
tmpMap.put(_Fields.FETCH_SIZE, new org.apache.thrift.meta_data.FieldMetaData("fetch_size", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSFetchResultsReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsReq(
|
||||||
|
String statement,
|
||||||
|
int fetch_size)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.statement = statement;
|
||||||
|
this.fetch_size = fetch_size;
|
||||||
|
setFetch_sizeIsSet(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSFetchResultsReq(TSFetchResultsReq other) {
|
||||||
|
__isset_bitfield = other.__isset_bitfield;
|
||||||
|
if (other.isSetStatement()) {
|
||||||
|
this.statement = other.statement;
|
||||||
|
}
|
||||||
|
this.fetch_size = other.fetch_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsReq deepCopy() {
|
||||||
|
return new TSFetchResultsReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.statement = null;
|
||||||
|
setFetch_sizeIsSet(false);
|
||||||
|
this.fetch_size = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatement() {
|
||||||
|
return this.statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsReq setStatement(String statement) {
|
||||||
|
this.statement = statement;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatement() {
|
||||||
|
this.statement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field statement is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatement() {
|
||||||
|
return this.statement != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatementIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.statement = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFetch_size() {
|
||||||
|
return this.fetch_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsReq setFetch_size(int fetch_size) {
|
||||||
|
this.fetch_size = fetch_size;
|
||||||
|
setFetch_sizeIsSet(true);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetFetch_size() {
|
||||||
|
__isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FETCH_SIZE_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field fetch_size is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetFetch_size() {
|
||||||
|
return EncodingUtils.testBit(__isset_bitfield, __FETCH_SIZE_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFetch_sizeIsSet(boolean value) {
|
||||||
|
__isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FETCH_SIZE_ISSET_ID, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATEMENT:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatement();
|
||||||
|
} else {
|
||||||
|
setStatement((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FETCH_SIZE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetFetch_size();
|
||||||
|
} else {
|
||||||
|
setFetch_size((Integer)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATEMENT:
|
||||||
|
return getStatement();
|
||||||
|
|
||||||
|
case FETCH_SIZE:
|
||||||
|
return Integer.valueOf(getFetch_size());
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATEMENT:
|
||||||
|
return isSetStatement();
|
||||||
|
case FETCH_SIZE:
|
||||||
|
return isSetFetch_size();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSFetchResultsReq)
|
||||||
|
return this.equals((TSFetchResultsReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSFetchResultsReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_statement = true && this.isSetStatement();
|
||||||
|
boolean that_present_statement = true && that.isSetStatement();
|
||||||
|
if (this_present_statement || that_present_statement) {
|
||||||
|
if (!(this_present_statement && that_present_statement))
|
||||||
|
return false;
|
||||||
|
if (!this.statement.equals(that.statement))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_fetch_size = true;
|
||||||
|
boolean that_present_fetch_size = true;
|
||||||
|
if (this_present_fetch_size || that_present_fetch_size) {
|
||||||
|
if (!(this_present_fetch_size && that_present_fetch_size))
|
||||||
|
return false;
|
||||||
|
if (this.fetch_size != that.fetch_size)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_statement = true && (isSetStatement());
|
||||||
|
list.add(present_statement);
|
||||||
|
if (present_statement)
|
||||||
|
list.add(statement);
|
||||||
|
|
||||||
|
boolean present_fetch_size = true;
|
||||||
|
list.add(present_fetch_size);
|
||||||
|
if (present_fetch_size)
|
||||||
|
list.add(fetch_size);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSFetchResultsReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatement()).compareTo(other.isSetStatement());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatement()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statement, other.statement);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetFetch_size()).compareTo(other.isSetFetch_size());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetFetch_size()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fetch_size, other.fetch_size);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSFetchResultsReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("statement:");
|
||||||
|
if (this.statement == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.statement);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("fetch_size:");
|
||||||
|
sb.append(this.fetch_size);
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (statement == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'statement' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// alas, we cannot check 'fetch_size' because it's a primitive and you chose the non-beans generator.
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
|
||||||
|
__isset_bitfield = 0;
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchResultsReqStandardScheme getScheme() {
|
||||||
|
return new TSFetchResultsReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsReqStandardScheme extends StandardScheme<TSFetchResultsReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSFetchResultsReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATEMENT
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.statement = iprot.readString();
|
||||||
|
struct.setStatementIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // FETCH_SIZE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
|
||||||
|
struct.fetch_size = iprot.readI32();
|
||||||
|
struct.setFetch_sizeIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
if (!struct.isSetFetch_size()) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'fetch_size' was not found in serialized data! Struct: " + toString());
|
||||||
|
}
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSFetchResultsReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.statement != null) {
|
||||||
|
oprot.writeFieldBegin(STATEMENT_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.statement);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldBegin(FETCH_SIZE_FIELD_DESC);
|
||||||
|
oprot.writeI32(struct.fetch_size);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchResultsReqTupleScheme getScheme() {
|
||||||
|
return new TSFetchResultsReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsReqTupleScheme extends TupleScheme<TSFetchResultsReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSFetchResultsReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
oprot.writeString(struct.statement);
|
||||||
|
oprot.writeI32(struct.fetch_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSFetchResultsReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.statement = iprot.readString();
|
||||||
|
struct.setStatementIsSet(true);
|
||||||
|
struct.fetch_size = iprot.readI32();
|
||||||
|
struct.setFetch_sizeIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,612 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSFetchResultsResp implements org.apache.thrift.TBase<TSFetchResultsResp, TSFetchResultsResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSFetchResultsResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSFetchResultsResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField HAS_RESULT_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("hasResultSet", org.apache.thrift.protocol.TType.BOOL, (short)2);
|
||||||
|
private static final org.apache.thrift.protocol.TField QUERY_DATA_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("queryDataSet", org.apache.thrift.protocol.TType.STRUCT, (short)3);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSFetchResultsRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSFetchResultsRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
public boolean hasResultSet; // required
|
||||||
|
public TSQueryDataSet queryDataSet; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status"),
|
||||||
|
HAS_RESULT_SET((short)2, "hasResultSet"),
|
||||||
|
QUERY_DATA_SET((short)3, "queryDataSet");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
case 2: // HAS_RESULT_SET
|
||||||
|
return HAS_RESULT_SET;
|
||||||
|
case 3: // QUERY_DATA_SET
|
||||||
|
return QUERY_DATA_SET;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final int __HASRESULTSET_ISSET_ID = 0;
|
||||||
|
private byte __isset_bitfield = 0;
|
||||||
|
private static final _Fields optionals[] = {_Fields.QUERY_DATA_SET};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
tmpMap.put(_Fields.HAS_RESULT_SET, new org.apache.thrift.meta_data.FieldMetaData("hasResultSet", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
|
||||||
|
tmpMap.put(_Fields.QUERY_DATA_SET, new org.apache.thrift.meta_data.FieldMetaData("queryDataSet", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSQueryDataSet.class)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSFetchResultsResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsResp(
|
||||||
|
TS_Status status,
|
||||||
|
boolean hasResultSet)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
this.hasResultSet = hasResultSet;
|
||||||
|
setHasResultSetIsSet(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSFetchResultsResp(TSFetchResultsResp other) {
|
||||||
|
__isset_bitfield = other.__isset_bitfield;
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
this.hasResultSet = other.hasResultSet;
|
||||||
|
if (other.isSetQueryDataSet()) {
|
||||||
|
this.queryDataSet = new TSQueryDataSet(other.queryDataSet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsResp deepCopy() {
|
||||||
|
return new TSFetchResultsResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
setHasResultSetIsSet(false);
|
||||||
|
this.hasResultSet = false;
|
||||||
|
this.queryDataSet = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHasResultSet() {
|
||||||
|
return this.hasResultSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsResp setHasResultSet(boolean hasResultSet) {
|
||||||
|
this.hasResultSet = hasResultSet;
|
||||||
|
setHasResultSetIsSet(true);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetHasResultSet() {
|
||||||
|
__isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __HASRESULTSET_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field hasResultSet is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetHasResultSet() {
|
||||||
|
return EncodingUtils.testBit(__isset_bitfield, __HASRESULTSET_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHasResultSetIsSet(boolean value) {
|
||||||
|
__isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __HASRESULTSET_ISSET_ID, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSQueryDataSet getQueryDataSet() {
|
||||||
|
return this.queryDataSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSFetchResultsResp setQueryDataSet(TSQueryDataSet queryDataSet) {
|
||||||
|
this.queryDataSet = queryDataSet;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetQueryDataSet() {
|
||||||
|
this.queryDataSet = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field queryDataSet is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetQueryDataSet() {
|
||||||
|
return this.queryDataSet != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQueryDataSetIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.queryDataSet = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case HAS_RESULT_SET:
|
||||||
|
if (value == null) {
|
||||||
|
unsetHasResultSet();
|
||||||
|
} else {
|
||||||
|
setHasResultSet((Boolean)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case QUERY_DATA_SET:
|
||||||
|
if (value == null) {
|
||||||
|
unsetQueryDataSet();
|
||||||
|
} else {
|
||||||
|
setQueryDataSet((TSQueryDataSet)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
case HAS_RESULT_SET:
|
||||||
|
return Boolean.valueOf(isHasResultSet());
|
||||||
|
|
||||||
|
case QUERY_DATA_SET:
|
||||||
|
return getQueryDataSet();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
case HAS_RESULT_SET:
|
||||||
|
return isSetHasResultSet();
|
||||||
|
case QUERY_DATA_SET:
|
||||||
|
return isSetQueryDataSet();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSFetchResultsResp)
|
||||||
|
return this.equals((TSFetchResultsResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSFetchResultsResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_hasResultSet = true;
|
||||||
|
boolean that_present_hasResultSet = true;
|
||||||
|
if (this_present_hasResultSet || that_present_hasResultSet) {
|
||||||
|
if (!(this_present_hasResultSet && that_present_hasResultSet))
|
||||||
|
return false;
|
||||||
|
if (this.hasResultSet != that.hasResultSet)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_queryDataSet = true && this.isSetQueryDataSet();
|
||||||
|
boolean that_present_queryDataSet = true && that.isSetQueryDataSet();
|
||||||
|
if (this_present_queryDataSet || that_present_queryDataSet) {
|
||||||
|
if (!(this_present_queryDataSet && that_present_queryDataSet))
|
||||||
|
return false;
|
||||||
|
if (!this.queryDataSet.equals(that.queryDataSet))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
boolean present_hasResultSet = true;
|
||||||
|
list.add(present_hasResultSet);
|
||||||
|
if (present_hasResultSet)
|
||||||
|
list.add(hasResultSet);
|
||||||
|
|
||||||
|
boolean present_queryDataSet = true && (isSetQueryDataSet());
|
||||||
|
list.add(present_queryDataSet);
|
||||||
|
if (present_queryDataSet)
|
||||||
|
list.add(queryDataSet);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSFetchResultsResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetHasResultSet()).compareTo(other.isSetHasResultSet());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetHasResultSet()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hasResultSet, other.hasResultSet);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetQueryDataSet()).compareTo(other.isSetQueryDataSet());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetQueryDataSet()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queryDataSet, other.queryDataSet);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSFetchResultsResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("hasResultSet:");
|
||||||
|
sb.append(this.hasResultSet);
|
||||||
|
first = false;
|
||||||
|
if (isSetQueryDataSet()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("queryDataSet:");
|
||||||
|
if (this.queryDataSet == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.queryDataSet);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// alas, we cannot check 'hasResultSet' because it's a primitive and you chose the non-beans generator.
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
if (queryDataSet != null) {
|
||||||
|
queryDataSet.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
|
||||||
|
__isset_bitfield = 0;
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchResultsRespStandardScheme getScheme() {
|
||||||
|
return new TSFetchResultsRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsRespStandardScheme extends StandardScheme<TSFetchResultsResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSFetchResultsResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // HAS_RESULT_SET
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
|
||||||
|
struct.hasResultSet = iprot.readBool();
|
||||||
|
struct.setHasResultSetIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // QUERY_DATA_SET
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.queryDataSet = new TSQueryDataSet();
|
||||||
|
struct.queryDataSet.read(iprot);
|
||||||
|
struct.setQueryDataSetIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
if (!struct.isSetHasResultSet()) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'hasResultSet' was not found in serialized data! Struct: " + toString());
|
||||||
|
}
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSFetchResultsResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldBegin(HAS_RESULT_SET_FIELD_DESC);
|
||||||
|
oprot.writeBool(struct.hasResultSet);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
if (struct.queryDataSet != null) {
|
||||||
|
if (struct.isSetQueryDataSet()) {
|
||||||
|
oprot.writeFieldBegin(QUERY_DATA_SET_FIELD_DESC);
|
||||||
|
struct.queryDataSet.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSFetchResultsRespTupleScheme getScheme() {
|
||||||
|
return new TSFetchResultsRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSFetchResultsRespTupleScheme extends TupleScheme<TSFetchResultsResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSFetchResultsResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeBool(struct.hasResultSet);
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetQueryDataSet()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 1);
|
||||||
|
if (struct.isSetQueryDataSet()) {
|
||||||
|
struct.queryDataSet.write(oprot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSFetchResultsResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
struct.hasResultSet = iprot.readBool();
|
||||||
|
struct.setHasResultSetIsSet(true);
|
||||||
|
BitSet incoming = iprot.readBitSet(1);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
struct.queryDataSet = new TSQueryDataSet();
|
||||||
|
struct.queryDataSet.read(iprot);
|
||||||
|
struct.setQueryDataSetIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,393 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSGetOperationStatusReq implements org.apache.thrift.TBase<TSGetOperationStatusReq, TSGetOperationStatusReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSGetOperationStatusReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSGetOperationStatusReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField OPERATION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("operationHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSGetOperationStatusReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSGetOperationStatusReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle operationHandle; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
OPERATION_HANDLE((short)1, "operationHandle");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // OPERATION_HANDLE
|
||||||
|
return OPERATION_HANDLE;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.OPERATION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("operationHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TSOperationHandle")));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSGetOperationStatusReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusReq() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusReq(
|
||||||
|
TSOperationHandle operationHandle)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.operationHandle = operationHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSGetOperationStatusReq(TSGetOperationStatusReq other) {
|
||||||
|
if (other.isSetOperationHandle()) {
|
||||||
|
this.operationHandle = other.operationHandle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusReq deepCopy() {
|
||||||
|
return new TSGetOperationStatusReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle getOperationHandle() {
|
||||||
|
return this.operationHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusReq setOperationHandle(TSOperationHandle operationHandle) {
|
||||||
|
this.operationHandle = operationHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetOperationHandle() {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field operationHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetOperationHandle() {
|
||||||
|
return this.operationHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.operationHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetOperationHandle();
|
||||||
|
} else {
|
||||||
|
setOperationHandle((TSOperationHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return getOperationHandle();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_HANDLE:
|
||||||
|
return isSetOperationHandle();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSGetOperationStatusReq)
|
||||||
|
return this.equals((TSGetOperationStatusReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSGetOperationStatusReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_operationHandle = true && this.isSetOperationHandle();
|
||||||
|
boolean that_present_operationHandle = true && that.isSetOperationHandle();
|
||||||
|
if (this_present_operationHandle || that_present_operationHandle) {
|
||||||
|
if (!(this_present_operationHandle && that_present_operationHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.operationHandle.equals(that.operationHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_operationHandle = true && (isSetOperationHandle());
|
||||||
|
list.add(present_operationHandle);
|
||||||
|
if (present_operationHandle)
|
||||||
|
list.add(operationHandle);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSGetOperationStatusReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetOperationHandle()).compareTo(other.isSetOperationHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetOperationHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operationHandle, other.operationHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSGetOperationStatusReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("operationHandle:");
|
||||||
|
if (this.operationHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.operationHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (operationHandle == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'operationHandle' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSGetOperationStatusReqStandardScheme getScheme() {
|
||||||
|
return new TSGetOperationStatusReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusReqStandardScheme extends StandardScheme<TSGetOperationStatusReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSGetOperationStatusReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // OPERATION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSGetOperationStatusReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.operationHandle != null) {
|
||||||
|
oprot.writeFieldBegin(OPERATION_HANDLE_FIELD_DESC);
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSGetOperationStatusReqTupleScheme getScheme() {
|
||||||
|
return new TSGetOperationStatusReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusReqTupleScheme extends TupleScheme<TSGetOperationStatusReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSGetOperationStatusReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationHandle.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSGetOperationStatusReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationHandle = new TSOperationHandle();
|
||||||
|
struct.operationHandle.read(iprot);
|
||||||
|
struct.setOperationHandleIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,396 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSGetOperationStatusResp implements org.apache.thrift.TBase<TSGetOperationStatusResp, TSGetOperationStatusResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSGetOperationStatusResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSGetOperationStatusResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSGetOperationStatusRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSGetOperationStatusRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TS_Status.class)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSGetOperationStatusResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusResp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusResp(
|
||||||
|
TS_Status status)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSGetOperationStatusResp(TSGetOperationStatusResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = new TS_Status(other.status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusResp deepCopy() {
|
||||||
|
return new TSGetOperationStatusResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSGetOperationStatusResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSGetOperationStatusResp)
|
||||||
|
return this.equals((TSGetOperationStatusResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSGetOperationStatusResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSGetOperationStatusResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSGetOperationStatusResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (status != null) {
|
||||||
|
status.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSGetOperationStatusRespStandardScheme getScheme() {
|
||||||
|
return new TSGetOperationStatusRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusRespStandardScheme extends StandardScheme<TSGetOperationStatusResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSGetOperationStatusResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSGetOperationStatusResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSGetOperationStatusRespTupleScheme getScheme() {
|
||||||
|
return new TSGetOperationStatusRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSGetOperationStatusRespTupleScheme extends TupleScheme<TSGetOperationStatusResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSGetOperationStatusResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSGetOperationStatusResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,512 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSHandleIdentifier implements org.apache.thrift.TBase<TSHandleIdentifier, TSHandleIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TSHandleIdentifier> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSHandleIdentifier");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField GUID_FIELD_DESC = new org.apache.thrift.protocol.TField("guid", org.apache.thrift.protocol.TType.STRING, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField SECRET_FIELD_DESC = new org.apache.thrift.protocol.TField("secret", org.apache.thrift.protocol.TType.STRING, (short)2);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSHandleIdentifierStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSHandleIdentifierTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public ByteBuffer guid; // required
|
||||||
|
public ByteBuffer secret; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
GUID((short)1, "guid"),
|
||||||
|
SECRET((short)2, "secret");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // GUID
|
||||||
|
return GUID;
|
||||||
|
case 2: // SECRET
|
||||||
|
return SECRET;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.GUID, new org.apache.thrift.meta_data.FieldMetaData("guid", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true)));
|
||||||
|
tmpMap.put(_Fields.SECRET, new org.apache.thrift.meta_data.FieldMetaData("secret", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSHandleIdentifier.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier(
|
||||||
|
ByteBuffer guid,
|
||||||
|
ByteBuffer secret)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.guid = org.apache.thrift.TBaseHelper.copyBinary(guid);
|
||||||
|
this.secret = org.apache.thrift.TBaseHelper.copyBinary(secret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSHandleIdentifier(TSHandleIdentifier other) {
|
||||||
|
if (other.isSetGuid()) {
|
||||||
|
this.guid = org.apache.thrift.TBaseHelper.copyBinary(other.guid);
|
||||||
|
}
|
||||||
|
if (other.isSetSecret()) {
|
||||||
|
this.secret = org.apache.thrift.TBaseHelper.copyBinary(other.secret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier deepCopy() {
|
||||||
|
return new TSHandleIdentifier(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.guid = null;
|
||||||
|
this.secret = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] getGuid() {
|
||||||
|
setGuid(org.apache.thrift.TBaseHelper.rightSize(guid));
|
||||||
|
return guid == null ? null : guid.array();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ByteBuffer bufferForGuid() {
|
||||||
|
return org.apache.thrift.TBaseHelper.copyBinary(guid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier setGuid(byte[] guid) {
|
||||||
|
this.guid = guid == null ? (ByteBuffer)null : ByteBuffer.wrap(Arrays.copyOf(guid, guid.length));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier setGuid(ByteBuffer guid) {
|
||||||
|
this.guid = org.apache.thrift.TBaseHelper.copyBinary(guid);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetGuid() {
|
||||||
|
this.guid = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field guid is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetGuid() {
|
||||||
|
return this.guid != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGuidIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.guid = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] getSecret() {
|
||||||
|
setSecret(org.apache.thrift.TBaseHelper.rightSize(secret));
|
||||||
|
return secret == null ? null : secret.array();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ByteBuffer bufferForSecret() {
|
||||||
|
return org.apache.thrift.TBaseHelper.copyBinary(secret);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier setSecret(byte[] secret) {
|
||||||
|
this.secret = secret == null ? (ByteBuffer)null : ByteBuffer.wrap(Arrays.copyOf(secret, secret.length));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier setSecret(ByteBuffer secret) {
|
||||||
|
this.secret = org.apache.thrift.TBaseHelper.copyBinary(secret);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSecret() {
|
||||||
|
this.secret = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field secret is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSecret() {
|
||||||
|
return this.secret != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecretIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.secret = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case GUID:
|
||||||
|
if (value == null) {
|
||||||
|
unsetGuid();
|
||||||
|
} else {
|
||||||
|
setGuid((ByteBuffer)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SECRET:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSecret();
|
||||||
|
} else {
|
||||||
|
setSecret((ByteBuffer)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case GUID:
|
||||||
|
return getGuid();
|
||||||
|
|
||||||
|
case SECRET:
|
||||||
|
return getSecret();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case GUID:
|
||||||
|
return isSetGuid();
|
||||||
|
case SECRET:
|
||||||
|
return isSetSecret();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSHandleIdentifier)
|
||||||
|
return this.equals((TSHandleIdentifier)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSHandleIdentifier that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_guid = true && this.isSetGuid();
|
||||||
|
boolean that_present_guid = true && that.isSetGuid();
|
||||||
|
if (this_present_guid || that_present_guid) {
|
||||||
|
if (!(this_present_guid && that_present_guid))
|
||||||
|
return false;
|
||||||
|
if (!this.guid.equals(that.guid))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_secret = true && this.isSetSecret();
|
||||||
|
boolean that_present_secret = true && that.isSetSecret();
|
||||||
|
if (this_present_secret || that_present_secret) {
|
||||||
|
if (!(this_present_secret && that_present_secret))
|
||||||
|
return false;
|
||||||
|
if (!this.secret.equals(that.secret))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_guid = true && (isSetGuid());
|
||||||
|
list.add(present_guid);
|
||||||
|
if (present_guid)
|
||||||
|
list.add(guid);
|
||||||
|
|
||||||
|
boolean present_secret = true && (isSetSecret());
|
||||||
|
list.add(present_secret);
|
||||||
|
if (present_secret)
|
||||||
|
list.add(secret);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSHandleIdentifier other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetGuid()).compareTo(other.isSetGuid());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetGuid()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.guid, other.guid);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetSecret()).compareTo(other.isSetSecret());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSecret()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.secret, other.secret);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSHandleIdentifier(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("guid:");
|
||||||
|
if (this.guid == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.TBaseHelper.toString(this.guid, sb);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("secret:");
|
||||||
|
if (this.secret == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.TBaseHelper.toString(this.secret, sb);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (guid == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'guid' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
if (secret == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'secret' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSHandleIdentifierStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSHandleIdentifierStandardScheme getScheme() {
|
||||||
|
return new TSHandleIdentifierStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSHandleIdentifierStandardScheme extends StandardScheme<TSHandleIdentifier> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSHandleIdentifier struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // GUID
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.guid = iprot.readBinary();
|
||||||
|
struct.setGuidIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // SECRET
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.secret = iprot.readBinary();
|
||||||
|
struct.setSecretIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSHandleIdentifier struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.guid != null) {
|
||||||
|
oprot.writeFieldBegin(GUID_FIELD_DESC);
|
||||||
|
oprot.writeBinary(struct.guid);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.secret != null) {
|
||||||
|
oprot.writeFieldBegin(SECRET_FIELD_DESC);
|
||||||
|
oprot.writeBinary(struct.secret);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSHandleIdentifierTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSHandleIdentifierTupleScheme getScheme() {
|
||||||
|
return new TSHandleIdentifierTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSHandleIdentifierTupleScheme extends TupleScheme<TSHandleIdentifier> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSHandleIdentifier struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
oprot.writeBinary(struct.guid);
|
||||||
|
oprot.writeBinary(struct.secret);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSHandleIdentifier struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.guid = iprot.readBinary();
|
||||||
|
struct.setGuidIsSet(true);
|
||||||
|
struct.secret = iprot.readBinary();
|
||||||
|
struct.setSecretIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,787 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSOpenSessionReq implements org.apache.thrift.TBase<TSOpenSessionReq, TSOpenSessionReq._Fields>, java.io.Serializable, Cloneable, Comparable<TSOpenSessionReq> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSOpenSessionReq");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField CLIENT_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("client_protocol", org.apache.thrift.protocol.TType.I32, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)2);
|
||||||
|
private static final org.apache.thrift.protocol.TField PASSWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("password", org.apache.thrift.protocol.TType.STRING, (short)3);
|
||||||
|
private static final org.apache.thrift.protocol.TField CONFIGURATION_FIELD_DESC = new org.apache.thrift.protocol.TField("configuration", org.apache.thrift.protocol.TType.MAP, (short)4);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSOpenSessionReqStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSOpenSessionReqTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
public TSProtocolVersion client_protocol; // required
|
||||||
|
public String username; // optional
|
||||||
|
public String password; // optional
|
||||||
|
public Map<String,String> configuration; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
CLIENT_PROTOCOL((short)1, "client_protocol"),
|
||||||
|
USERNAME((short)2, "username"),
|
||||||
|
PASSWORD((short)3, "password"),
|
||||||
|
CONFIGURATION((short)4, "configuration");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // CLIENT_PROTOCOL
|
||||||
|
return CLIENT_PROTOCOL;
|
||||||
|
case 2: // USERNAME
|
||||||
|
return USERNAME;
|
||||||
|
case 3: // PASSWORD
|
||||||
|
return PASSWORD;
|
||||||
|
case 4: // CONFIGURATION
|
||||||
|
return CONFIGURATION;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final _Fields optionals[] = {_Fields.USERNAME,_Fields.PASSWORD,_Fields.CONFIGURATION};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.CLIENT_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("client_protocol", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TSProtocolVersion.class)));
|
||||||
|
tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
tmpMap.put(_Fields.PASSWORD, new org.apache.thrift.meta_data.FieldMetaData("password", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
tmpMap.put(_Fields.CONFIGURATION, new org.apache.thrift.meta_data.FieldMetaData("configuration", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSOpenSessionReq.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionReq() {
|
||||||
|
this.client_protocol = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionReq(
|
||||||
|
TSProtocolVersion client_protocol)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.client_protocol = client_protocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSOpenSessionReq(TSOpenSessionReq other) {
|
||||||
|
if (other.isSetClient_protocol()) {
|
||||||
|
this.client_protocol = other.client_protocol;
|
||||||
|
}
|
||||||
|
if (other.isSetUsername()) {
|
||||||
|
this.username = other.username;
|
||||||
|
}
|
||||||
|
if (other.isSetPassword()) {
|
||||||
|
this.password = other.password;
|
||||||
|
}
|
||||||
|
if (other.isSetConfiguration()) {
|
||||||
|
Map<String,String> __this__configuration = new HashMap<String,String>(other.configuration);
|
||||||
|
this.configuration = __this__configuration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionReq deepCopy() {
|
||||||
|
return new TSOpenSessionReq(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.client_protocol = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1;
|
||||||
|
|
||||||
|
this.username = null;
|
||||||
|
this.password = null;
|
||||||
|
this.configuration = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
public TSProtocolVersion getClient_protocol() {
|
||||||
|
return this.client_protocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
public TSOpenSessionReq setClient_protocol(TSProtocolVersion client_protocol) {
|
||||||
|
this.client_protocol = client_protocol;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetClient_protocol() {
|
||||||
|
this.client_protocol = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field client_protocol is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetClient_protocol() {
|
||||||
|
return this.client_protocol != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClient_protocolIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.client_protocol = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return this.username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionReq setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetUsername() {
|
||||||
|
this.username = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field username is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetUsername() {
|
||||||
|
return this.username != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsernameIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.username = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return this.password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionReq setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetPassword() {
|
||||||
|
this.password = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field password is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetPassword() {
|
||||||
|
return this.password != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPasswordIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.password = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getConfigurationSize() {
|
||||||
|
return (this.configuration == null) ? 0 : this.configuration.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void putToConfiguration(String key, String val) {
|
||||||
|
if (this.configuration == null) {
|
||||||
|
this.configuration = new HashMap<String,String>();
|
||||||
|
}
|
||||||
|
this.configuration.put(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String,String> getConfiguration() {
|
||||||
|
return this.configuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionReq setConfiguration(Map<String,String> configuration) {
|
||||||
|
this.configuration = configuration;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetConfiguration() {
|
||||||
|
this.configuration = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field configuration is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetConfiguration() {
|
||||||
|
return this.configuration != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfigurationIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.configuration = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case CLIENT_PROTOCOL:
|
||||||
|
if (value == null) {
|
||||||
|
unsetClient_protocol();
|
||||||
|
} else {
|
||||||
|
setClient_protocol((TSProtocolVersion)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case USERNAME:
|
||||||
|
if (value == null) {
|
||||||
|
unsetUsername();
|
||||||
|
} else {
|
||||||
|
setUsername((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PASSWORD:
|
||||||
|
if (value == null) {
|
||||||
|
unsetPassword();
|
||||||
|
} else {
|
||||||
|
setPassword((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CONFIGURATION:
|
||||||
|
if (value == null) {
|
||||||
|
unsetConfiguration();
|
||||||
|
} else {
|
||||||
|
setConfiguration((Map<String,String>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case CLIENT_PROTOCOL:
|
||||||
|
return getClient_protocol();
|
||||||
|
|
||||||
|
case USERNAME:
|
||||||
|
return getUsername();
|
||||||
|
|
||||||
|
case PASSWORD:
|
||||||
|
return getPassword();
|
||||||
|
|
||||||
|
case CONFIGURATION:
|
||||||
|
return getConfiguration();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case CLIENT_PROTOCOL:
|
||||||
|
return isSetClient_protocol();
|
||||||
|
case USERNAME:
|
||||||
|
return isSetUsername();
|
||||||
|
case PASSWORD:
|
||||||
|
return isSetPassword();
|
||||||
|
case CONFIGURATION:
|
||||||
|
return isSetConfiguration();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSOpenSessionReq)
|
||||||
|
return this.equals((TSOpenSessionReq)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSOpenSessionReq that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_client_protocol = true && this.isSetClient_protocol();
|
||||||
|
boolean that_present_client_protocol = true && that.isSetClient_protocol();
|
||||||
|
if (this_present_client_protocol || that_present_client_protocol) {
|
||||||
|
if (!(this_present_client_protocol && that_present_client_protocol))
|
||||||
|
return false;
|
||||||
|
if (!this.client_protocol.equals(that.client_protocol))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_username = true && this.isSetUsername();
|
||||||
|
boolean that_present_username = true && that.isSetUsername();
|
||||||
|
if (this_present_username || that_present_username) {
|
||||||
|
if (!(this_present_username && that_present_username))
|
||||||
|
return false;
|
||||||
|
if (!this.username.equals(that.username))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_password = true && this.isSetPassword();
|
||||||
|
boolean that_present_password = true && that.isSetPassword();
|
||||||
|
if (this_present_password || that_present_password) {
|
||||||
|
if (!(this_present_password && that_present_password))
|
||||||
|
return false;
|
||||||
|
if (!this.password.equals(that.password))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_configuration = true && this.isSetConfiguration();
|
||||||
|
boolean that_present_configuration = true && that.isSetConfiguration();
|
||||||
|
if (this_present_configuration || that_present_configuration) {
|
||||||
|
if (!(this_present_configuration && that_present_configuration))
|
||||||
|
return false;
|
||||||
|
if (!this.configuration.equals(that.configuration))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_client_protocol = true && (isSetClient_protocol());
|
||||||
|
list.add(present_client_protocol);
|
||||||
|
if (present_client_protocol)
|
||||||
|
list.add(client_protocol.getValue());
|
||||||
|
|
||||||
|
boolean present_username = true && (isSetUsername());
|
||||||
|
list.add(present_username);
|
||||||
|
if (present_username)
|
||||||
|
list.add(username);
|
||||||
|
|
||||||
|
boolean present_password = true && (isSetPassword());
|
||||||
|
list.add(present_password);
|
||||||
|
if (present_password)
|
||||||
|
list.add(password);
|
||||||
|
|
||||||
|
boolean present_configuration = true && (isSetConfiguration());
|
||||||
|
list.add(present_configuration);
|
||||||
|
if (present_configuration)
|
||||||
|
list.add(configuration);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSOpenSessionReq other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetClient_protocol()).compareTo(other.isSetClient_protocol());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetClient_protocol()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.client_protocol, other.client_protocol);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetUsername()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetPassword()).compareTo(other.isSetPassword());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetPassword()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.password, other.password);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetConfiguration()).compareTo(other.isSetConfiguration());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetConfiguration()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.configuration, other.configuration);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSOpenSessionReq(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("client_protocol:");
|
||||||
|
if (this.client_protocol == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.client_protocol);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (isSetUsername()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("username:");
|
||||||
|
if (this.username == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.username);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetPassword()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("password:");
|
||||||
|
if (this.password == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.password);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetConfiguration()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("configuration:");
|
||||||
|
if (this.configuration == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.configuration);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (client_protocol == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'client_protocol' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionReqStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSOpenSessionReqStandardScheme getScheme() {
|
||||||
|
return new TSOpenSessionReqStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionReqStandardScheme extends StandardScheme<TSOpenSessionReq> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSOpenSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // CLIENT_PROTOCOL
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
|
||||||
|
struct.client_protocol = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.findByValue(iprot.readI32());
|
||||||
|
struct.setClient_protocolIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // USERNAME
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.username = iprot.readString();
|
||||||
|
struct.setUsernameIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // PASSWORD
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.password = iprot.readString();
|
||||||
|
struct.setPasswordIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: // CONFIGURATION
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
|
||||||
|
struct.configuration = new HashMap<String,String>(2*_map0.size);
|
||||||
|
String _key1;
|
||||||
|
String _val2;
|
||||||
|
for (int _i3 = 0; _i3 < _map0.size; ++_i3)
|
||||||
|
{
|
||||||
|
_key1 = iprot.readString();
|
||||||
|
_val2 = iprot.readString();
|
||||||
|
struct.configuration.put(_key1, _val2);
|
||||||
|
}
|
||||||
|
iprot.readMapEnd();
|
||||||
|
}
|
||||||
|
struct.setConfigurationIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSOpenSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.client_protocol != null) {
|
||||||
|
oprot.writeFieldBegin(CLIENT_PROTOCOL_FIELD_DESC);
|
||||||
|
oprot.writeI32(struct.client_protocol.getValue());
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.username != null) {
|
||||||
|
if (struct.isSetUsername()) {
|
||||||
|
oprot.writeFieldBegin(USERNAME_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.username);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.password != null) {
|
||||||
|
if (struct.isSetPassword()) {
|
||||||
|
oprot.writeFieldBegin(PASSWORD_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.password);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.configuration != null) {
|
||||||
|
if (struct.isSetConfiguration()) {
|
||||||
|
oprot.writeFieldBegin(CONFIGURATION_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.configuration.size()));
|
||||||
|
for (Map.Entry<String, String> _iter4 : struct.configuration.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter4.getKey());
|
||||||
|
oprot.writeString(_iter4.getValue());
|
||||||
|
}
|
||||||
|
oprot.writeMapEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionReqTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSOpenSessionReqTupleScheme getScheme() {
|
||||||
|
return new TSOpenSessionReqTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionReqTupleScheme extends TupleScheme<TSOpenSessionReq> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSOpenSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
oprot.writeI32(struct.client_protocol.getValue());
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetUsername()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
if (struct.isSetPassword()) {
|
||||||
|
optionals.set(1);
|
||||||
|
}
|
||||||
|
if (struct.isSetConfiguration()) {
|
||||||
|
optionals.set(2);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 3);
|
||||||
|
if (struct.isSetUsername()) {
|
||||||
|
oprot.writeString(struct.username);
|
||||||
|
}
|
||||||
|
if (struct.isSetPassword()) {
|
||||||
|
oprot.writeString(struct.password);
|
||||||
|
}
|
||||||
|
if (struct.isSetConfiguration()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.configuration.size());
|
||||||
|
for (Map.Entry<String, String> _iter5 : struct.configuration.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter5.getKey());
|
||||||
|
oprot.writeString(_iter5.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSOpenSessionReq struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.client_protocol = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.findByValue(iprot.readI32());
|
||||||
|
struct.setClient_protocolIsSet(true);
|
||||||
|
BitSet incoming = iprot.readBitSet(3);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
struct.username = iprot.readString();
|
||||||
|
struct.setUsernameIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(1)) {
|
||||||
|
struct.password = iprot.readString();
|
||||||
|
struct.setPasswordIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(2)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map6 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
struct.configuration = new HashMap<String,String>(2*_map6.size);
|
||||||
|
String _key7;
|
||||||
|
String _val8;
|
||||||
|
for (int _i9 = 0; _i9 < _map6.size; ++_i9)
|
||||||
|
{
|
||||||
|
_key7 = iprot.readString();
|
||||||
|
_val8 = iprot.readString();
|
||||||
|
struct.configuration.put(_key7, _val8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setConfigurationIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,785 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSOpenSessionResp implements org.apache.thrift.TBase<TSOpenSessionResp, TSOpenSessionResp._Fields>, java.io.Serializable, Cloneable, Comparable<TSOpenSessionResp> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSOpenSessionResp");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField SERVER_PROTOCOL_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("serverProtocolVersion", org.apache.thrift.protocol.TType.I32, (short)2);
|
||||||
|
private static final org.apache.thrift.protocol.TField SESSION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionHandle", org.apache.thrift.protocol.TType.STRUCT, (short)3);
|
||||||
|
private static final org.apache.thrift.protocol.TField CONFIGURATION_FIELD_DESC = new org.apache.thrift.protocol.TField("configuration", org.apache.thrift.protocol.TType.MAP, (short)4);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSOpenSessionRespStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSOpenSessionRespTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status status; // required
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
public TSProtocolVersion serverProtocolVersion; // required
|
||||||
|
public TS_SessionHandle sessionHandle; // optional
|
||||||
|
public Map<String,String> configuration; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
STATUS((short)1, "status"),
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
SERVER_PROTOCOL_VERSION((short)2, "serverProtocolVersion"),
|
||||||
|
SESSION_HANDLE((short)3, "sessionHandle"),
|
||||||
|
CONFIGURATION((short)4, "configuration");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS
|
||||||
|
return STATUS;
|
||||||
|
case 2: // SERVER_PROTOCOL_VERSION
|
||||||
|
return SERVER_PROTOCOL_VERSION;
|
||||||
|
case 3: // SESSION_HANDLE
|
||||||
|
return SESSION_HANDLE;
|
||||||
|
case 4: // CONFIGURATION
|
||||||
|
return CONFIGURATION;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final _Fields optionals[] = {_Fields.SESSION_HANDLE,_Fields.CONFIGURATION};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TS_Status")));
|
||||||
|
tmpMap.put(_Fields.SERVER_PROTOCOL_VERSION, new org.apache.thrift.meta_data.FieldMetaData("serverProtocolVersion", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TSProtocolVersion.class)));
|
||||||
|
tmpMap.put(_Fields.SESSION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("sessionHandle", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TS_SessionHandle")));
|
||||||
|
tmpMap.put(_Fields.CONFIGURATION, new org.apache.thrift.meta_data.FieldMetaData("configuration", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSOpenSessionResp.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionResp() {
|
||||||
|
this.serverProtocolVersion = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionResp(
|
||||||
|
TS_Status status,
|
||||||
|
TSProtocolVersion serverProtocolVersion)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.status = status;
|
||||||
|
this.serverProtocolVersion = serverProtocolVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSOpenSessionResp(TSOpenSessionResp other) {
|
||||||
|
if (other.isSetStatus()) {
|
||||||
|
this.status = other.status;
|
||||||
|
}
|
||||||
|
if (other.isSetServerProtocolVersion()) {
|
||||||
|
this.serverProtocolVersion = other.serverProtocolVersion;
|
||||||
|
}
|
||||||
|
if (other.isSetSessionHandle()) {
|
||||||
|
this.sessionHandle = other.sessionHandle;
|
||||||
|
}
|
||||||
|
if (other.isSetConfiguration()) {
|
||||||
|
Map<String,String> __this__configuration = new HashMap<String,String>(other.configuration);
|
||||||
|
this.configuration = __this__configuration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionResp deepCopy() {
|
||||||
|
return new TSOpenSessionResp(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.status = null;
|
||||||
|
this.serverProtocolVersion = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1;
|
||||||
|
|
||||||
|
this.sessionHandle = null;
|
||||||
|
this.configuration = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status getStatus() {
|
||||||
|
return this.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionResp setStatus(TS_Status status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatus() {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field status is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatus() {
|
||||||
|
return this.status != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.status = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
public TSProtocolVersion getServerProtocolVersion() {
|
||||||
|
return this.serverProtocolVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TSProtocolVersion
|
||||||
|
*/
|
||||||
|
public TSOpenSessionResp setServerProtocolVersion(TSProtocolVersion serverProtocolVersion) {
|
||||||
|
this.serverProtocolVersion = serverProtocolVersion;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetServerProtocolVersion() {
|
||||||
|
this.serverProtocolVersion = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field serverProtocolVersion is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetServerProtocolVersion() {
|
||||||
|
return this.serverProtocolVersion != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServerProtocolVersionIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.serverProtocolVersion = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle getSessionHandle() {
|
||||||
|
return this.sessionHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionResp setSessionHandle(TS_SessionHandle sessionHandle) {
|
||||||
|
this.sessionHandle = sessionHandle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSessionHandle() {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field sessionHandle is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSessionHandle() {
|
||||||
|
return this.sessionHandle != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionHandleIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.sessionHandle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getConfigurationSize() {
|
||||||
|
return (this.configuration == null) ? 0 : this.configuration.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void putToConfiguration(String key, String val) {
|
||||||
|
if (this.configuration == null) {
|
||||||
|
this.configuration = new HashMap<String,String>();
|
||||||
|
}
|
||||||
|
this.configuration.put(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String,String> getConfiguration() {
|
||||||
|
return this.configuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOpenSessionResp setConfiguration(Map<String,String> configuration) {
|
||||||
|
this.configuration = configuration;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetConfiguration() {
|
||||||
|
this.configuration = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field configuration is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetConfiguration() {
|
||||||
|
return this.configuration != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfigurationIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.configuration = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatus();
|
||||||
|
} else {
|
||||||
|
setStatus((TS_Status)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SERVER_PROTOCOL_VERSION:
|
||||||
|
if (value == null) {
|
||||||
|
unsetServerProtocolVersion();
|
||||||
|
} else {
|
||||||
|
setServerProtocolVersion((TSProtocolVersion)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSessionHandle();
|
||||||
|
} else {
|
||||||
|
setSessionHandle((TS_SessionHandle)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CONFIGURATION:
|
||||||
|
if (value == null) {
|
||||||
|
unsetConfiguration();
|
||||||
|
} else {
|
||||||
|
setConfiguration((Map<String,String>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return getStatus();
|
||||||
|
|
||||||
|
case SERVER_PROTOCOL_VERSION:
|
||||||
|
return getServerProtocolVersion();
|
||||||
|
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return getSessionHandle();
|
||||||
|
|
||||||
|
case CONFIGURATION:
|
||||||
|
return getConfiguration();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS:
|
||||||
|
return isSetStatus();
|
||||||
|
case SERVER_PROTOCOL_VERSION:
|
||||||
|
return isSetServerProtocolVersion();
|
||||||
|
case SESSION_HANDLE:
|
||||||
|
return isSetSessionHandle();
|
||||||
|
case CONFIGURATION:
|
||||||
|
return isSetConfiguration();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSOpenSessionResp)
|
||||||
|
return this.equals((TSOpenSessionResp)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSOpenSessionResp that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_status = true && this.isSetStatus();
|
||||||
|
boolean that_present_status = true && that.isSetStatus();
|
||||||
|
if (this_present_status || that_present_status) {
|
||||||
|
if (!(this_present_status && that_present_status))
|
||||||
|
return false;
|
||||||
|
if (!this.status.equals(that.status))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_serverProtocolVersion = true && this.isSetServerProtocolVersion();
|
||||||
|
boolean that_present_serverProtocolVersion = true && that.isSetServerProtocolVersion();
|
||||||
|
if (this_present_serverProtocolVersion || that_present_serverProtocolVersion) {
|
||||||
|
if (!(this_present_serverProtocolVersion && that_present_serverProtocolVersion))
|
||||||
|
return false;
|
||||||
|
if (!this.serverProtocolVersion.equals(that.serverProtocolVersion))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_sessionHandle = true && this.isSetSessionHandle();
|
||||||
|
boolean that_present_sessionHandle = true && that.isSetSessionHandle();
|
||||||
|
if (this_present_sessionHandle || that_present_sessionHandle) {
|
||||||
|
if (!(this_present_sessionHandle && that_present_sessionHandle))
|
||||||
|
return false;
|
||||||
|
if (!this.sessionHandle.equals(that.sessionHandle))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_configuration = true && this.isSetConfiguration();
|
||||||
|
boolean that_present_configuration = true && that.isSetConfiguration();
|
||||||
|
if (this_present_configuration || that_present_configuration) {
|
||||||
|
if (!(this_present_configuration && that_present_configuration))
|
||||||
|
return false;
|
||||||
|
if (!this.configuration.equals(that.configuration))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_status = true && (isSetStatus());
|
||||||
|
list.add(present_status);
|
||||||
|
if (present_status)
|
||||||
|
list.add(status);
|
||||||
|
|
||||||
|
boolean present_serverProtocolVersion = true && (isSetServerProtocolVersion());
|
||||||
|
list.add(present_serverProtocolVersion);
|
||||||
|
if (present_serverProtocolVersion)
|
||||||
|
list.add(serverProtocolVersion.getValue());
|
||||||
|
|
||||||
|
boolean present_sessionHandle = true && (isSetSessionHandle());
|
||||||
|
list.add(present_sessionHandle);
|
||||||
|
if (present_sessionHandle)
|
||||||
|
list.add(sessionHandle);
|
||||||
|
|
||||||
|
boolean present_configuration = true && (isSetConfiguration());
|
||||||
|
list.add(present_configuration);
|
||||||
|
if (present_configuration)
|
||||||
|
list.add(configuration);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSOpenSessionResp other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatus()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetServerProtocolVersion()).compareTo(other.isSetServerProtocolVersion());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetServerProtocolVersion()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.serverProtocolVersion, other.serverProtocolVersion);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetSessionHandle()).compareTo(other.isSetSessionHandle());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSessionHandle()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionHandle, other.sessionHandle);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetConfiguration()).compareTo(other.isSetConfiguration());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetConfiguration()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.configuration, other.configuration);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSOpenSessionResp(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("status:");
|
||||||
|
if (this.status == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.status);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("serverProtocolVersion:");
|
||||||
|
if (this.serverProtocolVersion == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.serverProtocolVersion);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (isSetSessionHandle()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("sessionHandle:");
|
||||||
|
if (this.sessionHandle == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.sessionHandle);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetConfiguration()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("configuration:");
|
||||||
|
if (this.configuration == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.configuration);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (status == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
if (serverProtocolVersion == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'serverProtocolVersion' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionRespStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSOpenSessionRespStandardScheme getScheme() {
|
||||||
|
return new TSOpenSessionRespStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionRespStandardScheme extends StandardScheme<TSOpenSessionResp> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSOpenSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // SERVER_PROTOCOL_VERSION
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
|
||||||
|
struct.serverProtocolVersion = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.findByValue(iprot.readI32());
|
||||||
|
struct.setServerProtocolVersionIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // SESSION_HANDLE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: // CONFIGURATION
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map10 = iprot.readMapBegin();
|
||||||
|
struct.configuration = new HashMap<String,String>(2*_map10.size);
|
||||||
|
String _key11;
|
||||||
|
String _val12;
|
||||||
|
for (int _i13 = 0; _i13 < _map10.size; ++_i13)
|
||||||
|
{
|
||||||
|
_key11 = iprot.readString();
|
||||||
|
_val12 = iprot.readString();
|
||||||
|
struct.configuration.put(_key11, _val12);
|
||||||
|
}
|
||||||
|
iprot.readMapEnd();
|
||||||
|
}
|
||||||
|
struct.setConfigurationIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSOpenSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.status != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_FIELD_DESC);
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.serverProtocolVersion != null) {
|
||||||
|
oprot.writeFieldBegin(SERVER_PROTOCOL_VERSION_FIELD_DESC);
|
||||||
|
oprot.writeI32(struct.serverProtocolVersion.getValue());
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.sessionHandle != null) {
|
||||||
|
if (struct.isSetSessionHandle()) {
|
||||||
|
oprot.writeFieldBegin(SESSION_HANDLE_FIELD_DESC);
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.configuration != null) {
|
||||||
|
if (struct.isSetConfiguration()) {
|
||||||
|
oprot.writeFieldBegin(CONFIGURATION_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.configuration.size()));
|
||||||
|
for (Map.Entry<String, String> _iter14 : struct.configuration.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter14.getKey());
|
||||||
|
oprot.writeString(_iter14.getValue());
|
||||||
|
}
|
||||||
|
oprot.writeMapEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionRespTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSOpenSessionRespTupleScheme getScheme() {
|
||||||
|
return new TSOpenSessionRespTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOpenSessionRespTupleScheme extends TupleScheme<TSOpenSessionResp> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSOpenSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.status.write(oprot);
|
||||||
|
oprot.writeI32(struct.serverProtocolVersion.getValue());
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetSessionHandle()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
if (struct.isSetConfiguration()) {
|
||||||
|
optionals.set(1);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 2);
|
||||||
|
if (struct.isSetSessionHandle()) {
|
||||||
|
struct.sessionHandle.write(oprot);
|
||||||
|
}
|
||||||
|
if (struct.isSetConfiguration()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.configuration.size());
|
||||||
|
for (Map.Entry<String, String> _iter15 : struct.configuration.entrySet())
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter15.getKey());
|
||||||
|
oprot.writeString(_iter15.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSOpenSessionResp struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.status = new TS_Status();
|
||||||
|
struct.status.read(iprot);
|
||||||
|
struct.setStatusIsSet(true);
|
||||||
|
struct.serverProtocolVersion = cn.edu.thu.tsfiledb.service.rpc.thrift.TSProtocolVersion.findByValue(iprot.readI32());
|
||||||
|
struct.setServerProtocolVersionIsSet(true);
|
||||||
|
BitSet incoming = iprot.readBitSet(2);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
struct.sessionHandle = new TS_SessionHandle();
|
||||||
|
struct.sessionHandle.read(iprot);
|
||||||
|
struct.setSessionHandleIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(1)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TMap _map16 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
struct.configuration = new HashMap<String,String>(2*_map16.size);
|
||||||
|
String _key17;
|
||||||
|
String _val18;
|
||||||
|
for (int _i19 = 0; _i19 < _map16.size; ++_i19)
|
||||||
|
{
|
||||||
|
_key17 = iprot.readString();
|
||||||
|
_val18 = iprot.readString();
|
||||||
|
struct.configuration.put(_key17, _val18);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setConfigurationIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,496 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSOperationHandle implements org.apache.thrift.TBase<TSOperationHandle, TSOperationHandle._Fields>, java.io.Serializable, Cloneable, Comparable<TSOperationHandle> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSOperationHandle");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField OPERATION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("operationId", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField HAS_RESULT_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("hasResultSet", org.apache.thrift.protocol.TType.BOOL, (short)2);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSOperationHandleStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSOperationHandleTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier operationId; // required
|
||||||
|
public boolean hasResultSet; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
OPERATION_ID((short)1, "operationId"),
|
||||||
|
HAS_RESULT_SET((short)2, "hasResultSet");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // OPERATION_ID
|
||||||
|
return OPERATION_ID;
|
||||||
|
case 2: // HAS_RESULT_SET
|
||||||
|
return HAS_RESULT_SET;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final int __HASRESULTSET_ISSET_ID = 0;
|
||||||
|
private byte __isset_bitfield = 0;
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.OPERATION_ID, new org.apache.thrift.meta_data.FieldMetaData("operationId", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSHandleIdentifier.class)));
|
||||||
|
tmpMap.put(_Fields.HAS_RESULT_SET, new org.apache.thrift.meta_data.FieldMetaData("hasResultSet", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSOperationHandle.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle(
|
||||||
|
TSHandleIdentifier operationId,
|
||||||
|
boolean hasResultSet)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.operationId = operationId;
|
||||||
|
this.hasResultSet = hasResultSet;
|
||||||
|
setHasResultSetIsSet(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSOperationHandle(TSOperationHandle other) {
|
||||||
|
__isset_bitfield = other.__isset_bitfield;
|
||||||
|
if (other.isSetOperationId()) {
|
||||||
|
this.operationId = new TSHandleIdentifier(other.operationId);
|
||||||
|
}
|
||||||
|
this.hasResultSet = other.hasResultSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle deepCopy() {
|
||||||
|
return new TSOperationHandle(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.operationId = null;
|
||||||
|
setHasResultSetIsSet(false);
|
||||||
|
this.hasResultSet = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier getOperationId() {
|
||||||
|
return this.operationId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle setOperationId(TSHandleIdentifier operationId) {
|
||||||
|
this.operationId = operationId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetOperationId() {
|
||||||
|
this.operationId = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field operationId is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetOperationId() {
|
||||||
|
return this.operationId != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationIdIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.operationId = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHasResultSet() {
|
||||||
|
return this.hasResultSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSOperationHandle setHasResultSet(boolean hasResultSet) {
|
||||||
|
this.hasResultSet = hasResultSet;
|
||||||
|
setHasResultSetIsSet(true);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetHasResultSet() {
|
||||||
|
__isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __HASRESULTSET_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field hasResultSet is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetHasResultSet() {
|
||||||
|
return EncodingUtils.testBit(__isset_bitfield, __HASRESULTSET_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHasResultSetIsSet(boolean value) {
|
||||||
|
__isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __HASRESULTSET_ISSET_ID, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_ID:
|
||||||
|
if (value == null) {
|
||||||
|
unsetOperationId();
|
||||||
|
} else {
|
||||||
|
setOperationId((TSHandleIdentifier)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case HAS_RESULT_SET:
|
||||||
|
if (value == null) {
|
||||||
|
unsetHasResultSet();
|
||||||
|
} else {
|
||||||
|
setHasResultSet((Boolean)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_ID:
|
||||||
|
return getOperationId();
|
||||||
|
|
||||||
|
case HAS_RESULT_SET:
|
||||||
|
return Boolean.valueOf(isHasResultSet());
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case OPERATION_ID:
|
||||||
|
return isSetOperationId();
|
||||||
|
case HAS_RESULT_SET:
|
||||||
|
return isSetHasResultSet();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSOperationHandle)
|
||||||
|
return this.equals((TSOperationHandle)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSOperationHandle that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_operationId = true && this.isSetOperationId();
|
||||||
|
boolean that_present_operationId = true && that.isSetOperationId();
|
||||||
|
if (this_present_operationId || that_present_operationId) {
|
||||||
|
if (!(this_present_operationId && that_present_operationId))
|
||||||
|
return false;
|
||||||
|
if (!this.operationId.equals(that.operationId))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_hasResultSet = true;
|
||||||
|
boolean that_present_hasResultSet = true;
|
||||||
|
if (this_present_hasResultSet || that_present_hasResultSet) {
|
||||||
|
if (!(this_present_hasResultSet && that_present_hasResultSet))
|
||||||
|
return false;
|
||||||
|
if (this.hasResultSet != that.hasResultSet)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_operationId = true && (isSetOperationId());
|
||||||
|
list.add(present_operationId);
|
||||||
|
if (present_operationId)
|
||||||
|
list.add(operationId);
|
||||||
|
|
||||||
|
boolean present_hasResultSet = true;
|
||||||
|
list.add(present_hasResultSet);
|
||||||
|
if (present_hasResultSet)
|
||||||
|
list.add(hasResultSet);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSOperationHandle other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetOperationId()).compareTo(other.isSetOperationId());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetOperationId()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operationId, other.operationId);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetHasResultSet()).compareTo(other.isSetHasResultSet());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetHasResultSet()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hasResultSet, other.hasResultSet);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSOperationHandle(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("operationId:");
|
||||||
|
if (this.operationId == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.operationId);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("hasResultSet:");
|
||||||
|
sb.append(this.hasResultSet);
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (operationId == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'operationId' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// alas, we cannot check 'hasResultSet' because it's a primitive and you chose the non-beans generator.
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (operationId != null) {
|
||||||
|
operationId.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
|
||||||
|
__isset_bitfield = 0;
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOperationHandleStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSOperationHandleStandardScheme getScheme() {
|
||||||
|
return new TSOperationHandleStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOperationHandleStandardScheme extends StandardScheme<TSOperationHandle> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSOperationHandle struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // OPERATION_ID
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.operationId = new TSHandleIdentifier();
|
||||||
|
struct.operationId.read(iprot);
|
||||||
|
struct.setOperationIdIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // HAS_RESULT_SET
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
|
||||||
|
struct.hasResultSet = iprot.readBool();
|
||||||
|
struct.setHasResultSetIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
if (!struct.isSetHasResultSet()) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'hasResultSet' was not found in serialized data! Struct: " + toString());
|
||||||
|
}
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSOperationHandle struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.operationId != null) {
|
||||||
|
oprot.writeFieldBegin(OPERATION_ID_FIELD_DESC);
|
||||||
|
struct.operationId.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldBegin(HAS_RESULT_SET_FIELD_DESC);
|
||||||
|
oprot.writeBool(struct.hasResultSet);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOperationHandleTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSOperationHandleTupleScheme getScheme() {
|
||||||
|
return new TSOperationHandleTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSOperationHandleTupleScheme extends TupleScheme<TSOperationHandle> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSOperationHandle struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationId.write(oprot);
|
||||||
|
oprot.writeBool(struct.hasResultSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSOperationHandle struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.operationId = new TSHandleIdentifier();
|
||||||
|
struct.operationId.read(iprot);
|
||||||
|
struct.setOperationIdIsSet(true);
|
||||||
|
struct.hasResultSet = iprot.readBool();
|
||||||
|
struct.setHasResultSetIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import org.apache.thrift.TEnum;
|
||||||
|
|
||||||
|
public enum TSProtocolVersion implements org.apache.thrift.TEnum {
|
||||||
|
TSFILE_SERVICE_PROTOCOL_V1(0);
|
||||||
|
|
||||||
|
private final int value;
|
||||||
|
|
||||||
|
private TSProtocolVersion(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the integer value of this enum value, as defined in the Thrift IDL.
|
||||||
|
*/
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find a the enum type by its integer value, as defined in the Thrift IDL.
|
||||||
|
* @return null if the value is not found.
|
||||||
|
*/
|
||||||
|
public static TSProtocolVersion findByValue(int value) {
|
||||||
|
switch (value) {
|
||||||
|
case 0:
|
||||||
|
return TSFILE_SERVICE_PROTOCOL_V1;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,595 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TSQueryDataSet implements org.apache.thrift.TBase<TSQueryDataSet, TSQueryDataSet._Fields>, java.io.Serializable, Cloneable, Comparable<TSQueryDataSet> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSQueryDataSet");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField KEYS_FIELD_DESC = new org.apache.thrift.protocol.TField("keys", org.apache.thrift.protocol.TType.LIST, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField VALUES_FIELD_DESC = new org.apache.thrift.protocol.TField("values", org.apache.thrift.protocol.TType.LIST, (short)2);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TSQueryDataSetStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TSQueryDataSetTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> keys; // required
|
||||||
|
public List<TSDynamicOneColumnData> values; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
KEYS((short)1, "keys"),
|
||||||
|
VALUES((short)2, "values");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // KEYS
|
||||||
|
return KEYS;
|
||||||
|
case 2: // VALUES
|
||||||
|
return VALUES;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.KEYS, new org.apache.thrift.meta_data.FieldMetaData("keys", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||||
|
tmpMap.put(_Fields.VALUES, new org.apache.thrift.meta_data.FieldMetaData("values", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT , "TSDynamicOneColumnData"))));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSQueryDataSet.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSQueryDataSet() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSQueryDataSet(
|
||||||
|
List<String> keys,
|
||||||
|
List<TSDynamicOneColumnData> values)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.keys = keys;
|
||||||
|
this.values = values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TSQueryDataSet(TSQueryDataSet other) {
|
||||||
|
if (other.isSetKeys()) {
|
||||||
|
List<String> __this__keys = new ArrayList<String>(other.keys);
|
||||||
|
this.keys = __this__keys;
|
||||||
|
}
|
||||||
|
if (other.isSetValues()) {
|
||||||
|
List<TSDynamicOneColumnData> __this__values = new ArrayList<TSDynamicOneColumnData>(other.values.size());
|
||||||
|
for (TSDynamicOneColumnData other_element : other.values) {
|
||||||
|
__this__values.add(other_element);
|
||||||
|
}
|
||||||
|
this.values = __this__values;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSQueryDataSet deepCopy() {
|
||||||
|
return new TSQueryDataSet(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.keys = null;
|
||||||
|
this.values = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKeysSize() {
|
||||||
|
return (this.keys == null) ? 0 : this.keys.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public java.util.Iterator<String> getKeysIterator() {
|
||||||
|
return (this.keys == null) ? null : this.keys.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addToKeys(String elem) {
|
||||||
|
if (this.keys == null) {
|
||||||
|
this.keys = new ArrayList<String>();
|
||||||
|
}
|
||||||
|
this.keys.add(elem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getKeys() {
|
||||||
|
return this.keys;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSQueryDataSet setKeys(List<String> keys) {
|
||||||
|
this.keys = keys;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetKeys() {
|
||||||
|
this.keys = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field keys is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetKeys() {
|
||||||
|
return this.keys != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKeysIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.keys = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValuesSize() {
|
||||||
|
return (this.values == null) ? 0 : this.values.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public java.util.Iterator<TSDynamicOneColumnData> getValuesIterator() {
|
||||||
|
return (this.values == null) ? null : this.values.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addToValues(TSDynamicOneColumnData elem) {
|
||||||
|
if (this.values == null) {
|
||||||
|
this.values = new ArrayList<TSDynamicOneColumnData>();
|
||||||
|
}
|
||||||
|
this.values.add(elem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TSDynamicOneColumnData> getValues() {
|
||||||
|
return this.values;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSQueryDataSet setValues(List<TSDynamicOneColumnData> values) {
|
||||||
|
this.values = values;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetValues() {
|
||||||
|
this.values = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field values is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetValues() {
|
||||||
|
return this.values != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValuesIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.values = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case KEYS:
|
||||||
|
if (value == null) {
|
||||||
|
unsetKeys();
|
||||||
|
} else {
|
||||||
|
setKeys((List<String>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VALUES:
|
||||||
|
if (value == null) {
|
||||||
|
unsetValues();
|
||||||
|
} else {
|
||||||
|
setValues((List<TSDynamicOneColumnData>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case KEYS:
|
||||||
|
return getKeys();
|
||||||
|
|
||||||
|
case VALUES:
|
||||||
|
return getValues();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case KEYS:
|
||||||
|
return isSetKeys();
|
||||||
|
case VALUES:
|
||||||
|
return isSetValues();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TSQueryDataSet)
|
||||||
|
return this.equals((TSQueryDataSet)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TSQueryDataSet that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_keys = true && this.isSetKeys();
|
||||||
|
boolean that_present_keys = true && that.isSetKeys();
|
||||||
|
if (this_present_keys || that_present_keys) {
|
||||||
|
if (!(this_present_keys && that_present_keys))
|
||||||
|
return false;
|
||||||
|
if (!this.keys.equals(that.keys))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_values = true && this.isSetValues();
|
||||||
|
boolean that_present_values = true && that.isSetValues();
|
||||||
|
if (this_present_values || that_present_values) {
|
||||||
|
if (!(this_present_values && that_present_values))
|
||||||
|
return false;
|
||||||
|
if (!this.values.equals(that.values))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_keys = true && (isSetKeys());
|
||||||
|
list.add(present_keys);
|
||||||
|
if (present_keys)
|
||||||
|
list.add(keys);
|
||||||
|
|
||||||
|
boolean present_values = true && (isSetValues());
|
||||||
|
list.add(present_values);
|
||||||
|
if (present_values)
|
||||||
|
list.add(values);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TSQueryDataSet other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetKeys()).compareTo(other.isSetKeys());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetKeys()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.keys, other.keys);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetValues()).compareTo(other.isSetValues());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetValues()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.values, other.values);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TSQueryDataSet(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("keys:");
|
||||||
|
if (this.keys == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.keys);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("values:");
|
||||||
|
if (this.values == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.values);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (keys == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'keys' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
if (values == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'values' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSQueryDataSetStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TSQueryDataSetStandardScheme getScheme() {
|
||||||
|
return new TSQueryDataSetStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSQueryDataSetStandardScheme extends StandardScheme<TSQueryDataSet> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TSQueryDataSet struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // KEYS
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list52 = iprot.readListBegin();
|
||||||
|
struct.keys = new ArrayList<String>(_list52.size);
|
||||||
|
String _elem53;
|
||||||
|
for (int _i54 = 0; _i54 < _list52.size; ++_i54)
|
||||||
|
{
|
||||||
|
_elem53 = iprot.readString();
|
||||||
|
struct.keys.add(_elem53);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.setKeysIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // VALUES
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list55 = iprot.readListBegin();
|
||||||
|
struct.values = new ArrayList<TSDynamicOneColumnData>(_list55.size);
|
||||||
|
TSDynamicOneColumnData _elem56;
|
||||||
|
for (int _i57 = 0; _i57 < _list55.size; ++_i57)
|
||||||
|
{
|
||||||
|
_elem56 = new TSDynamicOneColumnData();
|
||||||
|
_elem56.read(iprot);
|
||||||
|
struct.values.add(_elem56);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.setValuesIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TSQueryDataSet struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.keys != null) {
|
||||||
|
oprot.writeFieldBegin(KEYS_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.keys.size()));
|
||||||
|
for (String _iter58 : struct.keys)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter58);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.values != null) {
|
||||||
|
oprot.writeFieldBegin(VALUES_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.values.size()));
|
||||||
|
for (TSDynamicOneColumnData _iter59 : struct.values)
|
||||||
|
{
|
||||||
|
_iter59.write(oprot);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSQueryDataSetTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TSQueryDataSetTupleScheme getScheme() {
|
||||||
|
return new TSQueryDataSetTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TSQueryDataSetTupleScheme extends TupleScheme<TSQueryDataSet> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TSQueryDataSet struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.keys.size());
|
||||||
|
for (String _iter60 : struct.keys)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter60);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.values.size());
|
||||||
|
for (TSDynamicOneColumnData _iter61 : struct.values)
|
||||||
|
{
|
||||||
|
_iter61.write(oprot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TSQueryDataSet struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list62 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
struct.keys = new ArrayList<String>(_list62.size);
|
||||||
|
String _elem63;
|
||||||
|
for (int _i64 = 0; _i64 < _list62.size; ++_i64)
|
||||||
|
{
|
||||||
|
_elem63 = iprot.readString();
|
||||||
|
struct.keys.add(_elem63);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setKeysIsSet(true);
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list65 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
|
||||||
|
struct.values = new ArrayList<TSDynamicOneColumnData>(_list65.size);
|
||||||
|
TSDynamicOneColumnData _elem66;
|
||||||
|
for (int _i67 = 0; _i67 < _list65.size; ++_i67)
|
||||||
|
{
|
||||||
|
_elem66 = new TSDynamicOneColumnData();
|
||||||
|
_elem66.read(iprot);
|
||||||
|
struct.values.add(_elem66);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setValuesIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,396 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TS_SessionHandle implements org.apache.thrift.TBase<TS_SessionHandle, TS_SessionHandle._Fields>, java.io.Serializable, Cloneable, Comparable<TS_SessionHandle> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TS_SessionHandle");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField SESSION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionId", org.apache.thrift.protocol.TType.STRUCT, (short)1);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TS_SessionHandleStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TS_SessionHandleTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier sessionId; // required
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
SESSION_ID((short)1, "sessionId");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // SESSION_ID
|
||||||
|
return SESSION_ID;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.SESSION_ID, new org.apache.thrift.meta_data.FieldMetaData("sessionId", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSHandleIdentifier.class)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TS_SessionHandle.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle(
|
||||||
|
TSHandleIdentifier sessionId)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.sessionId = sessionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TS_SessionHandle(TS_SessionHandle other) {
|
||||||
|
if (other.isSetSessionId()) {
|
||||||
|
this.sessionId = new TSHandleIdentifier(other.sessionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle deepCopy() {
|
||||||
|
return new TS_SessionHandle(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.sessionId = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TSHandleIdentifier getSessionId() {
|
||||||
|
return this.sessionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_SessionHandle setSessionId(TSHandleIdentifier sessionId) {
|
||||||
|
this.sessionId = sessionId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSessionId() {
|
||||||
|
this.sessionId = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field sessionId is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSessionId() {
|
||||||
|
return this.sessionId != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionIdIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.sessionId = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_ID:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSessionId();
|
||||||
|
} else {
|
||||||
|
setSessionId((TSHandleIdentifier)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_ID:
|
||||||
|
return getSessionId();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case SESSION_ID:
|
||||||
|
return isSetSessionId();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TS_SessionHandle)
|
||||||
|
return this.equals((TS_SessionHandle)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TS_SessionHandle that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_sessionId = true && this.isSetSessionId();
|
||||||
|
boolean that_present_sessionId = true && that.isSetSessionId();
|
||||||
|
if (this_present_sessionId || that_present_sessionId) {
|
||||||
|
if (!(this_present_sessionId && that_present_sessionId))
|
||||||
|
return false;
|
||||||
|
if (!this.sessionId.equals(that.sessionId))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_sessionId = true && (isSetSessionId());
|
||||||
|
list.add(present_sessionId);
|
||||||
|
if (present_sessionId)
|
||||||
|
list.add(sessionId);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TS_SessionHandle other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetSessionId()).compareTo(other.isSetSessionId());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSessionId()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionId, other.sessionId);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TS_SessionHandle(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("sessionId:");
|
||||||
|
if (this.sessionId == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.sessionId);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (sessionId == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'sessionId' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
if (sessionId != null) {
|
||||||
|
sessionId.validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_SessionHandleStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TS_SessionHandleStandardScheme getScheme() {
|
||||||
|
return new TS_SessionHandleStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_SessionHandleStandardScheme extends StandardScheme<TS_SessionHandle> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TS_SessionHandle struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // SESSION_ID
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
|
||||||
|
struct.sessionId = new TSHandleIdentifier();
|
||||||
|
struct.sessionId.read(iprot);
|
||||||
|
struct.setSessionIdIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TS_SessionHandle struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.sessionId != null) {
|
||||||
|
oprot.writeFieldBegin(SESSION_ID_FIELD_DESC);
|
||||||
|
struct.sessionId.write(oprot);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_SessionHandleTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TS_SessionHandleTupleScheme getScheme() {
|
||||||
|
return new TS_SessionHandleTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_SessionHandleTupleScheme extends TupleScheme<TS_SessionHandle> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TS_SessionHandle struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionId.write(oprot);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TS_SessionHandle struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.sessionId = new TSHandleIdentifier();
|
||||||
|
struct.sessionId.read(iprot);
|
||||||
|
struct.setSessionIdIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,885 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.IScheme;
|
||||||
|
import org.apache.thrift.scheme.SchemeFactory;
|
||||||
|
import org.apache.thrift.scheme.StandardScheme;
|
||||||
|
|
||||||
|
import org.apache.thrift.scheme.TupleScheme;
|
||||||
|
import org.apache.thrift.protocol.TTupleProtocol;
|
||||||
|
import org.apache.thrift.protocol.TProtocolException;
|
||||||
|
import org.apache.thrift.EncodingUtils;
|
||||||
|
import org.apache.thrift.TException;
|
||||||
|
import org.apache.thrift.async.AsyncMethodCallback;
|
||||||
|
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.BitSet;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||||
|
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-5-10")
|
||||||
|
public class TS_Status implements org.apache.thrift.TBase<TS_Status, TS_Status._Fields>, java.io.Serializable, Cloneable, Comparable<TS_Status> {
|
||||||
|
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TS_Status");
|
||||||
|
|
||||||
|
private static final org.apache.thrift.protocol.TField STATUS_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("statusCode", org.apache.thrift.protocol.TType.I32, (short)1);
|
||||||
|
private static final org.apache.thrift.protocol.TField INFO_MESSAGES_FIELD_DESC = new org.apache.thrift.protocol.TField("infoMessages", org.apache.thrift.protocol.TType.LIST, (short)2);
|
||||||
|
private static final org.apache.thrift.protocol.TField SQL_STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("sqlState", org.apache.thrift.protocol.TType.STRING, (short)3);
|
||||||
|
private static final org.apache.thrift.protocol.TField ERROR_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("errorCode", org.apache.thrift.protocol.TType.I32, (short)4);
|
||||||
|
private static final org.apache.thrift.protocol.TField ERROR_MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("errorMessage", org.apache.thrift.protocol.TType.STRING, (short)5);
|
||||||
|
|
||||||
|
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||||
|
static {
|
||||||
|
schemes.put(StandardScheme.class, new TS_StatusStandardSchemeFactory());
|
||||||
|
schemes.put(TupleScheme.class, new TS_StatusTupleSchemeFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TS_StatusCode
|
||||||
|
*/
|
||||||
|
public TS_StatusCode statusCode; // required
|
||||||
|
public List<String> infoMessages; // optional
|
||||||
|
public String sqlState; // optional
|
||||||
|
public int errorCode; // optional
|
||||||
|
public String errorMessage; // optional
|
||||||
|
|
||||||
|
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||||
|
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TS_StatusCode
|
||||||
|
*/
|
||||||
|
STATUS_CODE((short)1, "statusCode"),
|
||||||
|
INFO_MESSAGES((short)2, "infoMessages"),
|
||||||
|
SQL_STATE((short)3, "sqlState"),
|
||||||
|
ERROR_CODE((short)4, "errorCode"),
|
||||||
|
ERROR_MESSAGE((short)5, "errorMessage");
|
||||||
|
|
||||||
|
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||||
|
byName.put(field.getFieldName(), field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftId(int fieldId) {
|
||||||
|
switch(fieldId) {
|
||||||
|
case 1: // STATUS_CODE
|
||||||
|
return STATUS_CODE;
|
||||||
|
case 2: // INFO_MESSAGES
|
||||||
|
return INFO_MESSAGES;
|
||||||
|
case 3: // SQL_STATE
|
||||||
|
return SQL_STATE;
|
||||||
|
case 4: // ERROR_CODE
|
||||||
|
return ERROR_CODE;
|
||||||
|
case 5: // ERROR_MESSAGE
|
||||||
|
return ERROR_MESSAGE;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||||
|
* if it is not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||||
|
_Fields fields = findByThriftId(fieldId);
|
||||||
|
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the _Fields constant that matches name, or null if its not found.
|
||||||
|
*/
|
||||||
|
public static _Fields findByName(String name) {
|
||||||
|
return byName.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final short _thriftId;
|
||||||
|
private final String _fieldName;
|
||||||
|
|
||||||
|
_Fields(short thriftId, String fieldName) {
|
||||||
|
_thriftId = thriftId;
|
||||||
|
_fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getThriftFieldId() {
|
||||||
|
return _thriftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFieldName() {
|
||||||
|
return _fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// isset id assignments
|
||||||
|
private static final int __ERRORCODE_ISSET_ID = 0;
|
||||||
|
private byte __isset_bitfield = 0;
|
||||||
|
private static final _Fields optionals[] = {_Fields.INFO_MESSAGES,_Fields.SQL_STATE,_Fields.ERROR_CODE,_Fields.ERROR_MESSAGE};
|
||||||
|
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||||
|
static {
|
||||||
|
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||||
|
tmpMap.put(_Fields.STATUS_CODE, new org.apache.thrift.meta_data.FieldMetaData("statusCode", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||||
|
new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TS_StatusCode.class)));
|
||||||
|
tmpMap.put(_Fields.INFO_MESSAGES, new org.apache.thrift.meta_data.FieldMetaData("infoMessages", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||||
|
tmpMap.put(_Fields.SQL_STATE, new org.apache.thrift.meta_data.FieldMetaData("sqlState", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
tmpMap.put(_Fields.ERROR_CODE, new org.apache.thrift.meta_data.FieldMetaData("errorCode", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
|
||||||
|
tmpMap.put(_Fields.ERROR_MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("errorMessage", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||||
|
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||||
|
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||||
|
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TS_Status.class, metaDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status(
|
||||||
|
TS_StatusCode statusCode)
|
||||||
|
{
|
||||||
|
this();
|
||||||
|
this.statusCode = statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a deep copy on <i>other</i>.
|
||||||
|
*/
|
||||||
|
public TS_Status(TS_Status other) {
|
||||||
|
__isset_bitfield = other.__isset_bitfield;
|
||||||
|
if (other.isSetStatusCode()) {
|
||||||
|
this.statusCode = other.statusCode;
|
||||||
|
}
|
||||||
|
if (other.isSetInfoMessages()) {
|
||||||
|
List<String> __this__infoMessages = new ArrayList<String>(other.infoMessages);
|
||||||
|
this.infoMessages = __this__infoMessages;
|
||||||
|
}
|
||||||
|
if (other.isSetSqlState()) {
|
||||||
|
this.sqlState = other.sqlState;
|
||||||
|
}
|
||||||
|
this.errorCode = other.errorCode;
|
||||||
|
if (other.isSetErrorMessage()) {
|
||||||
|
this.errorMessage = other.errorMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status deepCopy() {
|
||||||
|
return new TS_Status(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
this.statusCode = null;
|
||||||
|
this.infoMessages = null;
|
||||||
|
this.sqlState = null;
|
||||||
|
setErrorCodeIsSet(false);
|
||||||
|
this.errorCode = 0;
|
||||||
|
this.errorMessage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TS_StatusCode
|
||||||
|
*/
|
||||||
|
public TS_StatusCode getStatusCode() {
|
||||||
|
return this.statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @see TS_StatusCode
|
||||||
|
*/
|
||||||
|
public TS_Status setStatusCode(TS_StatusCode statusCode) {
|
||||||
|
this.statusCode = statusCode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetStatusCode() {
|
||||||
|
this.statusCode = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field statusCode is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetStatusCode() {
|
||||||
|
return this.statusCode != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusCodeIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.statusCode = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getInfoMessagesSize() {
|
||||||
|
return (this.infoMessages == null) ? 0 : this.infoMessages.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public java.util.Iterator<String> getInfoMessagesIterator() {
|
||||||
|
return (this.infoMessages == null) ? null : this.infoMessages.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addToInfoMessages(String elem) {
|
||||||
|
if (this.infoMessages == null) {
|
||||||
|
this.infoMessages = new ArrayList<String>();
|
||||||
|
}
|
||||||
|
this.infoMessages.add(elem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getInfoMessages() {
|
||||||
|
return this.infoMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status setInfoMessages(List<String> infoMessages) {
|
||||||
|
this.infoMessages = infoMessages;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetInfoMessages() {
|
||||||
|
this.infoMessages = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field infoMessages is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetInfoMessages() {
|
||||||
|
return this.infoMessages != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInfoMessagesIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.infoMessages = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSqlState() {
|
||||||
|
return this.sqlState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status setSqlState(String sqlState) {
|
||||||
|
this.sqlState = sqlState;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetSqlState() {
|
||||||
|
this.sqlState = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field sqlState is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetSqlState() {
|
||||||
|
return this.sqlState != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSqlStateIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.sqlState = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getErrorCode() {
|
||||||
|
return this.errorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status setErrorCode(int errorCode) {
|
||||||
|
this.errorCode = errorCode;
|
||||||
|
setErrorCodeIsSet(true);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetErrorCode() {
|
||||||
|
__isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ERRORCODE_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field errorCode is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetErrorCode() {
|
||||||
|
return EncodingUtils.testBit(__isset_bitfield, __ERRORCODE_ISSET_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorCodeIsSet(boolean value) {
|
||||||
|
__isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ERRORCODE_ISSET_ID, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return this.errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TS_Status setErrorMessage(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unsetErrorMessage() {
|
||||||
|
this.errorMessage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field errorMessage is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSetErrorMessage() {
|
||||||
|
return this.errorMessage != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorMessageIsSet(boolean value) {
|
||||||
|
if (!value) {
|
||||||
|
this.errorMessage = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFieldValue(_Fields field, Object value) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS_CODE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetStatusCode();
|
||||||
|
} else {
|
||||||
|
setStatusCode((TS_StatusCode)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case INFO_MESSAGES:
|
||||||
|
if (value == null) {
|
||||||
|
unsetInfoMessages();
|
||||||
|
} else {
|
||||||
|
setInfoMessages((List<String>)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SQL_STATE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetSqlState();
|
||||||
|
} else {
|
||||||
|
setSqlState((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ERROR_CODE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetErrorCode();
|
||||||
|
} else {
|
||||||
|
setErrorCode((Integer)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ERROR_MESSAGE:
|
||||||
|
if (value == null) {
|
||||||
|
unsetErrorMessage();
|
||||||
|
} else {
|
||||||
|
setErrorMessage((String)value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getFieldValue(_Fields field) {
|
||||||
|
switch (field) {
|
||||||
|
case STATUS_CODE:
|
||||||
|
return getStatusCode();
|
||||||
|
|
||||||
|
case INFO_MESSAGES:
|
||||||
|
return getInfoMessages();
|
||||||
|
|
||||||
|
case SQL_STATE:
|
||||||
|
return getSqlState();
|
||||||
|
|
||||||
|
case ERROR_CODE:
|
||||||
|
return Integer.valueOf(getErrorCode());
|
||||||
|
|
||||||
|
case ERROR_MESSAGE:
|
||||||
|
return getErrorMessage();
|
||||||
|
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||||
|
public boolean isSet(_Fields field) {
|
||||||
|
if (field == null) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field) {
|
||||||
|
case STATUS_CODE:
|
||||||
|
return isSetStatusCode();
|
||||||
|
case INFO_MESSAGES:
|
||||||
|
return isSetInfoMessages();
|
||||||
|
case SQL_STATE:
|
||||||
|
return isSetSqlState();
|
||||||
|
case ERROR_CODE:
|
||||||
|
return isSetErrorCode();
|
||||||
|
case ERROR_MESSAGE:
|
||||||
|
return isSetErrorMessage();
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
if (that instanceof TS_Status)
|
||||||
|
return this.equals((TS_Status)that);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(TS_Status that) {
|
||||||
|
if (that == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
boolean this_present_statusCode = true && this.isSetStatusCode();
|
||||||
|
boolean that_present_statusCode = true && that.isSetStatusCode();
|
||||||
|
if (this_present_statusCode || that_present_statusCode) {
|
||||||
|
if (!(this_present_statusCode && that_present_statusCode))
|
||||||
|
return false;
|
||||||
|
if (!this.statusCode.equals(that.statusCode))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_infoMessages = true && this.isSetInfoMessages();
|
||||||
|
boolean that_present_infoMessages = true && that.isSetInfoMessages();
|
||||||
|
if (this_present_infoMessages || that_present_infoMessages) {
|
||||||
|
if (!(this_present_infoMessages && that_present_infoMessages))
|
||||||
|
return false;
|
||||||
|
if (!this.infoMessages.equals(that.infoMessages))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_sqlState = true && this.isSetSqlState();
|
||||||
|
boolean that_present_sqlState = true && that.isSetSqlState();
|
||||||
|
if (this_present_sqlState || that_present_sqlState) {
|
||||||
|
if (!(this_present_sqlState && that_present_sqlState))
|
||||||
|
return false;
|
||||||
|
if (!this.sqlState.equals(that.sqlState))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_errorCode = true && this.isSetErrorCode();
|
||||||
|
boolean that_present_errorCode = true && that.isSetErrorCode();
|
||||||
|
if (this_present_errorCode || that_present_errorCode) {
|
||||||
|
if (!(this_present_errorCode && that_present_errorCode))
|
||||||
|
return false;
|
||||||
|
if (this.errorCode != that.errorCode)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean this_present_errorMessage = true && this.isSetErrorMessage();
|
||||||
|
boolean that_present_errorMessage = true && that.isSetErrorMessage();
|
||||||
|
if (this_present_errorMessage || that_present_errorMessage) {
|
||||||
|
if (!(this_present_errorMessage && that_present_errorMessage))
|
||||||
|
return false;
|
||||||
|
if (!this.errorMessage.equals(that.errorMessage))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
List<Object> list = new ArrayList<Object>();
|
||||||
|
|
||||||
|
boolean present_statusCode = true && (isSetStatusCode());
|
||||||
|
list.add(present_statusCode);
|
||||||
|
if (present_statusCode)
|
||||||
|
list.add(statusCode.getValue());
|
||||||
|
|
||||||
|
boolean present_infoMessages = true && (isSetInfoMessages());
|
||||||
|
list.add(present_infoMessages);
|
||||||
|
if (present_infoMessages)
|
||||||
|
list.add(infoMessages);
|
||||||
|
|
||||||
|
boolean present_sqlState = true && (isSetSqlState());
|
||||||
|
list.add(present_sqlState);
|
||||||
|
if (present_sqlState)
|
||||||
|
list.add(sqlState);
|
||||||
|
|
||||||
|
boolean present_errorCode = true && (isSetErrorCode());
|
||||||
|
list.add(present_errorCode);
|
||||||
|
if (present_errorCode)
|
||||||
|
list.add(errorCode);
|
||||||
|
|
||||||
|
boolean present_errorMessage = true && (isSetErrorMessage());
|
||||||
|
list.add(present_errorMessage);
|
||||||
|
if (present_errorMessage)
|
||||||
|
list.add(errorMessage);
|
||||||
|
|
||||||
|
return list.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TS_Status other) {
|
||||||
|
if (!getClass().equals(other.getClass())) {
|
||||||
|
return getClass().getName().compareTo(other.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastComparison = 0;
|
||||||
|
|
||||||
|
lastComparison = Boolean.valueOf(isSetStatusCode()).compareTo(other.isSetStatusCode());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetStatusCode()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statusCode, other.statusCode);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetInfoMessages()).compareTo(other.isSetInfoMessages());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetInfoMessages()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.infoMessages, other.infoMessages);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetSqlState()).compareTo(other.isSetSqlState());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetSqlState()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sqlState, other.sqlState);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetErrorCode()).compareTo(other.isSetErrorCode());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetErrorCode()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorCode, other.errorCode);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastComparison = Boolean.valueOf(isSetErrorMessage()).compareTo(other.isSetErrorMessage());
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
if (isSetErrorMessage()) {
|
||||||
|
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorMessage, other.errorMessage);
|
||||||
|
if (lastComparison != 0) {
|
||||||
|
return lastComparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public _Fields fieldForId(int fieldId) {
|
||||||
|
return _Fields.findByThriftId(fieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||||
|
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("TS_Status(");
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
sb.append("statusCode:");
|
||||||
|
if (this.statusCode == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.statusCode);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
if (isSetInfoMessages()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("infoMessages:");
|
||||||
|
if (this.infoMessages == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.infoMessages);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetSqlState()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("sqlState:");
|
||||||
|
if (this.sqlState == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.sqlState);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetErrorCode()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("errorCode:");
|
||||||
|
sb.append(this.errorCode);
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
if (isSetErrorMessage()) {
|
||||||
|
if (!first) sb.append(", ");
|
||||||
|
sb.append("errorMessage:");
|
||||||
|
if (this.errorMessage == null) {
|
||||||
|
sb.append("null");
|
||||||
|
} else {
|
||||||
|
sb.append(this.errorMessage);
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validate() throws org.apache.thrift.TException {
|
||||||
|
// check for required fields
|
||||||
|
if (statusCode == null) {
|
||||||
|
throw new org.apache.thrift.protocol.TProtocolException("Required field 'statusCode' was not present! Struct: " + toString());
|
||||||
|
}
|
||||||
|
// check for sub-struct validity
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||||
|
try {
|
||||||
|
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||||
|
try {
|
||||||
|
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
|
||||||
|
__isset_bitfield = 0;
|
||||||
|
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||||
|
} catch (org.apache.thrift.TException te) {
|
||||||
|
throw new java.io.IOException(te);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_StatusStandardSchemeFactory implements SchemeFactory {
|
||||||
|
public TS_StatusStandardScheme getScheme() {
|
||||||
|
return new TS_StatusStandardScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_StatusStandardScheme extends StandardScheme<TS_Status> {
|
||||||
|
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol iprot, TS_Status struct) throws org.apache.thrift.TException {
|
||||||
|
org.apache.thrift.protocol.TField schemeField;
|
||||||
|
iprot.readStructBegin();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
schemeField = iprot.readFieldBegin();
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (schemeField.id) {
|
||||||
|
case 1: // STATUS_CODE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
|
||||||
|
struct.statusCode = cn.edu.thu.tsfiledb.service.rpc.thrift.TS_StatusCode.findByValue(iprot.readI32());
|
||||||
|
struct.setStatusCodeIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // INFO_MESSAGES
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list20 = iprot.readListBegin();
|
||||||
|
struct.infoMessages = new ArrayList<String>(_list20.size);
|
||||||
|
String _elem21;
|
||||||
|
for (int _i22 = 0; _i22 < _list20.size; ++_i22)
|
||||||
|
{
|
||||||
|
_elem21 = iprot.readString();
|
||||||
|
struct.infoMessages.add(_elem21);
|
||||||
|
}
|
||||||
|
iprot.readListEnd();
|
||||||
|
}
|
||||||
|
struct.setInfoMessagesIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // SQL_STATE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.sqlState = iprot.readString();
|
||||||
|
struct.setSqlStateIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: // ERROR_CODE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
|
||||||
|
struct.errorCode = iprot.readI32();
|
||||||
|
struct.setErrorCodeIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5: // ERROR_MESSAGE
|
||||||
|
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||||
|
struct.errorMessage = iprot.readString();
|
||||||
|
struct.setErrorMessageIsSet(true);
|
||||||
|
} else {
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||||
|
}
|
||||||
|
iprot.readFieldEnd();
|
||||||
|
}
|
||||||
|
iprot.readStructEnd();
|
||||||
|
|
||||||
|
// check for required fields of primitive type, which can't be checked in the validate method
|
||||||
|
struct.validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol oprot, TS_Status struct) throws org.apache.thrift.TException {
|
||||||
|
struct.validate();
|
||||||
|
|
||||||
|
oprot.writeStructBegin(STRUCT_DESC);
|
||||||
|
if (struct.statusCode != null) {
|
||||||
|
oprot.writeFieldBegin(STATUS_CODE_FIELD_DESC);
|
||||||
|
oprot.writeI32(struct.statusCode.getValue());
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.infoMessages != null) {
|
||||||
|
if (struct.isSetInfoMessages()) {
|
||||||
|
oprot.writeFieldBegin(INFO_MESSAGES_FIELD_DESC);
|
||||||
|
{
|
||||||
|
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.infoMessages.size()));
|
||||||
|
for (String _iter23 : struct.infoMessages)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter23);
|
||||||
|
}
|
||||||
|
oprot.writeListEnd();
|
||||||
|
}
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.sqlState != null) {
|
||||||
|
if (struct.isSetSqlState()) {
|
||||||
|
oprot.writeFieldBegin(SQL_STATE_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.sqlState);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.isSetErrorCode()) {
|
||||||
|
oprot.writeFieldBegin(ERROR_CODE_FIELD_DESC);
|
||||||
|
oprot.writeI32(struct.errorCode);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
if (struct.errorMessage != null) {
|
||||||
|
if (struct.isSetErrorMessage()) {
|
||||||
|
oprot.writeFieldBegin(ERROR_MESSAGE_FIELD_DESC);
|
||||||
|
oprot.writeString(struct.errorMessage);
|
||||||
|
oprot.writeFieldEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oprot.writeFieldStop();
|
||||||
|
oprot.writeStructEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_StatusTupleSchemeFactory implements SchemeFactory {
|
||||||
|
public TS_StatusTupleScheme getScheme() {
|
||||||
|
return new TS_StatusTupleScheme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TS_StatusTupleScheme extends TupleScheme<TS_Status> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(org.apache.thrift.protocol.TProtocol prot, TS_Status struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||||
|
oprot.writeI32(struct.statusCode.getValue());
|
||||||
|
BitSet optionals = new BitSet();
|
||||||
|
if (struct.isSetInfoMessages()) {
|
||||||
|
optionals.set(0);
|
||||||
|
}
|
||||||
|
if (struct.isSetSqlState()) {
|
||||||
|
optionals.set(1);
|
||||||
|
}
|
||||||
|
if (struct.isSetErrorCode()) {
|
||||||
|
optionals.set(2);
|
||||||
|
}
|
||||||
|
if (struct.isSetErrorMessage()) {
|
||||||
|
optionals.set(3);
|
||||||
|
}
|
||||||
|
oprot.writeBitSet(optionals, 4);
|
||||||
|
if (struct.isSetInfoMessages()) {
|
||||||
|
{
|
||||||
|
oprot.writeI32(struct.infoMessages.size());
|
||||||
|
for (String _iter24 : struct.infoMessages)
|
||||||
|
{
|
||||||
|
oprot.writeString(_iter24);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (struct.isSetSqlState()) {
|
||||||
|
oprot.writeString(struct.sqlState);
|
||||||
|
}
|
||||||
|
if (struct.isSetErrorCode()) {
|
||||||
|
oprot.writeI32(struct.errorCode);
|
||||||
|
}
|
||||||
|
if (struct.isSetErrorMessage()) {
|
||||||
|
oprot.writeString(struct.errorMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(org.apache.thrift.protocol.TProtocol prot, TS_Status struct) throws org.apache.thrift.TException {
|
||||||
|
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||||
|
struct.statusCode = cn.edu.thu.tsfiledb.service.rpc.thrift.TS_StatusCode.findByValue(iprot.readI32());
|
||||||
|
struct.setStatusCodeIsSet(true);
|
||||||
|
BitSet incoming = iprot.readBitSet(4);
|
||||||
|
if (incoming.get(0)) {
|
||||||
|
{
|
||||||
|
org.apache.thrift.protocol.TList _list25 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
|
||||||
|
struct.infoMessages = new ArrayList<String>(_list25.size);
|
||||||
|
String _elem26;
|
||||||
|
for (int _i27 = 0; _i27 < _list25.size; ++_i27)
|
||||||
|
{
|
||||||
|
_elem26 = iprot.readString();
|
||||||
|
struct.infoMessages.add(_elem26);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct.setInfoMessagesIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(1)) {
|
||||||
|
struct.sqlState = iprot.readString();
|
||||||
|
struct.setSqlStateIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(2)) {
|
||||||
|
struct.errorCode = iprot.readI32();
|
||||||
|
struct.setErrorCodeIsSet(true);
|
||||||
|
}
|
||||||
|
if (incoming.get(3)) {
|
||||||
|
struct.errorMessage = iprot.readString();
|
||||||
|
struct.setErrorMessageIsSet(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.2)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
package cn.edu.thu.tsfiledb.service.rpc.thrift;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import org.apache.thrift.TEnum;
|
||||||
|
|
||||||
|
public enum TS_StatusCode implements org.apache.thrift.TEnum {
|
||||||
|
SUCCESS_STATUS(0),
|
||||||
|
SUCCESS_WITH_INFO_STATUS(1),
|
||||||
|
STILL_EXECUTING_STATUS(2),
|
||||||
|
ERROR_STATUS(3),
|
||||||
|
INVALID_HANDLE_STATUS(4);
|
||||||
|
|
||||||
|
private final int value;
|
||||||
|
|
||||||
|
private TS_StatusCode(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the integer value of this enum value, as defined in the Thrift IDL.
|
||||||
|
*/
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find a the enum type by its integer value, as defined in the Thrift IDL.
|
||||||
|
* @return null if the value is not found.
|
||||||
|
*/
|
||||||
|
public static TS_StatusCode findByValue(int value) {
|
||||||
|
switch (value) {
|
||||||
|
case 0:
|
||||||
|
return SUCCESS_STATUS;
|
||||||
|
case 1:
|
||||||
|
return SUCCESS_WITH_INFO_STATUS;
|
||||||
|
case 2:
|
||||||
|
return STILL_EXECUTING_STATUS;
|
||||||
|
case 3:
|
||||||
|
return ERROR_STATUS;
|
||||||
|
case 4:
|
||||||
|
return INVALID_HANDLE_STATUS;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,326 @@
|
||||||
|
namespace java cn.edu.thu.tsfiledb.service.rpc.thrift
|
||||||
|
|
||||||
|
service TSIService {
|
||||||
|
TSOpenSessionResp OpenSession(1:TSOpenSessionReq req);
|
||||||
|
|
||||||
|
TSCloseSessionResp CloseSession(1:TSCloseSessionReq req);
|
||||||
|
|
||||||
|
TSExecuteStatementResp ExecuteStatement(1:TSExecuteStatementReq req);
|
||||||
|
|
||||||
|
TSExecuteBatchStatementResp ExecuteBatchStatement(1:TSExecuteBatchStatementReq req);
|
||||||
|
|
||||||
|
TSExecuteStatementResp ExecuteQueryStatement(1:TSExecuteStatementReq req);
|
||||||
|
|
||||||
|
TSExecuteStatementResp ExecuteUpdateStatement(1:TSExecuteStatementReq req);
|
||||||
|
|
||||||
|
TSFetchResultsResp FetchResults(1:TSFetchResultsReq req)
|
||||||
|
|
||||||
|
TSFetchMetadataResp FetchMetadata(1:TSFetchMetadataReq req)
|
||||||
|
|
||||||
|
//TSGetOperationStatusResp GetOperationStatus(1:TSGetOperationStatusReq req);
|
||||||
|
|
||||||
|
TSCancelOperationResp CancelOperation(1:TSCancelOperationReq req);
|
||||||
|
|
||||||
|
TSCloseOperationResp CloseOperation(1:TSCloseOperationReq req);
|
||||||
|
|
||||||
|
|
||||||
|
//TSGetResultSetMetadataResp GetResultSetMetadata(1:TSGetResultSetMetadataReq req);
|
||||||
|
|
||||||
|
//TSFetchResultsResp FetchResults(1:TSFetchResultsReq req);
|
||||||
|
}
|
||||||
|
|
||||||
|
enum TSProtocolVersion {
|
||||||
|
TSFILE_SERVICE_PROTOCOL_V1,
|
||||||
|
}
|
||||||
|
|
||||||
|
// OpenSession()
|
||||||
|
//
|
||||||
|
// Open a session (connection) on the server against
|
||||||
|
// which operations may be executed.
|
||||||
|
struct TSOpenSessionReq {
|
||||||
|
1: required TSProtocolVersion client_protocol = TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1
|
||||||
|
2: optional string username
|
||||||
|
3: optional string password
|
||||||
|
4: optional map<string, string> configuration
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSOpenSessionResp {
|
||||||
|
1: required TS_Status status
|
||||||
|
|
||||||
|
// The protocol version that the server is using.
|
||||||
|
2: required TSProtocolVersion serverProtocolVersion = TSProtocolVersion.TSFILE_SERVICE_PROTOCOL_V1
|
||||||
|
|
||||||
|
// Session Handle
|
||||||
|
3: optional TS_SessionHandle sessionHandle
|
||||||
|
|
||||||
|
// The configuration settings for this session.
|
||||||
|
4: optional map<string, string> configuration
|
||||||
|
}
|
||||||
|
|
||||||
|
// The return status code contained in each response.
|
||||||
|
enum TS_StatusCode {
|
||||||
|
SUCCESS_STATUS,
|
||||||
|
SUCCESS_WITH_INFO_STATUS,
|
||||||
|
STILL_EXECUTING_STATUS,
|
||||||
|
ERROR_STATUS,
|
||||||
|
INVALID_HANDLE_STATUS
|
||||||
|
}
|
||||||
|
|
||||||
|
// The return status of a remote request
|
||||||
|
struct TS_Status {
|
||||||
|
1: required TS_StatusCode statusCode
|
||||||
|
|
||||||
|
// If status is SUCCESS_WITH_INFO, info_msgs may be populated with
|
||||||
|
// additional diagnostic information.
|
||||||
|
2: optional list<string> infoMessages
|
||||||
|
|
||||||
|
// If status is ERROR, then the following fields may be set
|
||||||
|
3: optional string sqlState // as defined in the ISO/IEF CLI specification
|
||||||
|
4: optional i32 errorCode // internal error code
|
||||||
|
5: optional string errorMessage
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// CloseSession()
|
||||||
|
//
|
||||||
|
// Closes the specified session and frees any resources
|
||||||
|
// currently allocated to that session. Any open
|
||||||
|
// operations in that session will be canceled.
|
||||||
|
struct TSCloseSessionReq {
|
||||||
|
1: required TS_SessionHandle sessionHandle
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSCloseSessionResp {
|
||||||
|
1: required TS_Status status
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSHandleIdentifier {
|
||||||
|
// 16 byte globally unique identifier
|
||||||
|
// This is the public ID of the handle and
|
||||||
|
// can be used for reporting.
|
||||||
|
1: required binary guid,
|
||||||
|
|
||||||
|
// 16 byte secret generated by the server
|
||||||
|
// and used to verify that the handle is not
|
||||||
|
// being hijacked by another user.
|
||||||
|
2: required binary secret,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Client-side handle to persistent
|
||||||
|
// session information on the server-side.
|
||||||
|
struct TS_SessionHandle {
|
||||||
|
1: required TSHandleIdentifier sessionId
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct TSGetOperationStatusReq {
|
||||||
|
// Session to run this request against
|
||||||
|
1: required TSOperationHandle operationHandle
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSGetOperationStatusResp {
|
||||||
|
1: required TS_Status status
|
||||||
|
//2: optional TSOperationState operationState
|
||||||
|
|
||||||
|
// If operationState is ERROR_STATE, then the following fields may be set
|
||||||
|
// sqlState as defined in the ISO/IEF CLI specification
|
||||||
|
//3: optional string sqlState
|
||||||
|
|
||||||
|
// Internal error code
|
||||||
|
//4: optional i32 errorCode
|
||||||
|
|
||||||
|
// Error message
|
||||||
|
//5: optional string errorMessage
|
||||||
|
|
||||||
|
// List of statuses of sub tasks
|
||||||
|
//6: optional string taskStatus
|
||||||
|
|
||||||
|
// When was the operation started
|
||||||
|
//7: optional i64 operationStarted
|
||||||
|
|
||||||
|
// When was the operation completed
|
||||||
|
//8: optional i64 operationCompleted
|
||||||
|
|
||||||
|
// If the operation has the result
|
||||||
|
//9: optional bool hasResultSet
|
||||||
|
}
|
||||||
|
|
||||||
|
// CancelOperation()
|
||||||
|
//
|
||||||
|
// Cancels processing on the specified operation handle and
|
||||||
|
// frees any resources which were allocated.
|
||||||
|
struct TSCancelOperationReq {
|
||||||
|
// Operation to cancel
|
||||||
|
1: required TSOperationHandle operationHandle
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSCancelOperationResp {
|
||||||
|
1: required TS_Status status
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// CloseOperation()
|
||||||
|
//
|
||||||
|
// Given an operation in the FINISHED, CANCELED,
|
||||||
|
// or ERROR states, CloseOperation() will free
|
||||||
|
// all of the resources which were allocated on
|
||||||
|
// the server to service the operation.
|
||||||
|
struct TSCloseOperationReq {
|
||||||
|
1: required TSOperationHandle operationHandle
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSCloseOperationResp {
|
||||||
|
1: required TS_Status status
|
||||||
|
}
|
||||||
|
|
||||||
|
// Client-side reference to a task running
|
||||||
|
// asynchronously on the server.
|
||||||
|
struct TSOperationHandle {
|
||||||
|
1: required TSHandleIdentifier operationId
|
||||||
|
|
||||||
|
// If hasResultSet = TRUE, then this operation
|
||||||
|
// generates a result set that can be fetched.
|
||||||
|
// Note that the result set may be empty.
|
||||||
|
//
|
||||||
|
// If hasResultSet = FALSE, then this operation
|
||||||
|
// does not generate a result set, and calling
|
||||||
|
// GetResultSetMetadata or FetchResults against
|
||||||
|
// this OperationHandle will generate an error.
|
||||||
|
2: required bool hasResultSet
|
||||||
|
|
||||||
|
//3: required TSOperationType operationType
|
||||||
|
|
||||||
|
// For operations that don't generate result sets,
|
||||||
|
// modifiedRowCount is either:
|
||||||
|
//
|
||||||
|
// 1) The number of rows that were modified by
|
||||||
|
// the DML operation (e.g. number of rows inserted,
|
||||||
|
// number of rows deleted, etc).
|
||||||
|
//
|
||||||
|
// 2) 0 for operations that don't modify or add rows.
|
||||||
|
//
|
||||||
|
// 3) < 0 if the operation is capable of modifiying rows,
|
||||||
|
// but Hive is unable to determine how many rows were
|
||||||
|
// modified. For example, Hive's LOAD DATA command
|
||||||
|
// doesn't generate row count information because
|
||||||
|
// Hive doesn't inspect the data as it is loaded.
|
||||||
|
//
|
||||||
|
// modifiedRowCount is unset if the operation generates
|
||||||
|
// a result set.
|
||||||
|
//4: optional double modifiedRowCount
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExecuteStatement()
|
||||||
|
//
|
||||||
|
// Execute a statement.
|
||||||
|
// The returned OperationHandle can be used to check on the
|
||||||
|
// status of the statement, and to fetch results once the
|
||||||
|
// statement has finished executing.
|
||||||
|
struct TSExecuteStatementReq {
|
||||||
|
// The session to execute the statement against
|
||||||
|
1: required TS_SessionHandle sessionHandle
|
||||||
|
|
||||||
|
// The statement to be executed (DML, DDL, SET, etc)
|
||||||
|
2: required string statement
|
||||||
|
|
||||||
|
// Configuration properties that are overlayed on top of the
|
||||||
|
// the existing session configuration before this statement
|
||||||
|
// is executed. These properties apply to this statement
|
||||||
|
// only and will not affect the subsequent state of the Session.
|
||||||
|
//3: optional map<string, string> confOverlay
|
||||||
|
|
||||||
|
// Execute asynchronously when runAsync is true
|
||||||
|
//4: optional bool runAsync = false
|
||||||
|
|
||||||
|
// The number of seconds after which the query will timeout on the server
|
||||||
|
//5: optional i64 queryTimeout = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSExecuteStatementResp {
|
||||||
|
1: required TS_Status status
|
||||||
|
2: optional TSOperationHandle operationHandle
|
||||||
|
3: optional list<string> columns
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSExecuteBatchStatementResp{
|
||||||
|
1: required TS_Status status
|
||||||
|
|
||||||
|
2: optional list<i32> result
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSExecuteBatchStatementReq{
|
||||||
|
// The session to execute the statement against
|
||||||
|
1: required TS_SessionHandle sessionHandle
|
||||||
|
|
||||||
|
// The statements to be executed (DML, DDL, SET, etc)
|
||||||
|
2: required list<string> statements
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSQueryDataSet{
|
||||||
|
1: required list<string> keys
|
||||||
|
2: required list<TSDynamicOneColumnData> values
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSDynamicOneColumnData{
|
||||||
|
1: required string deviceType
|
||||||
|
2: required string dataType
|
||||||
|
3: required i32 length
|
||||||
|
|
||||||
|
4: required list<i64> timeRet
|
||||||
|
|
||||||
|
5: optional list<bool> boolList
|
||||||
|
6: optional list<i32> i32List
|
||||||
|
7: optional list<i64> i64List
|
||||||
|
8: optional list<double> floatList
|
||||||
|
9: optional list<double> doubleList
|
||||||
|
10: optional list<byte> binaryList
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSFetchResultsReq{
|
||||||
|
1: required string statement
|
||||||
|
2: required i32 fetch_size
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSFetchResultsResp{
|
||||||
|
1: required TS_Status status
|
||||||
|
2: required bool hasResultSet
|
||||||
|
3: optional TSQueryDataSet queryDataSet
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// struct TSJDBCRecord {
|
||||||
|
// 1: required string deviceType
|
||||||
|
// 2: required string deviceId
|
||||||
|
// 3: required list<TSDataPoint> dataList
|
||||||
|
// 4: required TSTimeValue timeValue
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// struct TSTimeValue {
|
||||||
|
// 1: required i64 time
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// struct TSDataPoint{
|
||||||
|
// 1: required string type
|
||||||
|
// 2: required string sensorId
|
||||||
|
// 3: required string deviceId
|
||||||
|
// 4: required string valueStr
|
||||||
|
// 5: optional i32 groupId
|
||||||
|
// }
|
||||||
|
|
||||||
|
struct TSFetchMetadataResp{
|
||||||
|
1: required TS_Status status
|
||||||
|
2: optional map<string, list<TSColumnSchema>> seriesMap
|
||||||
|
3: optional map<string, list<string>> deltaObjectMap
|
||||||
|
4: optional string metadataInJson
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TSFetchMetadataReq{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct TSColumnSchema{
|
||||||
|
1: optional string name;
|
||||||
|
2: optional string dataType;
|
||||||
|
3: optional string encoding;
|
||||||
|
4: optional map<string, string> otherArgs;
|
||||||
|
}
|
|
@ -0,0 +1,236 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.AuthDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.RoleDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.UserDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Permission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.RolePermission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserPermission;
|
||||||
|
|
||||||
|
public class AuthTest {
|
||||||
|
|
||||||
|
private DBdao dbDao = null;
|
||||||
|
private Statement statement = null;
|
||||||
|
private AuthDao authDao = null;
|
||||||
|
// prepare the data
|
||||||
|
private User user1;
|
||||||
|
private User user2;
|
||||||
|
private Role role1;
|
||||||
|
private Role role2;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
|
||||||
|
dbDao = new DBdao();
|
||||||
|
authDao = new AuthDao();
|
||||||
|
dbDao.open();
|
||||||
|
statement = dbDao.getStatement();
|
||||||
|
|
||||||
|
// init data
|
||||||
|
user1 = new User("user1", "user1");
|
||||||
|
user2 = new User("user2", "user2");
|
||||||
|
|
||||||
|
role1 = new Role("role1");
|
||||||
|
role2 = new Role("role2");
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
dbDao.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUser() {
|
||||||
|
authDao.deleteUser(statement, user1.getUserName());
|
||||||
|
// add user
|
||||||
|
assertEquals(true, authDao.addUser(statement, user1));
|
||||||
|
// check the user inserted
|
||||||
|
UserDao userDao = new UserDao();
|
||||||
|
User user = userDao.getUser(statement, user1.getUserName());
|
||||||
|
assertEquals(user1.getUserName(), user.getUserName());
|
||||||
|
assertEquals(user1.getPassWord(), user.getPassWord());
|
||||||
|
// delete the user
|
||||||
|
assertEquals(true, authDao.deleteUser(statement, user1.getUserName()));
|
||||||
|
assertEquals(null, userDao.getUser(statement, user1.getUserName()));
|
||||||
|
|
||||||
|
authDao.addUser(statement, user1);
|
||||||
|
authDao.addUser(statement, user2);
|
||||||
|
// add the root user
|
||||||
|
assertEquals(3, authDao.getUsers(statement).size());
|
||||||
|
authDao.deleteUser(statement, user1.getUserName());
|
||||||
|
authDao.deleteUser(statement, user2.getUserName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRole() {
|
||||||
|
authDao.deleteRole(statement, role1.getRoleName());
|
||||||
|
// add role
|
||||||
|
assertEquals(true, authDao.addRole(statement, role1));
|
||||||
|
// check the role inserted
|
||||||
|
RoleDao roleDao = new RoleDao();
|
||||||
|
Role role = roleDao.getRole(statement, role1.getRoleName());
|
||||||
|
assertEquals(role1.getRoleName(), role.getRoleName());
|
||||||
|
// delete the role
|
||||||
|
assertEquals(true, authDao.deleteRole(statement, role1.getRoleName()));
|
||||||
|
assertEquals(null, roleDao.getRole(statement, role1.getRoleName()));
|
||||||
|
|
||||||
|
authDao.addRole(statement, role1);
|
||||||
|
authDao.addRole(statement, role2);
|
||||||
|
assertEquals(2, authDao.getRoles(statement).size());
|
||||||
|
authDao.deleteRole(statement, role1.getRoleName());
|
||||||
|
authDao.deleteRole(statement, role2.getRoleName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserRoleRel() {
|
||||||
|
// add user and role
|
||||||
|
authDao.addUser(statement, user1);
|
||||||
|
authDao.addUser(statement, user2);
|
||||||
|
authDao.addRole(statement, role1);
|
||||||
|
authDao.addRole(statement, role2);
|
||||||
|
|
||||||
|
// add relation
|
||||||
|
assertEquals(true, authDao.addUserRoleRel(statement, user1.getUserName(), role1.getRoleName()));
|
||||||
|
assertEquals(1, authDao.getAllUserRoleRel(statement).size());
|
||||||
|
assertEquals(true, authDao.addUserRoleRel(statement, user1.getUserName(), role2.getRoleName()));
|
||||||
|
List<Role> roles = authDao.getRolesByUser(statement, user1.getUserName());
|
||||||
|
assertEquals(2, roles.size());
|
||||||
|
for (Role role : roles) {
|
||||||
|
assertEquals(true, (role.getRoleName().equals(role1.getRoleName()))
|
||||||
|
|| (role.getRoleName().equals(role2.getRoleName())));
|
||||||
|
}
|
||||||
|
// delete the relation
|
||||||
|
authDao.deleteUserRoleRel(statement, user1.getUserName(), role1.getRoleName());
|
||||||
|
authDao.deleteUserRoleRel(statement, user1.getUserName(), role2.getRoleName());
|
||||||
|
assertEquals(0, authDao.getAllUserRoleRel(statement).size());
|
||||||
|
// delete user and role
|
||||||
|
authDao.deleteUser(statement, user1.getUserName());
|
||||||
|
authDao.deleteUser(statement, user2.getUserName());
|
||||||
|
authDao.deleteRole(statement, role1.getRoleName());
|
||||||
|
authDao.deleteRole(statement, role2.getRoleName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserPermission() {
|
||||||
|
int permissionId1 = Permission.CREATE;
|
||||||
|
int permissionId2 = Permission.DELETE;
|
||||||
|
int permissionId3 = Permission.INSERT;
|
||||||
|
String nodeName = "nodeName";
|
||||||
|
authDao.addUser(statement, user1);
|
||||||
|
|
||||||
|
// add permission
|
||||||
|
authDao.addUserPermission(statement, user1.getUserName(), nodeName, permissionId1);
|
||||||
|
authDao.addUserPermission(statement, user1.getUserName(), nodeName, permissionId2);
|
||||||
|
authDao.addUserPermission(statement, user1.getUserName(), nodeName, permissionId3);
|
||||||
|
assertEquals(false, authDao.addUserPermission(statement, user1.getUserName(), nodeName, permissionId1));
|
||||||
|
List<UserPermission> userPermissions = authDao.getUserPermission(statement, user1.getUserName(), nodeName);
|
||||||
|
assertEquals(3, userPermissions.size());
|
||||||
|
List<Integer> list = new ArrayList<>();
|
||||||
|
for (UserPermission userPermission : userPermissions) {
|
||||||
|
list.add(userPermission.getPermissionId());
|
||||||
|
}
|
||||||
|
List<Integer> checkList = new ArrayList<>();
|
||||||
|
checkList.add(permissionId1);
|
||||||
|
checkList.add(permissionId2);
|
||||||
|
checkList.add(permissionId3);
|
||||||
|
checkList.removeAll(list);
|
||||||
|
assertEquals(0, checkList.size());
|
||||||
|
// delete permission
|
||||||
|
authDao.deleteUserPermission(statement, user1.getUserName(), nodeName, permissionId1);
|
||||||
|
assertEquals(2, authDao.getUserPermission(statement, user1.getUserName(), nodeName).size());
|
||||||
|
authDao.deleteUserPermission(statement, user1.getUserName(), nodeName, permissionId2);
|
||||||
|
assertEquals(1, authDao.getUserPermission(statement, user1.getUserName(), nodeName).size());
|
||||||
|
authDao.deleteUserPermission(statement, user1.getUserName(), nodeName, permissionId3);
|
||||||
|
assertEquals(0, authDao.getUserPermission(statement, user1.getUserName(), nodeName).size());
|
||||||
|
// delete user
|
||||||
|
authDao.deleteUser(statement, user1.getUserName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRolePermission() {
|
||||||
|
int permissionId1 = Permission.CREATE;
|
||||||
|
int permissionId2 = Permission.DELETE;
|
||||||
|
int permissionId3 = Permission.INSERT;
|
||||||
|
String nodeName = "nodeName";
|
||||||
|
authDao.addRole(statement, role1);
|
||||||
|
// add permission
|
||||||
|
authDao.addRolePermission(statement, role1.getRoleName(), nodeName, permissionId1);
|
||||||
|
authDao.addRolePermission(statement, role1.getRoleName(), nodeName, permissionId2);
|
||||||
|
authDao.addRolePermission(statement, role1.getRoleName(), nodeName, permissionId3);
|
||||||
|
assertEquals(false, authDao.addRolePermission(statement, role1.getRoleName(), nodeName, permissionId1));
|
||||||
|
|
||||||
|
List<RolePermission> rolePermissions = authDao.getRolePermission(statement, role1.getRoleName(), nodeName);
|
||||||
|
assertEquals(3, rolePermissions.size());
|
||||||
|
List<Integer> list = new ArrayList<>();
|
||||||
|
for (RolePermission rolePermission : rolePermissions) {
|
||||||
|
list.add(rolePermission.getPermissionId());
|
||||||
|
}
|
||||||
|
List<Integer> checkList = new ArrayList<>();
|
||||||
|
checkList.add(permissionId1);
|
||||||
|
checkList.add(permissionId2);
|
||||||
|
checkList.add(permissionId3);
|
||||||
|
checkList.removeAll(list);
|
||||||
|
assertEquals(0, checkList.size());
|
||||||
|
// delete permission
|
||||||
|
authDao.deleteRolePermission(statement, role1.getRoleName(), nodeName, permissionId1);
|
||||||
|
assertEquals(2, authDao.getRolePermission(statement, role1.getRoleName(), nodeName).size());
|
||||||
|
authDao.deleteRolePermission(statement, role1.getRoleName(), nodeName, permissionId2);
|
||||||
|
assertEquals(1, authDao.getRolePermission(statement, role1.getRoleName(), nodeName).size());
|
||||||
|
authDao.deleteRolePermission(statement, role1.getRoleName(), nodeName, permissionId3);
|
||||||
|
assertEquals(0, authDao.getRolePermission(statement, role1.getRoleName(), nodeName).size());
|
||||||
|
// delete user
|
||||||
|
authDao.deleteRole(statement, role1.getRoleName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserAllPermission() {
|
||||||
|
String nodeName = "nodeName";
|
||||||
|
String newNodeName = "newNodeName";
|
||||||
|
int permissionId1 = Permission.CREATE;
|
||||||
|
int permissionId2 = Permission.DELETE;
|
||||||
|
int permissionId3 = Permission.INSERT;
|
||||||
|
|
||||||
|
// add user
|
||||||
|
authDao.addUser(statement, user1);
|
||||||
|
// add role
|
||||||
|
authDao.addRole(statement, role1);
|
||||||
|
authDao.addRole(statement, role2);
|
||||||
|
|
||||||
|
// only add permission to user
|
||||||
|
authDao.addUserPermission(statement, user1.getUserName(), nodeName, permissionId1);
|
||||||
|
assertEquals(1, authDao.getAllUserPermission(statement, user1.getUserName(), nodeName).size());
|
||||||
|
// add role1 permission
|
||||||
|
authDao.addRolePermission(statement, role1.getRoleName(), nodeName, permissionId1);
|
||||||
|
authDao.addRolePermission(statement, role1.getRoleName(), nodeName, permissionId3);
|
||||||
|
// add permission to different node
|
||||||
|
authDao.addRolePermission(statement, role1.getRoleName(), newNodeName, permissionId2);
|
||||||
|
// add role2 permission
|
||||||
|
authDao.addRolePermission(statement, role2.getRoleName(), nodeName, permissionId1);
|
||||||
|
// add roles(role1,role2) to user
|
||||||
|
authDao.addUserRoleRel(statement, user1.getUserName(), role1.getRoleName());
|
||||||
|
authDao.addUserRoleRel(statement, user1.getUserName(), role2.getRoleName());
|
||||||
|
|
||||||
|
// check the all user's permission
|
||||||
|
assertEquals(2, authDao.getAllUserPermission(statement, user1.getUserName(), nodeName).size());
|
||||||
|
|
||||||
|
assertEquals(1, authDao.getAllUserPermission(statement, user1.getUserName(), newNodeName).size());
|
||||||
|
|
||||||
|
// delete the user and role
|
||||||
|
authDao.deleteUser(statement, user1.getUserName());
|
||||||
|
authDao.deleteRole(statement, role1.getRoleName());
|
||||||
|
authDao.deleteRole(statement, role2.getRoleName());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.RoleDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.RolePermissionDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Permission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.RolePermission;
|
||||||
|
|
||||||
|
public class RolePermissionTest {
|
||||||
|
|
||||||
|
private DBdao dbDao = null;
|
||||||
|
private RoleDao roleDao = null;
|
||||||
|
private RolePermissionDao rolePermissionDao = null;
|
||||||
|
private Statement statement;
|
||||||
|
|
||||||
|
private Role role = new Role("role");
|
||||||
|
private String nodeName = "nodeName";
|
||||||
|
private String newNodeName = "newNodeName";
|
||||||
|
private int permissionId;
|
||||||
|
private RolePermission rolePermission = null;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
dbDao = new DBdao();
|
||||||
|
roleDao = new RoleDao();
|
||||||
|
rolePermissionDao = new RolePermissionDao();
|
||||||
|
permissionId = Permission.CREATE;
|
||||||
|
|
||||||
|
dbDao.open();
|
||||||
|
statement = dbDao.getStatement();
|
||||||
|
|
||||||
|
// if role not exist, create role
|
||||||
|
if (roleDao.getRole(statement, role.getRoleName()) == null) {
|
||||||
|
roleDao.createRole(statement, role);
|
||||||
|
}
|
||||||
|
rolePermission = new RolePermission(roleDao.getRole(statement, role.getRoleName()).getId(), nodeName,
|
||||||
|
permissionId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
roleDao.deleteRole(statement, role.getRoleName());
|
||||||
|
dbDao.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
|
||||||
|
// create the role permission
|
||||||
|
int state = 0;
|
||||||
|
state = rolePermissionDao.deleteRolePermission(statement, rolePermission);
|
||||||
|
state = rolePermissionDao.createRolePermission(statement, rolePermission);
|
||||||
|
RolePermission permission = rolePermissionDao.getRolePermission(statement, rolePermission);
|
||||||
|
assertEquals(1, state);
|
||||||
|
assertNotNull(permission);
|
||||||
|
assertEquals(rolePermission.getRoleId(), permission.getRoleId());
|
||||||
|
assertEquals(rolePermission.getNodeName(), permission.getNodeName());
|
||||||
|
assertEquals(rolePermission.getPermissionId(), permission.getPermissionId());
|
||||||
|
// delete the role permission
|
||||||
|
state = rolePermissionDao.deleteRolePermission(statement, rolePermission);
|
||||||
|
assertEquals(1, state);
|
||||||
|
permission = rolePermissionDao.getRolePermission(statement, rolePermission);
|
||||||
|
assertNull(permission);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetRoles() {
|
||||||
|
RolePermission rolePermission1 = new RolePermission(roleDao.getRole(statement, role.getRoleName()).getId(),
|
||||||
|
nodeName, Permission.CREATE);
|
||||||
|
RolePermission rolePermission2 = new RolePermission(roleDao.getRole(statement, role.getRoleName()).getId(),
|
||||||
|
nodeName, Permission.DELETE);
|
||||||
|
rolePermissionDao.createRolePermission(statement, rolePermission1);
|
||||||
|
rolePermissionDao.createRolePermission(statement, rolePermission2);
|
||||||
|
RolePermission rolePermission3 = new RolePermission(roleDao.getRole(statement, role.getRoleName()).getId(),
|
||||||
|
newNodeName, Permission.CREATE);
|
||||||
|
rolePermissionDao.createRolePermission(statement, rolePermission3);
|
||||||
|
assertEquals(3, rolePermissionDao.getRolePermissions(statement).size());
|
||||||
|
assertEquals(1, rolePermissionDao.getRolePermissionByRoleAndNodeName(statement,
|
||||||
|
roleDao.getRole(statement, role.getRoleName()).getId(), newNodeName).size());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,84 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.RoleDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
|
||||||
|
public class RoleTest {
|
||||||
|
|
||||||
|
private Statement statement = null;
|
||||||
|
private DBdao dbdao = null;
|
||||||
|
private RoleDao roleDao = null;
|
||||||
|
private Role role = null;
|
||||||
|
|
||||||
|
private String roleName = "role";
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
dbdao = new DBdao();
|
||||||
|
dbdao.open();
|
||||||
|
statement = dbdao.getStatement();
|
||||||
|
roleDao = new RoleDao();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
dbdao.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
role = roleDao.getRole(statement, roleName);
|
||||||
|
if (role != null) {
|
||||||
|
System.out.println("Delete the original role");
|
||||||
|
roleDao.deleteRole(statement, roleName);
|
||||||
|
}
|
||||||
|
// create role
|
||||||
|
role = new Role(roleName);
|
||||||
|
roleDao.createRole(statement, role);
|
||||||
|
Role getRole = roleDao.getRole(statement, roleName);
|
||||||
|
assertEquals(roleName, getRole.getRoleName());
|
||||||
|
// delete role
|
||||||
|
roleDao.deleteRole(statement, roleName);
|
||||||
|
role = roleDao.getRole(statement, roleName);
|
||||||
|
assertEquals(null, role);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getRolesTest() {
|
||||||
|
Role role1 = new Role("role1");
|
||||||
|
Role role2 = new Role("role2");
|
||||||
|
ArrayList<Role> arrayList = new ArrayList<>();
|
||||||
|
arrayList.add(role1);
|
||||||
|
arrayList.add(role2);
|
||||||
|
if (roleDao.getRole(statement, role1.getRoleName()) == null) {
|
||||||
|
roleDao.createRole(statement, role1);
|
||||||
|
}
|
||||||
|
if (roleDao.getRole(statement, role2.getRoleName()) == null) {
|
||||||
|
roleDao.createRole(statement, role2);
|
||||||
|
}
|
||||||
|
ArrayList<Role> list = (ArrayList<Role>) roleDao.getRoles(statement);
|
||||||
|
ArrayList<String> getRoleNames = new ArrayList<>();
|
||||||
|
for (Role role : list) {
|
||||||
|
getRoleNames.add(role.getRoleName());
|
||||||
|
}
|
||||||
|
ArrayList<String> remove = new ArrayList<>();
|
||||||
|
remove.add(role1.getRoleName());
|
||||||
|
remove.add(role2.getRoleName());
|
||||||
|
getRoleNames.removeAll(remove);
|
||||||
|
assertEquals(0, getRoleNames.size());
|
||||||
|
roleDao.deleteRole(statement, role1.getRoleName());
|
||||||
|
roleDao.deleteRole(statement, role2.getRoleName());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.UserDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.UserPermissionDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Permission;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserPermission;
|
||||||
|
|
||||||
|
public class UserPemissionTest {
|
||||||
|
|
||||||
|
private DBdao DBdao = null;
|
||||||
|
private UserDao userDao = null;
|
||||||
|
private UserPermissionDao UserPermissionDao = null;
|
||||||
|
private Statement statement = null;
|
||||||
|
|
||||||
|
private String nodeName = "nodeName";
|
||||||
|
private String newNodeName = "newNodeName";
|
||||||
|
private int permission;
|
||||||
|
|
||||||
|
private User user = new User("user1", "user1");
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
permission = Permission.CREATE;
|
||||||
|
DBdao = new DBdao();
|
||||||
|
DBdao.open();
|
||||||
|
statement = DBdao.getStatement();
|
||||||
|
userDao = new UserDao();
|
||||||
|
UserPermissionDao = new UserPermissionDao();
|
||||||
|
|
||||||
|
// if not exitst, create the user
|
||||||
|
if (userDao.getUser(statement, user.getUserName()) == null) {
|
||||||
|
userDao.createUser(statement, user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
userDao.deleteUser(statement, user.getUserName());
|
||||||
|
DBdao.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
UserPermission userPermission = new UserPermission(userDao.getUser(statement, user.getUserName()).getId(),
|
||||||
|
nodeName, permission);
|
||||||
|
// if userpermission exist in the table ,and delete it
|
||||||
|
UserPermissionDao.deleteUserPermission(statement, userPermission);
|
||||||
|
// create permission
|
||||||
|
UserPermissionDao.createUserPermission(statement, userPermission);
|
||||||
|
UserPermission permission = UserPermissionDao.getUserPermission(statement, userPermission);
|
||||||
|
assertEquals(userPermission.getUserId(), permission.getUserId());
|
||||||
|
assertEquals(userPermission.getNodeName(), permission.getNodeName());
|
||||||
|
assertEquals(userPermission.getPermissionId(), permission.getPermissionId());
|
||||||
|
// delete permission
|
||||||
|
int state = 0;
|
||||||
|
state = UserPermissionDao.deleteUserPermission(statement, userPermission);
|
||||||
|
assertEquals(1, state);
|
||||||
|
permission = UserPermissionDao.getUserPermission(statement, userPermission);
|
||||||
|
assertEquals(null, permission);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetUserPermissions() {
|
||||||
|
UserPermission userPermission1 = new UserPermission(userDao.getUser(statement, user.getUserName()).getId(),
|
||||||
|
nodeName, Permission.CREATE);
|
||||||
|
UserPermission userPermission2 = new UserPermission(userDao.getUser(statement, user.getUserName()).getId(),
|
||||||
|
nodeName, Permission.DELETE);
|
||||||
|
UserPermissionDao.createUserPermission(statement, userPermission1);
|
||||||
|
UserPermissionDao.createUserPermission(statement, userPermission2);
|
||||||
|
assertEquals(2, UserPermissionDao.getUserPermissions(statement).size());
|
||||||
|
UserPermission userPermission3 = new UserPermission(userDao.getUser(statement, user.getUserName()).getId(),
|
||||||
|
newNodeName, Permission.CREATE);
|
||||||
|
UserPermissionDao.createUserPermission(statement, userPermission3);
|
||||||
|
assertEquals(2, UserPermissionDao.getUserPermissionByUserAndNodeName(statement,
|
||||||
|
userDao.getUser(statement, user.getUserName()).getId(), nodeName).size());
|
||||||
|
assertEquals(1, UserPermissionDao.getUserPermissionByUserAndNodeName(statement,
|
||||||
|
userDao.getUser(statement, user.getUserName()).getId(), newNodeName).size());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,167 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.RoleDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.UserDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.UserRoleRelDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.Role;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.UserRoleRel;
|
||||||
|
|
||||||
|
public class UserRoleRelTest {
|
||||||
|
|
||||||
|
private DBdao dbdao = null;
|
||||||
|
private UserRoleRelDao userRoleRelDao = null;
|
||||||
|
private UserDao userDao = null;
|
||||||
|
private RoleDao roleDao = null;
|
||||||
|
private Statement statement = null;
|
||||||
|
User user1 = new User("user1", "user2");
|
||||||
|
User user2 = new User("user2", "user2");
|
||||||
|
Role role1 = new Role("role1");
|
||||||
|
Role role2 = new Role("role2");
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
dbdao = new DBdao();
|
||||||
|
dbdao.open();
|
||||||
|
statement = dbdao.getStatement();
|
||||||
|
userDao = new UserDao();
|
||||||
|
roleDao = new RoleDao();
|
||||||
|
userRoleRelDao = new UserRoleRelDao();
|
||||||
|
|
||||||
|
// create user and role
|
||||||
|
|
||||||
|
if (userDao.getUser(statement, user1.getUserName()) == null) {
|
||||||
|
userDao.createUser(statement, user1);
|
||||||
|
}
|
||||||
|
if (userDao.getUser(statement, user2.getUserName()) == null) {
|
||||||
|
userDao.createUser(statement, user2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (roleDao.getRole(statement, role1.getRoleName()) == null) {
|
||||||
|
roleDao.createRole(statement, role1);
|
||||||
|
}
|
||||||
|
if (roleDao.getRole(statement, role2.getRoleName()) == null) {
|
||||||
|
roleDao.createRole(statement, role2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
|
||||||
|
userDao.deleteUser(statement, user1.getUserName());
|
||||||
|
userDao.deleteUser(statement, user2.getUserName());
|
||||||
|
roleDao.deleteRole(statement, role1.getRoleName());
|
||||||
|
roleDao.deleteRole(statement, role2.getRoleName());
|
||||||
|
dbdao.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
// create relation between user and role
|
||||||
|
String userName = "user1";
|
||||||
|
String roleName = "role1";
|
||||||
|
int userId = userDao.getUser(statement, userName).getId();
|
||||||
|
int roleId = roleDao.getRole(statement, roleName).getId();
|
||||||
|
UserRoleRel userRoleRel = new UserRoleRel(userId, roleId);
|
||||||
|
// if not exist, create the relation
|
||||||
|
if (userRoleRelDao.getUserRoleRel(statement, userRoleRel) == null) {
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel);
|
||||||
|
} else {
|
||||||
|
userRoleRelDao.deleteUserRoleRel(statement, userRoleRel);
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel);
|
||||||
|
}
|
||||||
|
// get the relation
|
||||||
|
userRoleRel = userRoleRelDao.getUserRoleRel(statement, userRoleRel);
|
||||||
|
assertEquals(userId, userRoleRel.getUserId());
|
||||||
|
assertEquals(roleId, userRoleRel.getRoleId());
|
||||||
|
// delete the relation ana assert
|
||||||
|
userRoleRelDao.deleteUserRoleRel(statement, userRoleRel);
|
||||||
|
assertEquals(null, userRoleRelDao.getUserRoleRel(statement, userRoleRel));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getRolesByUserTest() {
|
||||||
|
String user1name = user1.getUserName();
|
||||||
|
String role1name = role1.getRoleName();
|
||||||
|
String role2name = role2.getRoleName();
|
||||||
|
int user1Id = userDao.getUser(statement, user1name).getId();
|
||||||
|
int role1Id = roleDao.getRole(statement, role1name).getId();
|
||||||
|
int role2Id = roleDao.getRole(statement, role2name).getId();
|
||||||
|
|
||||||
|
UserRoleRel userRoleRel1 = new UserRoleRel(user1Id, role1Id);
|
||||||
|
UserRoleRel userRoleRel2 = new UserRoleRel(user1Id, role2Id);
|
||||||
|
|
||||||
|
// if not exist, create the relations
|
||||||
|
if (userRoleRelDao.getUserRoleRel(statement, userRoleRel1) == null) {
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel1);
|
||||||
|
}
|
||||||
|
if (userRoleRelDao.getUserRoleRel(statement, userRoleRel2) == null) {
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel2);
|
||||||
|
}
|
||||||
|
// get the relation and assert them
|
||||||
|
ArrayList<UserRoleRel> arrayList = (ArrayList<UserRoleRel>) userRoleRelDao.getUserRoleRelByUser(statement,
|
||||||
|
user1Id);
|
||||||
|
ArrayList<Integer> roleIds = new ArrayList<>();
|
||||||
|
for (UserRoleRel userRoleRel : arrayList) {
|
||||||
|
roleIds.add(userRoleRel.getRoleId());
|
||||||
|
}
|
||||||
|
ArrayList<Integer> list = new ArrayList<>();
|
||||||
|
list.add(role1Id);
|
||||||
|
list.add(role2Id);
|
||||||
|
|
||||||
|
roleIds.removeAll(list);
|
||||||
|
assertEquals(0, roleIds.size());
|
||||||
|
// delete the relations
|
||||||
|
userRoleRelDao.deleteUserRoleRel(statement, userRoleRel1);
|
||||||
|
userRoleRelDao.deleteUserRoleRel(statement, userRoleRel2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getUserByRoleTest() {
|
||||||
|
String role1name = role1.getRoleName();
|
||||||
|
String user1name = user1.getUserName();
|
||||||
|
String user2name = user2.getUserName();
|
||||||
|
int role1Id = roleDao.getRole(statement, role1name).getId();
|
||||||
|
int user1Id = userDao.getUser(statement, user1name).getId();
|
||||||
|
int user2Id = userDao.getUser(statement, user2name).getId();
|
||||||
|
|
||||||
|
UserRoleRel userRoleRel1 = new UserRoleRel(user1Id, role1Id);
|
||||||
|
UserRoleRel userRoleRel2 = new UserRoleRel(user2Id, role1Id);
|
||||||
|
|
||||||
|
//if not exist, create the relations
|
||||||
|
if (userRoleRelDao.getUserRoleRel(statement, userRoleRel1)==null) {
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel1);
|
||||||
|
}
|
||||||
|
if (userRoleRelDao.getUserRoleRel(statement, userRoleRel2)==null) {
|
||||||
|
userRoleRelDao.createUserRoleRel(statement, userRoleRel2);
|
||||||
|
}
|
||||||
|
//get the relation and assert them
|
||||||
|
ArrayList<UserRoleRel> arrayList = (ArrayList<UserRoleRel>)userRoleRelDao.getUserRoleRelByRole(statement, role1Id);
|
||||||
|
ArrayList<Integer> userIds = new ArrayList<>();
|
||||||
|
for (UserRoleRel userRoleRel : arrayList) {
|
||||||
|
userIds.add(userRoleRel.getUserId());
|
||||||
|
}
|
||||||
|
ArrayList<Integer> list = new ArrayList<>();
|
||||||
|
list.add(user1Id);
|
||||||
|
list.add(user2Id);
|
||||||
|
|
||||||
|
userIds.removeAll(list);
|
||||||
|
assertEquals(0, userIds.size());
|
||||||
|
//delete the relations
|
||||||
|
userRoleRelDao.deleteUserRoleRel(statement, userRoleRel1);
|
||||||
|
userRoleRelDao.deleteUserRoleRel(statement, userRoleRel2);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,116 @@
|
||||||
|
package cn.edu.thu.tsfiledb.auth;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.DBdao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.dao.UserDao;
|
||||||
|
import cn.edu.thu.tsfiledb.auth.model.User;
|
||||||
|
|
||||||
|
public class UserTest {
|
||||||
|
|
||||||
|
private Statement statement = null;
|
||||||
|
private UserDao userDao = null;
|
||||||
|
private DBdao dBdao = null;
|
||||||
|
|
||||||
|
private String userName = "testuser";
|
||||||
|
private String passWord = "password";
|
||||||
|
private User user = new User(userName, passWord);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws Exception
|
||||||
|
* prepare to connect the derby DB
|
||||||
|
*/
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
dBdao = new DBdao();
|
||||||
|
dBdao.open();
|
||||||
|
statement = dBdao.getStatement();
|
||||||
|
userDao = new UserDao();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
dBdao.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create user first and delete the user
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
User getUser = userDao.getUser(statement, userName);
|
||||||
|
if (getUser != null) {
|
||||||
|
int deleteCount = userDao.deleteUser(statement, userName);
|
||||||
|
if (deleteCount > 0) {
|
||||||
|
System.out.println("Delete the original record");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// create user
|
||||||
|
userDao.createUser(statement, user);
|
||||||
|
getUser = userDao.getUser(statement, userName);
|
||||||
|
assertEquals(userName, getUser.getUserName());
|
||||||
|
assertEquals(passWord, getUser.getPassWord());
|
||||||
|
// delete user
|
||||||
|
userDao.deleteUser(statement, userName);
|
||||||
|
getUser = userDao.getUser(statement, userName);
|
||||||
|
assertEquals(getUser, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getUsersTest() {
|
||||||
|
User user1 = new User("user1", "user1");
|
||||||
|
User user2 = new User("user2", "user2");
|
||||||
|
ArrayList<User> arrayList = new ArrayList<>();
|
||||||
|
arrayList.add(user1);
|
||||||
|
arrayList.add(user2);
|
||||||
|
if (userDao.getUser(statement, user1.getUserName()) == null) {
|
||||||
|
userDao.createUser(statement, user1);
|
||||||
|
}
|
||||||
|
if (userDao.getUser(statement, user2.getUserName()) == null) {
|
||||||
|
userDao.createUser(statement, user2);
|
||||||
|
}
|
||||||
|
ArrayList<User> list = (ArrayList<User>) userDao.getUsers(statement);
|
||||||
|
// add the root user
|
||||||
|
assertEquals(3, list.size());
|
||||||
|
// int count = 0;
|
||||||
|
// // Some problems
|
||||||
|
// for (User user : list) {
|
||||||
|
// User testUser = arrayList.get(count);
|
||||||
|
// count++;
|
||||||
|
// if (user.getUserName().equals("root")) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// assertEquals(testUser.getUserName(), user.getUserName());
|
||||||
|
// assertEquals(testUser.getPassWord(), user.getPassWord());
|
||||||
|
// }
|
||||||
|
userDao.deleteUser(statement, user1.getUserName());
|
||||||
|
userDao.deleteUser(statement, user2.getUserName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateUserTest(){
|
||||||
|
User user = new User("user", "user");
|
||||||
|
if ((userDao.getUser(statement, user.getUserName()))==null) {
|
||||||
|
userDao.createUser(statement, user);
|
||||||
|
}
|
||||||
|
user = userDao.getUser(statement, user.getUserName());
|
||||||
|
assertEquals("user", user.getUserName());
|
||||||
|
assertEquals("user", user.getPassWord());
|
||||||
|
// update password
|
||||||
|
String updatePassword = "password";
|
||||||
|
userDao.updateUserPassword(statement,
|
||||||
|
user.getUserName(), updatePassword);
|
||||||
|
user = userDao.getUser(statement, user.getUserName());
|
||||||
|
assertEquals("user", user.getUserName());
|
||||||
|
assertEquals(updatePassword, user.getPassWord());
|
||||||
|
userDao.deleteUser(statement, user.getUserName());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue