Merge lp:~slub.team/goobi-production/bug-1021304 into lp:goobi-production/1.8

Proposed by Ralf Claussnitzer
Status: Superseded
Proposed branch: lp:~slub.team/goobi-production/bug-1021304
Merge into: lp:goobi-production/1.8
Diff against target: 143 lines (+58/-12)
4 files modified
config/messages_de.properties (+2/-0)
config/messages_en.properties (+2/-0)
src/de/sub/goobi/forms/RegelsaetzeForm.java (+30/-10)
src/de/sub/goobi/persistence/RegelsatzDAO.java (+24/-2)
To merge this branch: bzr merge lp:~slub.team/goobi-production/bug-1021304
Reviewer Review Type Date Requested Status
Henning Gerhardt Needs Fixing
Review via email: mp+125185@code.launchpad.net

This proposal has been superseded by a proposal from 2012-09-19.

Description of the change

Not the most elegant solution, but close to usual behavior right now.

To post a comment you must log in.
Revision history for this message
Henning Gerhardt (henning-gerhardt) wrote :

Looks ok for except:

- new public method hasAssignedProcesses() in class commentsrc/de/sub/goobi/persistence/RegelsatzDAO.java should have a javadoc

review: Needs Fixing
109. By Ralf Claussnitzer

adds api documentation to public method

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'config/messages_de.properties'
2--- config/messages_de.properties 2012-09-06 08:32:30 +0000
3+++ config/messages_de.properties 2012-09-19 13:30:42 +0000
4@@ -572,6 +572,8 @@
5 regelsaetze=Regels\u00E4tze
6 regelsatz=Regelsatz
7 regelsatzBearbeiten=Regelsatz bearbeiten
8+regelsatzDateiNichtGefunden=Die angegebende Regelsatzdatei konnte nicht gefunden werden.
9+regelsatzNichtLoeschbar=Regelsatz ist noch mit Projekten verkn\u00FCpft und kann nicht gel\u00F6scht werden.
10 reihenfolge=Reihenfolge
11 relativeAnzahl=Relative Anzahl
12 removeFilter=Filter entfernen
13
14=== modified file 'config/messages_en.properties'
15--- config/messages_en.properties 2012-09-06 08:32:30 +0000
16+++ config/messages_en.properties 2012-09-19 13:30:42 +0000
17@@ -572,6 +572,8 @@
18 regelsaetze=Rule sets
19 regelsatz=Rule set
20 regelsatzBearbeiten=Edit rule set
21+regelsatzNichtLoeschbar=Ruleset is still referenced in processes and cannot be deleted.
22+regelsatzDateiNichtGefunden=The given ruleset file cannot be found.
23 reihenfolge=Order
24 relativeAnzahl=Relative number
25 removeFilter=Remove filter from list
26
27=== modified file 'src/de/sub/goobi/forms/RegelsaetzeForm.java'
28--- src/de/sub/goobi/forms/RegelsaetzeForm.java 2012-03-10 13:33:00 +0000
29+++ src/de/sub/goobi/forms/RegelsaetzeForm.java 2012-09-19 13:30:42 +0000
30@@ -22,18 +22,23 @@
31
32 package de.sub.goobi.forms;
33
34+import de.sub.goobi.beans.Regelsatz;
35+import de.sub.goobi.config.ConfigMain;
36+import de.sub.goobi.helper.Helper;
37+import de.sub.goobi.helper.exceptions.DAOException;
38+import de.sub.goobi.persistence.RegelsatzDAO;
39+
40 import dubious.sub.goobi.helper.Page;
41+
42+import java.io.File;
43+import java.io.FileNotFoundException;
44+
45 import org.apache.log4j.Logger;
46 import org.hibernate.Criteria;
47 import org.hibernate.HibernateException;
48 import org.hibernate.Session;
49 import org.hibernate.criterion.Order;
50
51-import de.sub.goobi.beans.Regelsatz;
52-import de.sub.goobi.persistence.RegelsatzDAO;
53-import de.sub.goobi.helper.Helper;
54-import de.sub.goobi.helper.exceptions.DAOException;
55-
56 public class RegelsaetzeForm extends BasisForm {
57 private static final long serialVersionUID = -445707928042517243L;
58 private Regelsatz myRegelsatz = new Regelsatz();
59@@ -47,18 +52,33 @@
60
61 public String Speichern() {
62 try {
63- dao.save(myRegelsatz);
64- return "RegelsaetzeAlle";
65- } catch (DAOException e) {
66+ if (hasValidRulesetFilePath(myRegelsatz, ConfigMain.getParameter("RegelsaetzeVerzeichnis"))) {
67+ dao.save(myRegelsatz);
68+ return "RegelsaetzeAlle";
69+ } else {
70+ Helper.setFehlerMeldung("regelsatzDateiNichtGefunden");
71+ }
72+ } catch (Exception e) {
73 Helper.setFehlerMeldung("fehlerNichtSpeicherbar", e.getMessage());
74 logger.error(e);
75- return "";
76 }
77+ return "";
78+ }
79+
80+ private boolean hasValidRulesetFilePath(Regelsatz r, String pathToRulesets) {
81+ File rulesetFile = new File(pathToRulesets + r.getDatei());
82+ return rulesetFile.exists();
83 }
84
85 public String Loeschen() {
86 try {
87- dao.remove(myRegelsatz);
88+ if (dao.hasAssignedProcesses(myRegelsatz)) {
89+ Helper.setFehlerMeldung("regelsatzNichtLoeschbar");
90+ return "";
91+ } else {
92+ dao.remove(myRegelsatz);
93+ }
94+
95 } catch (DAOException e) {
96 Helper.setFehlerMeldung("fehlerNichtLoeschbar", e.getMessage());
97 return "";
98
99=== modified file 'src/de/sub/goobi/persistence/RegelsatzDAO.java'
100--- src/de/sub/goobi/persistence/RegelsatzDAO.java 2012-03-28 12:22:36 +0000
101+++ src/de/sub/goobi/persistence/RegelsatzDAO.java 2012-09-19 13:30:42 +0000
102@@ -22,10 +22,13 @@
103
104 package de.sub.goobi.persistence;
105
106-import java.util.List;
107-
108 import de.sub.goobi.beans.Regelsatz;
109+import de.sub.goobi.helper.Helper;
110 import de.sub.goobi.helper.exceptions.DAOException;
111+import org.hibernate.Query;
112+import org.hibernate.StatelessSession;
113+
114+import java.util.List;
115
116 public class RegelsatzDAO extends BaseDAO {
117
118@@ -51,6 +54,25 @@
119 removeObj(t);
120 }
121
122+ /**
123+ * Check if a Ruleset is referenced by existing Processes.
124+ *
125+ * @param r Ruleset object to check for existing Processes referencing it.
126+ * @return True, if the given Ruleset is referenced by existing Processes, false otherwise.
127+ */
128+ public boolean hasAssignedProcesses(Regelsatz r) {
129+ StatelessSession newSession = Helper.getHibernateSession().getSessionFactory().openStatelessSession();
130+ Boolean result = false;
131+ try {
132+ Query q = newSession.createQuery("select count(*) from Prozess as p where p.regelsatz = :regelsatz");
133+ q.setEntity("regelsatz", r);
134+ result = ((Long) q.uniqueResult()) > 0;
135+ } finally {
136+ newSession.close();
137+ }
138+ return result;
139+ }
140+
141 public void remove(Integer id) throws DAOException {
142 removeObj(Regelsatz.class, id);
143 }

Subscribers

People subscribed via source and target branches

to all changes: