📄 client.java
字号:
/*
*
*/
package org.tshs.entity;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import org.tshs.core.CacheManager;
import org.tshs.core.Constant.ObjectType;
import org.tshs.core.Constant.Sex;
import org.tshs.storage.rdbms.ColumnInfo;
import org.tshs.storage.rdbms.DbManager;
import org.tshs.storage.rdbms.TableRow;
/**
* @author Administrator
*
*/
public class Client extends TshsObject {
private String name;
private String password;
private String email;
private String address;
private String description;
private Sex sex;
private Date birth;
private List<Long> myGroupIds;
public static final int propertyLength = 7;
/** */
public Client(Long id){
super(id, ObjectType.CLIENT);
}
/**
* @param row
*/
public Client(TableRow row) {
super(Long.valueOf(row.getColumn("id").toString()), ObjectType.CLIENT);
setName((String)row.getColumn("name"));
setPassword((String)row.getColumn("password"));
setEmail((String)row.getColumn("email"));
setAddress((String)row.getColumn("address"));
setDescription((String)row.getColumn("description"));
setSex(((Boolean)row.getColumn("sex") == true)? Sex.FEMALE:Sex.MALE);
setBirth(new Date(((java.sql.Date)row.getColumn("birth")).getTime()));
List<Long> idlist = (List<Long>) row.getColumn("groupIds");
setMyGroupIds(idlist);
}
public void setName(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return password;
}
public void setEmail(String email){
this.email = email;
}
public String getEmail() {
return email;
}
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return address;
}
public void setDescription(String description){
this.description = description;
}
public String getDescription(){
return description;
}
public void setSex(Sex sex){
this.sex = sex;
}
public Sex getSex(){
return sex;
}
public void setBirth(Date birth){
this.birth = new Date(birth.getTime());
}
public Date getBirth(){
return birth;
}
public void setMyGroupIds(List<Long> groupIds){
this.myGroupIds = groupIds;
}
public List<Long> getMyGroupIds(){
return myGroupIds;
}
public boolean checkPassword(String password){
if(this.password.equals(password)){
return true;
}else{
return false;
}
}
/**
* The second part of this method is in order to keep
* the integrity of the relationship between client and travelGroup.
*
* @param group
*/
public void addToGroup(TravelGroup group){
myGroupIds.add(group.getId());
if(!group.hasClient(this)){
group.addClient(this);
}
}
public void removeGroup(TravelGroup group){
myGroupIds.remove(group.getId());
if(group.hasClient(this)){
group.removeClient(this);
}
}
public TravelGroup getMyGroup(Long id) throws Exception{
TravelGroup group = null;
group = (TravelGroup)CacheManager.retrieve(id);
return group;
}
public Vector getAllGroups() throws Exception{
Vector v = new Vector(myGroupIds.size());
for(Long id:myGroupIds){
v.add(getMyGroup(id));
}
return v;
}
public boolean isInGroup(TravelGroup group){
return myGroupIds.contains(group.getId());
}
public Vector selfList() throws Exception{
Vector<String> groupNames = new Vector<String>();
Iterator i = myGroupIds.iterator();
TravelGroup group = null;
while (i.hasNext()) {
group = getMyGroup((Long) i.next());
groupNames.add(group.getName());
}
Vector<Object> self = new Vector<Object>();
self.add(name);
self.add(password);
self.add(email);
self.add(address);
self.add(description);
self.add(sex);
self.add(birth);
self.add(groupNames);
return self;
}
/**
* @param data
*/
public boolean modify(Vector data) {
if(data.size() != propertyLength){
System.out.println("Error from Client: data.size() != propertyLength");
return false;
}
setName((String) data.get(0));
setPassword((String)data.get(1));
setEmail((String)data.get(2));
setAddress((String)data.get(3));
setDescription((String)data.get(4));
setSex((Sex)data.get(5));
setBirth((Date)data.get(6));
try {
DbManager.update(buildTableRow());
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
protected TableRow buildTableRow(){
List<String> names = new ArrayList<String>();
List<Integer> types = new ArrayList<Integer>();
names.add("id");
types.add(Types.BIGINT);
names.add("name");
types.add(Types.VARCHAR);
names.add("password");
types.add(Types.VARCHAR);
names.add("email");
types.add(Types.VARCHAR);
names.add("address");
types.add(Types.VARCHAR);
names.add("description");
types.add(Types.VARCHAR);
names.add("sex");
types.add(Types.TINYINT);
names.add("birth");
types.add(Types.DATE);
ColumnInfo info = null;
try {
info = new ColumnInfo(names, types);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", id);
map.put("name", name);
map.put("password", password);
map.put("email", email);
map.put("address", address);
map.put("description", description);
if(sex.equals(Sex.MALE)){
map.put("sex", 0);
}else if(sex.equals(Sex.FEMALE)){
map.put("sex", 1);
}else{
map.put("sex", 2);
}
map.put("birth", birth);
TableRow row = new TableRow("client", map, info);
return row;
}
/**
* @throws SQLException
*
*/
public boolean update(){
try {
DbManager.update(this.buildTableRow());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -