de.sub.goobi.forms.BenutzergruppenForm.java Source code

Java tutorial

Introduction

Here is the source code for de.sub.goobi.forms.BenutzergruppenForm.java

Source

/*
 * (c) Kitodo. Key to digital objects e. V. <contact@kitodo.org>
 *
 * This file is part of the Kitodo project.
 *
 * It is licensed under GNU General Public License version 3 or later.
 *
 * For the full copyright and license information, please read the
 * GPL3-License.txt file that was distributed with this source code.
 */

package de.sub.goobi.forms;

import de.sub.goobi.helper.Helper;
import de.sub.goobi.helper.Page;

import java.io.IOException;
import java.util.ArrayList;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.kitodo.data.database.beans.User;
import org.kitodo.data.database.beans.UserGroup;
import org.kitodo.data.database.exceptions.DAOException;
import org.kitodo.data.database.persistence.SimpleDAO;
import org.kitodo.data.elasticsearch.exceptions.ResponseException;
import org.kitodo.services.ServiceManager;

public class BenutzergruppenForm extends BasisForm {
    private static final long serialVersionUID = 8051160917458068675L;
    private UserGroup myBenutzergruppe = new UserGroup();
    private final ServiceManager serviceManager = new ServiceManager();

    public String Neu() {
        this.myBenutzergruppe = new UserGroup();
        return "BenutzergruppenBearbeiten";
    }

    /**
     * Save user group.
     *
     * @return page or empty String
     */
    public String Speichern() {
        try {
            this.serviceManager.getUserGroupService().save(this.myBenutzergruppe);
            return "BenutzergruppenAlle";
        } catch (DAOException e) {
            Helper.setFehlerMeldung("Error, could not save", e.getMessage());
            return "";
        } catch (IOException e) {
            Helper.setFehlerMeldung("Error, could not insert to index", e.getMessage());
            return "";
        } catch (ResponseException e) {
            Helper.setFehlerMeldung("Error, ElasticSearch incorrect server response", e.getMessage());
            return "";
        }
    }

    /**
     * Remove user group.
     *
     * @return page or empty String
     */
    public String Loeschen() {
        try {
            new SimpleDAO().refreshObject(this.myBenutzergruppe);
            if (this.myBenutzergruppe.getUsers().size() > 0) {
                for (User b : this.myBenutzergruppe.getUsers()) {
                    b.getUserGroups().remove(this.myBenutzergruppe);
                }
                this.myBenutzergruppe.setUsers(new ArrayList<User>());
                this.serviceManager.getUserGroupService().save(this.myBenutzergruppe);
            }
            if (this.myBenutzergruppe.getTasks().size() > 0) {
                Helper.setFehlerMeldung("userGroupAssignedError");
                return "";
            }
            this.serviceManager.getUserGroupService().remove(this.myBenutzergruppe);
        } catch (DAOException e) {
            Helper.setFehlerMeldung("Error, could not delete", e.getMessage());
            return "";
        } catch (IOException e) {
            Helper.setFehlerMeldung("Error, could not delete from index", e.getMessage());
            return "";
        } catch (ResponseException e) {
            Helper.setFehlerMeldung("Error, ElasticSearch incorrect server response", e.getMessage());
            return "";
        }
        return "BenutzergruppenAlle";
    }

    /**
     * Display all user groups with any filtering.
     *
     * @return page or empty String
     */
    public String FilterKein() {
        try {
            Session session = Helper.getHibernateSession();
            session.clear();
            Criteria crit = session.createCriteria(UserGroup.class);
            crit.addOrder(Order.asc("title"));
            this.page = new Page(crit, 0);
        } catch (HibernateException he) {
            Helper.setFehlerMeldung("Error, could not read", he.getMessage());
            return "";
        }
        return "BenutzergruppenAlle";
    }

    public String FilterKeinMitZurueck() {
        FilterKein();
        return this.zurueck;
    }

    /*
     * Getter und Setter
     */

    public UserGroup getMyBenutzergruppe() {
        return this.myBenutzergruppe;
    }

    public void setMyBenutzergruppe(UserGroup myBenutzergruppe) {
        Helper.getHibernateSession().clear();
        this.myBenutzergruppe = myBenutzergruppe;
    }

}