?? organizequeryimpl.java
字號(hào):
package com.lily.dap.service.organize.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.lily.dap.Constants;
import com.lily.dap.model.organize.Department;
import com.lily.dap.model.organize.Group;
import com.lily.dap.model.organize.Person;
import com.lily.dap.model.organize.Post;
import com.lily.dap.service.core.exception.DataNotExistException;
import com.lily.dap.service.organize.OrganizeQuery;
public class OrganizeQueryImpl implements OrganizeQuery {
private OrganizeCache organizeCache;
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#setOrganizeCache(com.lily.dap.service.organize.impl.OrganizeCache)
*/
public void setOrganizeCache(OrganizeCache oc){
this.organizeCache = oc;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getRootDepartment()
*/
public Department getRootDepartment() throws DataNotExistException{
Department depart = organizeCache.getRootDepartment();
if(null == depart)
throw new DataNotExistException("Root department is not exist!");
return depart;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getDepartment(long)
*/
public Department getDepartment(long depart_id) throws DataNotExistException {
Department depart = (Department)organizeCache.getDepartmentMap().get(new Long(depart_id));
if(null == depart)
throw new DataNotExistException("The department [id=" + depart_id + "] is not exist!");
return depart;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getDepartments(int)
*/
public Collection getDepartments(int type) {
List list = new ArrayList();
Iterator it = organizeCache.getDepartmentMap().values().iterator();
while(it.hasNext()){
Department depart = (Department)it.next();
if(depart.getType() == type){
list.add(depart);
}
}
return list;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getChildDepartments(long)
*/
public Collection getChildDepartments(long depart_id) throws DataNotExistException {
Department depart = (Department)organizeCache.getDepartmentMap().get(new Long(depart_id));
if(null == depart)
throw new DataNotExistException("The department [id=" + depart_id + "] is not exist!");
return depart.getChildDeps();
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getAllDepartmentsByParent(long)
*/
public Collection getAllDepartmentsByParent(long parent_id) throws DataNotExistException {
Department parent = (Department)organizeCache.getDepartmentMap().get(new Long(parent_id));
if(null == parent)
throw new DataNotExistException("The department [id=" + parent_id + "] is not exist!");
List list = new ArrayList();
list.add(parent);
list.addAll(getAllChildDeparts(parent_id));
return list;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getPost(long)
*/
public Post getPost(long post_id) throws DataNotExistException {
Post post = (Post) organizeCache.getPostMap().get(new Long(post_id));
if(null == post)
throw new DataNotExistException("The post [id=" + post_id + "] is not exist!");
return post;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getPosts(long)
*/
public Collection getPosts(long depart_id) throws DataNotExistException {
Department depart = (Department) organizeCache.getDepartmentMap().get(new Long(depart_id));
if(null == depart)
throw new DataNotExistException("The department [id=" + depart_id + "] is not exist!");
return depart.getPosts();
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getPostsByPerson(long)
*/
public Collection getPostsByPerson(long person_id) throws DataNotExistException {
Person person = (Person) organizeCache.getPersonMap().get(new Long(person_id));
if(null == person)
throw new DataNotExistException("The person [id=" + person_id + "] is not exist!");
List list = new ArrayList();
Iterator it = organizeCache.getPostMap().values().iterator();
while(it.hasNext()){
Post post = (Post)it.next();
if(post.getPersons().contains(person))
list.add(post);
}
return list;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getAllPosts()
*/
public Collection getAllPosts() {
return organizeCache.getPostMap().values();
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getPerson(long)
*/
public Person getPerson(long person_id) throws DataNotExistException {
Person person = (Person)organizeCache.getPersonMap().get(new Long(person_id));
if(null == person)
throw new DataNotExistException("The person [id=" + person_id + "] is not exist!");
return person;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getPerson(java.lang.String)
*/
public Person getPerson(String username) throws DataNotExistException {
Iterator it = organizeCache.getPersonMap().values().iterator();
while(it.hasNext()) {
Person person = (Person)it.next();
if (username.equals(person.getUsername()))
return person;
}
throw new DataNotExistException("The person [username=" + username + "] is not exist!");
}
public Collection getAllPersons() {
return organizeCache.getPersonMap().values();
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getPersonsByPost(long)
*/
public Collection getPersonsByPost(long post_id){
Post post = (Post)organizeCache.getPostMap().get(new Long(post_id));
return post.getPersons();
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getPersonsByDepartments(long, boolean)
*/
public Collection getPersonsByDepartments(long depart_id, boolean include_sub_department) {
Collection departmentList = null;
if (include_sub_department)
departmentList = getAllDepartmentsByParent(depart_id);
else {
departmentList = new ArrayList();
departmentList.add(getDepartment(depart_id));
}
List postList = new ArrayList();
Iterator it = departmentList.iterator();
while (it.hasNext()) {
Department department = (Department)it.next();
Collection list = this.getPosts(department.getId());
postList.addAll(list);
}
Set personSet = new HashSet();
it = postList.iterator();
while (it.hasNext()) {
Post post = (Post)it.next();
Collection list = post.getPersons();
personSet.addAll(list);
}
return personSet;
}
/* (non-Javadoc)
* @see com.lily.dap.service.organize.OrganizeQuery#getAllChildDeparts(long)
*/
public Collection getAllChildDeparts(long parent_id){
List list = new ArrayList(), temp = new ArrayList();
Department parent = (Department)organizeCache.getDepartmentMap().get(new Long(parent_id));
Set set = parent.getChildDeps();
temp.addAll(set);
for (int i = 0; i < temp.size(); i++) {
Department depart = (Department)temp.get(i);
list.add(depart);
Collection childList = getAllChildDeparts(depart.getId());
list.addAll(childList);
}
return list;
}
public Group getGroup(long group_id) throws DataNotExistException {
Group group = (Group)organizeCache.getGroupMap().get(new Long(group_id));
if(null == group)
throw new DataNotExistException("The group [id=" + group_id + "] is not exist!");
return group;
}
public Collection getGroups() {
return organizeCache.getGroupMap().values();
}
public Collection getPersonsByGroup(long group_id) {
Set Set = new HashSet();
return getPersonsOfGroup(group_id, Set);
}
private Set getPersonsOfGroup(long group_id, Set set){
Group group = this.getGroup(group_id);
String groupMember = group.getGroupMember();
if(null == groupMember || "".equals(groupMember))
return set;
String[] members = groupMember.split(Constants.STRING_SEPARATOR3);
for(int i = 0; i < members.length; i++){
String[] member = members[i].split(Constants.STRING_SEPARATOR6);
long id = Long.parseLong(member[0]);
String type = member[1];
if(Constants.ADDRESS_FORMAT_DEPARTMENT.equals(type))
set.addAll(getPersonsByDepartments(id, true));
else if(Constants.ADDRESS_FORMAT_POST.equals(type))
set.addAll(getPersonsByPost(id));
else if(Constants.ADDRESS_FORMAT_PERSON.equals(type))
set.add(getPerson(id));
else if(Constants.ADDRESS_FORMAT_GROUP.equals(type))
set = getPersonsOfGroup(id, set);
}
return set;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -