Package org.joget.directory.dao

Source Code of org.joget.directory.dao.OrganizationDaoImpl

package org.joget.directory.dao;

import java.util.Collection;
import java.util.List;
import java.util.Set;
import org.joget.commons.spring.model.AbstractSpringDao;
import org.joget.commons.util.LogUtil;
import org.joget.directory.model.Department;
import org.joget.directory.model.Employment;
import org.joget.directory.model.Grade;
import org.joget.directory.model.Group;
import org.joget.directory.model.Organization;

public class OrganizationDaoImpl extends AbstractSpringDao implements OrganizationDao {

    private GradeDao gradeDao;
    private GroupDao groupDao;
    private DepartmentDao departmentDao;
    private EmploymentDao employmentDao;

    public EmploymentDao getEmploymentDao() {
        return employmentDao;
    }

    public void setEmploymentDao(EmploymentDao employmentDao) {
        this.employmentDao = employmentDao;
    }

    public DepartmentDao getDepartmentDao() {
        return departmentDao;
    }

    public void setDepartmentDao(DepartmentDao departmentDao) {
        this.departmentDao = departmentDao;
    }

    public GradeDao getGradeDao() {
        return gradeDao;
    }

    public void setGradeDao(GradeDao gradeDao) {
        this.gradeDao = gradeDao;
    }

    public GroupDao getGroupDao() {
        return groupDao;
    }

    public void setGroupDao(GroupDao groupDao) {
        this.groupDao = groupDao;
    }

    public Boolean addOrganization(Organization organization) {
        try {
            save("Organization", organization);
            return true;
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Add Organization Error!");
            return false;
        }
    }

    public Boolean updateOrganization(Organization organization) {
        try {
            merge("Organization", organization);
            return true;
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Update Organization Error!");
            return false;
        }
    }

    public Boolean deleteOrganization(String id) {
        try {
            Organization organization = getOrganization(id);
            if (organization != null) {
                Set<Department> departments = organization.getDepartments();
                Set<Grade> grades = organization.getGrades();
                Set<Group> groups = organization.getGroups();
                Set<Employment> employments = organization.getEmployments();
               
                if (employments != null) {
                    for (Employment employment : employments) {
                        getEmploymentDao().unassignUserFromOrganization(employment.getUserId(), id);
                    }
                    employments.clear();
                }
               
                if (groups != null) {
                    organization.getGroups().removeAll(groups);
                }

                if (departments != null) {
                    for (Department department : departments) {
                        getDepartmentDao().deleteDepartment(department.getId());
                    }
                }

                if (grades != null) {
                    for (Grade grade : grades) {
                        getGradeDao().deleteGrade(grade.getId());
                    }
                }
               
                delete("Organization", organization);
            }
            return true;
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Delete Organization Error!");
            return false;
        }
    }

    public Organization getOrganization(String id) {
        try {
            return (Organization) find("Organization", id);
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Get Organization Error!");
            return null;
        }
    }

    public Organization getOrganizationByName(String name) {
        try {
            Organization organization = new Organization();
            organization.setName(name);
            List organizations = findByExample("Organization", organization);

            if (organizations.size() > 0) {
                return (Organization) organizations.get(0);
            }
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Get Organization By Name Error!");
        }

        return null;
    }

    public Collection<Organization> getOrganizationsByFilter(String filterString, String sort, Boolean desc, Integer start, Integer rows) {
        try {
            if (filterString == null) {
                filterString = "";
            }
            return find("Organization", "where e.id like ? or e.name like ? or e.description like ?", new Object[]{"%" + filterString + "%", "%" + filterString + "%", "%" + filterString + "%"}, sort, desc, start, rows);
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Get Organizations By Name Filter Error!");
        }

        return null;
    }

    public Long getTotalOrganizationsByFilter(String filterString) {
        try {
            if (filterString == null) {
                filterString = "";
            }
            return count("Organization", "where e.id like ? or e.name like ? or e.description like ?", new Object[]{"%" + filterString + "%", "%" + filterString + "%", "%" + filterString + "%"});
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Get Total Organizations By Name Filter Error!");
        }

        return 0L;
    }

    public Collection<Organization> findOrganizations(String condition, Object[] params, String sort, Boolean desc, Integer start, Integer rows) {
        try {
            return find("Organization", condition, params, sort, desc, start, rows);
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Find Organizations Error!");
        }

        return null;
    }

    public Long countOrganizations(String condition, Object[] params) {
        try {
            return count("Organization", condition, params);
        } catch (Exception e) {
            LogUtil.error(OrganizationDaoImpl.class.getName(), e, "Count Organizations Error!");
        }

        return 0L;
    }
}
TOP

Related Classes of org.joget.directory.dao.OrganizationDaoImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.