⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.java

📁 旅游自助系统
💻 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 + -