Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update auf Java 17 & Jakarta Namespace #391

Merged
merged 10 commits into from
Sep 20, 2024
Next Next commit
DAO & Criteria Klassen als deprecated markiert - ORM Mapper statt des…
…sen verwenden
ChristianHoesel committed Sep 13, 2024
commit 7b1f748744bbb9f4d71210166e8b41dcdc49725b
19 changes: 7 additions & 12 deletions src/main/java/com/bitctrl/modell/AbstractDAO.java
Original file line number Diff line number Diff line change
@@ -37,11 +37,10 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*
* @param <T>
* der Typ der Datenobjekte.
* @param <ID>
* der Schlüssel für die Datenobjekte.
* @param <T> der Typ der Datenobjekte.
* @param <ID> der Schlüssel für die Datenobjekte.
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public abstract class AbstractDAO<T, ID> implements DAO<T, ID> {

private final EventListenerList listenerList = new EventListenerList();
@@ -51,8 +50,7 @@ public abstract class AbstractDAO<T, ID> implements DAO<T, ID> {
private OrderDAOCriterion[] defaultOrder;

/**
* Initialisiert die DAO mit dem Typ der DAO-Elemente und deren
* Schlüsseltyp.
* Initialisiert die DAO mit dem Typ der DAO-Elemente und deren Schlüsseltyp.
*/
@SuppressWarnings("unchecked")
protected AbstractDAO() {
@@ -76,8 +74,7 @@ public OrderDAOCriterion[] getDefaultOrder() {
/**
* Legt die Defaultsortierung der Daten in der DAO fest.
*
* @param defaultOrder
* die Defaultsortierung der DAO-Daten.
* @param defaultOrder die Defaultsortierung der DAO-Daten.
*/
protected void setDefaultOrder(final OrderDAOCriterion... defaultOrder) {
this.defaultOrder = defaultOrder;
@@ -103,10 +100,8 @@ protected synchronized void fireDataChanged() {
* Benachrichtigt alle angemeldeten Listener über Datenänderungen. Muss nach
* einer Änderung der Daten der DAO aufgerufen werden.
*
* @param type
* der Typ der Aktualisierung.
* @param object
* das aktualisierte Objekt.
* @param type der Typ der Aktualisierung.
* @param object das aktualisierte Objekt.
*/
protected synchronized void fireDataChanged(final DAOEvent.Type type, final Object object) {
DAOEvent e;
20 changes: 9 additions & 11 deletions src/main/java/com/bitctrl/modell/AbstractDAOFactory.java
Original file line number Diff line number Diff line change
@@ -34,16 +34,17 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public abstract class AbstractDAOFactory implements DAOFactory {

private final Map<Class<?>, DAO<?, ?>> daoCache = new HashMap<Class<?>, DAO<?, ?>>();

/**
* {@inheritDoc}
*
* Gibt falls möglich die gesuchte DAO aus dem Cache zurück. Falls die
* gesuchte DAO noch nicht im Cache vorliegt, wird sie mit
* {@link #doFindDAO(Class)} bestimmt.
* Gibt falls möglich die gesuchte DAO aus dem Cache zurück. Falls die gesuchte
* DAO noch nicht im Cache vorliegt, wird sie mit {@link #doFindDAO(Class)}
* bestimmt.
*
* @see #doFindDAO(Class)
*/
@@ -58,21 +59,18 @@ public abstract class AbstractDAOFactory implements DAOFactory {
/**
* Wird von {@link #findDAO(Class)} aus deligiert.
*
* @param <T>
* der Typ der DAO.
* @param type
* die Typklasse der DAO-Objekte.
* @return die DAO zum Typ oder {@code null}, wenn keine passende DAO
* gefunden werden konnte.
* @param <T> der Typ der DAO.
* @param type die Typklasse der DAO-Objekte.
* @return die DAO zum Typ oder {@code null}, wenn keine passende DAO gefunden
* werden konnte.
* @see #findDAO(Class)
*/
protected abstract <T> DAO<T, ?> doFindDAO(Class<T> type);

/**
* {@inheritDoc}
*
* Prüft ob {@link #findDAO(Class)} einen Wert ungleich {@code null}
* zurückgibt.
* Prüft ob {@link #findDAO(Class)} einen Wert ungleich {@code null} zurückgibt.
*/
public boolean isDataObject(final Object object) {
return findDAO(object.getClass()) != null;
10 changes: 4 additions & 6 deletions src/main/java/com/bitctrl/modell/AbstractTicketDAO.java
Original file line number Diff line number Diff line change
@@ -31,11 +31,10 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*
* @param <T>
* der Typ der Datenobjekte.
* @param <ID>
* der Schlüssel für die Datenobjekte.
* @param <T> der Typ der Datenobjekte.
* @param <ID> der Schlüssel für die Datenobjekte.
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public abstract class AbstractTicketDAO<T, ID> extends AbstractDAO<T, ID> implements TicketDAO<T, ID> {

private DAOTicket ticket;
@@ -50,8 +49,7 @@ public DAOTicket getTicket() {
* <em>Hinweis:</em> Das Ticket kann nur einmal gesetzt und dann nicht mehr
* verändert werden.
*
* @param ticket
* das Ticket, welches die DAO verwendet soll.
* @param ticket das Ticket, welches die DAO verwendet soll.
*/
public void setTicket(final DAOTicket ticket) {
if (this.ticket != null) {
Original file line number Diff line number Diff line change
@@ -31,8 +31,8 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
public abstract class AbstractTicketDAOFactory extends AbstractDAOFactory
implements TicketDAOFactory {
@Deprecated(since = "3.0.0", forRemoval = true)
public abstract class AbstractTicketDAOFactory extends AbstractDAOFactory implements TicketDAOFactory {

private DAOTicket ticket;

@@ -46,8 +46,7 @@ public DAOTicket getTicket() {
* <em>Hinweis:</em> Das Ticket kann nur einmal gesetzt und dann nicht mehr
* verändert werden.
*
* @param ticket
* das Ticket, welches die Factory verwendet soll.
* @param ticket das Ticket, welches die Factory verwendet soll.
*/
public void setTicket(final DAOTicket ticket) {
if (this.ticket != null) {
89 changes: 35 additions & 54 deletions src/main/java/com/bitctrl/modell/DAO.java
Original file line number Diff line number Diff line change
@@ -38,11 +38,10 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*
* @param <T>
* der Typ der Datenobjekte.
* @param <ID>
* der Schlüssel für die Datenobjekte.
* @param <T> der Typ der Datenobjekte.
* @param <ID> der Schlüssel für die Datenobjekte.
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface DAO<T, ID> {

/**
@@ -63,120 +62,102 @@ public interface DAO<T, ID> {
* Registriert einen Listener, der über Änderungen am DAO informiert werden
* möchte.
*
* @param l
* ein DAO-Listener.
* @param l ein DAO-Listener.
*/
void addDAOListener(DAOListener l);

/**
* Deregistiert einen Listener.
*
* @param l
* ein DAO-Listener.
* @param l ein DAO-Listener.
*/
void removeDAOListener(DAOListener l);

/**
* Ruft alle Objekt von der Datenquelle ab.
*
* @return die Liste der vorhandenen Objekte.
* @param criteria
* die DAO Kriterien, darf nicht {@code null} sein.
* @throws DAOException
* bei einem Fehler.
* @param criteria die DAO Kriterien, darf nicht {@code null} sein.
* @throws DAOException bei einem Fehler.
*/
List<T> retrieve(DAOCriterion... criteria) throws DAOException;

/**
* Fügt der Datenquelle ein Objekt hinzu.
* <p>
* <em>Hinweis:</em> Die Datenquelle kann das Objekt beim Hinzufügen ändern,
* z.&nbsp;B. die Id ausfüllen. Deshalb darf nach dem Hinzufügen nicht mit
* dem übergebenen Objekt weitergearbeitet werden, sondern es muss das
* z.&nbsp;B. die Id ausfüllen. Deshalb darf nach dem Hinzufügen nicht mit dem
* übergebenen Objekt weitergearbeitet werden, sondern es muss das
* zurückgegebene Objekt weiterverwendet werden.
*
* @param object
* ein Objekt mit Schlüssel.
* @param object ein Objekt mit Schlüssel.
* @return das hinzugefügte Objekt.
* @throws DAOException
* bei einem Fehler.
* @throws DAOException bei einem Fehler.
*/
T add(T object) throws DAOException;

/**
* Aktualisiert ein vorhandenes Objekt der Datenquelle.
*
* @param object
* ein Objekt mit Schlüssel.
* @throws DAOException
* bei einem Fehler.
* @param object ein Objekt mit Schlüssel.
* @throws DAOException bei einem Fehler.
*/
void update(T object) throws DAOException;

/**
* Aktualisiert ein vorhandenes Objekt der Datenquelle. Zweite Objectinstanz
* in der Session darf existieren
* Aktualisiert ein vorhandenes Objekt der Datenquelle. Zweite Objectinstanz in
* der Session darf existieren
*
* @param object
* ein Objekt mit Schlüssel.
* @throws DAOException
* bei einem Fehler.
* @param object ein Objekt mit Schlüssel.
* @throws DAOException bei einem Fehler.
*/
void merge(T object) throws DAOException;

/**
* Löscht das angegebene Objekt aus der Datenquelle. Das betroffene Objekt
* wird anhand seines Schlüssel identifiziert.
* Löscht das angegebene Objekt aus der Datenquelle. Das betroffene Objekt wird
* anhand seines Schlüssel identifiziert.
*
* @param object
* ein Objekt mit Schlüssel.
* @throws DAOException
* bei einem Fehler.
* @param object ein Objekt mit Schlüssel.
* @throws DAOException bei einem Fehler.
*/
void delete(T object) throws DAOException;

/**
* Sucht das Objekt, welches zu dem angegebenen Schlüssel passt.
*
* @param key
* ein Schlüssel.
* @param key ein Schlüssel.
* @return das Objekt auf das der Schlüssel passt.
* @throws DAOException
* bei einem Fehler.
* @throws DAOException bei einem Fehler.
*/
T findById(ID key) throws DAOException;

/**
* Gibt die erwartete Anzahl Datenobjekte zurück. Wird kein Criteria
* angegeben, wird die Gesamtanzahl zurückgegeben.
* Gibt die erwartete Anzahl Datenobjekte zurück. Wird kein Criteria angegeben,
* wird die Gesamtanzahl zurückgegeben.
*
* @param criteria
* beliebige DAO-Kriterien.
* @param criteria beliebige DAO-Kriterien.
* @return die Anzahl gemäß der übergebenen Kriterien.
* @throws DAOException
* bei einem Fehler.
* @throws DAOException bei einem Fehler.
*/
long count(DAOCriterion... criteria) throws DAOException;

/**
* Gibt die Standardsortierung der Datensätze zurück. Kann leer sein, wenn
* es keine sinnvolle Sortierung gibt.
* Gibt die Standardsortierung der Datensätze zurück. Kann leer sein, wenn es
* keine sinnvolle Sortierung gibt.
*
* @return die Standardsortierung oder ein leeres Array. Niemals
* <code>null</code>.
*/
OrderDAOCriterion[] getDefaultOrder();

/**
* Konvertiert die uebergebenen {@link DAOCriterion}s in ein Hibernate-
* Criteria Objekt.
* Konvertiert die uebergebenen {@link DAOCriterion}s in ein Hibernate- Criteria
* Objekt.
*
* @param isCount
* <code>true</code> wenn es sich bei der Abfrage um ein
* {@link #count(DAOCriterion...)} handelt, sonst
* <code>false</code>.
* @param daoCriterias
* Die {@link DAOCriterion}s.
* @param isCount <code>true</code> wenn es sich bei der Abfrage um ein
* {@link #count(DAOCriterion...)} handelt, sonst
* <code>false</code>.
* @param daoCriterias Die {@link DAOCriterion}s.
* @return Das Hibernate-Criteria Object.
*/

33 changes: 14 additions & 19 deletions src/main/java/com/bitctrl/modell/DAOEvent.java
Original file line number Diff line number Diff line change
@@ -33,6 +33,7 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class DAOEvent extends EventObject {

private static final long serialVersionUID = 1;
@@ -50,9 +51,9 @@ public static enum Type {
Delete,

/**
* Unbekannte Änderung. Dieser Typ kann verwendet werden, wenn eine DAO
* die Aktualisierung nicht unterscheiden kann, z.&nbsp;B. wenn sich
* alle Daten der Quelle geändert haben.
* Unbekannte Änderung. Dieser Typ kann verwendet werden, wenn eine DAO die
* Aktualisierung nicht unterscheiden kann, z.&nbsp;B. wenn sich alle Daten der
* Quelle geändert haben.
*/
Unknown;

@@ -64,14 +65,11 @@ public static enum Type {
/**
* Erzeugt ein neues Event.
*
* @param source
* die Quelle des Events, in der Regel eine DAO.
* @param type
* der Typ des Events.
* @param object
* das aktualiserte Objekt.
* @deprecated Der Parameter <code>source</code> hat den falschen Typ,
* besser den anderen Konstruktor verwenden!!
* @param source die Quelle des Events, in der Regel eine DAO.
* @param type der Typ des Events.
* @param object das aktualiserte Objekt.
* @deprecated Der Parameter <code>source</code> hat den falschen Typ, besser
* den anderen Konstruktor verwenden!!
*/
@Deprecated
public DAOEvent(final Object source, final Type type, final Object object) {
@@ -87,12 +85,9 @@ public DAOEvent(final Object source, final Type type, final Object object) {
/**
* Erzeugt ein neues Event.
*
* @param source
* die Quelle des Events, in der Regel eine DAO.
* @param type
* der Typ des Events.
* @param object
* das aktualiserte Objekt.
* @param source die Quelle des Events, in der Regel eine DAO.
* @param type der Typ des Events.
* @param object das aktualiserte Objekt.
*/
public DAOEvent(final DAO<?, ?> source, final Type type, final Object object) {
super(source);
@@ -119,8 +114,8 @@ public Type getType() {
}

/**
* Gibt das aktualisierte Objekt zurück. Für den Typ {@link Type#Unknown}
* kann der Rückgabewert {@code null} sein.
* Gibt das aktualisierte Objekt zurück. Für den Typ {@link Type#Unknown} kann
* der Rückgabewert {@code null} sein.
*
* @return das aktualisierte Objekt.
*/
13 changes: 5 additions & 8 deletions src/main/java/com/bitctrl/modell/DAOException.java
Original file line number Diff line number Diff line change
@@ -33,6 +33,7 @@
*
* @author BitCtrl Systems GmbH, Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class DAOException extends Exception {

private static final long serialVersionUID = 1L;
@@ -47,8 +48,7 @@ public DAOException() {
/**
* Initialisiert die Exception.
*
* @param message
* ein Meldungstext.
* @param message ein Meldungstext.
*/
public DAOException(final String message) {
super(message);
@@ -57,8 +57,7 @@ public DAOException(final String message) {
/**
* Initialisiert die Exception.
*
* @param cause
* der Grund für die Exception.
* @param cause der Grund für die Exception.
*/
public DAOException(final Throwable cause) {
super(cause);
@@ -67,10 +66,8 @@ public DAOException(final Throwable cause) {
/**
* Initialisiert die Exception.
*
* @param message
* ein Meldungstext.
* @param cause
* der Grund für die Exception.
* @param message ein Meldungstext.
* @param cause der Grund für die Exception.
*/
public DAOException(final String message, final Throwable cause) {
super(message, cause);
14 changes: 6 additions & 8 deletions src/main/java/com/bitctrl/modell/DAOFactory.java
Original file line number Diff line number Diff line change
@@ -31,25 +31,23 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface DAOFactory {

/**
* Sucht anhand der Klasse die dazugehörige DAO.
*
* @param <T>
* der Typ der DAO.
* @param type
* die Typklasse der DAO-Objekte.
* @return die DAO zum Typ oder {@code null}, wenn keine passende DAO
* gefunden werden konnte.
* @param <T> der Typ der DAO.
* @param type die Typklasse der DAO-Objekte.
* @return die DAO zum Typ oder {@code null}, wenn keine passende DAO gefunden
* werden konnte.
*/
<T> DAO<T, ?> findDAO(Class<T> type);

/**
* Prüft ob zu einem Objekt eine DAO existiert.
*
* @param object
* ein beliebiges Objekt.
* @param object ein beliebiges Objekt.
* @return {@code true}, wenn es zu dem Objekt eine DAO gibt.
*/
boolean isDataObject(Object object);
4 changes: 2 additions & 2 deletions src/main/java/com/bitctrl/modell/DAOListener.java
Original file line number Diff line number Diff line change
@@ -33,13 +33,13 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface DAOListener extends EventListener {

/**
* Wird aufgerufen, wenn sich die Daten eines DAO geändert haben.
*
* @param e
* das eingetroffene Event.
* @param e das eingetroffene Event.
*/
void dataChanged(DAOEvent e);

32 changes: 12 additions & 20 deletions src/main/java/com/bitctrl/modell/DAOTicket.java
Original file line number Diff line number Diff line change
@@ -33,11 +33,12 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface DAOTicket {

/**
* Gibt die DAO-Factory zurück, die exklusiv für dieses Ticket verwendet
* werden muss.
* Gibt die DAO-Factory zurück, die exklusiv für dieses Ticket verwendet werden
* muss.
*
* @return die DAO-Factory für dieses Ticket.
*/
@@ -46,24 +47,19 @@ public interface DAOTicket {
/**
* Import ein Objekt, welches in einem anderen Ticket angelegt wurde.
*
* @param object
* ein "fremdes" Objekt.
* @throws DAOException
* bei einem Fehler.
* @param object ein "fremdes" Objekt.
* @throws DAOException bei einem Fehler.
*/
void importFromOtherTicket(final Object object) throws DAOException;

/**
* Sucht das übergebene Objekt in der Session des Tickets. Der Zustand des
* übergebenen Objekts wird dann in das der Ticketsession kopiert.
*
* @param <T>
* der Typ des Objekts um Rückgabewert anzupassen. *
* @param object
* ein Objekt.
* @param <T> der Typ des Objekts um Rückgabewert anzupassen. *
* @param object ein Objekt.
* @return das Objekt auf das der Schlüssel passt.
* @throws DAOException
* bei einem Fehler.
* @throws DAOException bei einem Fehler.
*/
<T> T merge(final T object) throws DAOException;

@@ -83,19 +79,16 @@ public interface DAOTicket {
* Startet eine neue Transaktion. Alle nachfolgenden Operationen werden in
* dieser Transaktion ausgeführt.
*
* @throws DAOException
* bei einem Fehler beim Anlegend er Transaktion.
* @throws DAOException bei einem Fehler beim Anlegend er Transaktion.
* @see #commitTransaction()
* @see #rollbackTransaction()
*/
void beginTransaction() throws DAOException;

/**
* Beendet die aktuelle Transaktion und schreibt alle gepufferten
* Operationen.
* Beendet die aktuelle Transaktion und schreibt alle gepufferten Operationen.
*
* @throws DAOException
* bei einem Fehler beim Ausführen der Transaktion.
* @throws DAOException bei einem Fehler beim Ausführen der Transaktion.
* @see #beginTransaction()
* @see #rollbackTransaction()
*/
@@ -104,8 +97,7 @@ public interface DAOTicket {
/**
* Führt ein Rollback auf der aktuellen Transaktion aus.
*
* @throws DAOException
* bei einem Fehler beim Rollback der Transaktion
* @throws DAOException bei einem Fehler beim Rollback der Transaktion
* @see #beginTransaction()
* @see #commitTransaction()
*/
12 changes: 5 additions & 7 deletions src/main/java/com/bitctrl/modell/TicketDAO.java
Original file line number Diff line number Diff line change
@@ -33,17 +33,15 @@
*
* @author BitCtrl Systems GmbH, krosse
*
* @param <T>
* der Typ der Datenobjekte.
* @param <ID>
* der Schlüssel für die Datenobjekte.
* @param <T> der Typ der Datenobjekte.
* @param <ID> der Schlüssel für die Datenobjekte.
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface TicketDAO<T, ID> extends DAO<T, ID> {

/**
* Gibt das Ticket zurück, welches diese DAO zur Sessionverwaltung
* verwendet. Das Ticket darf sich nach der Initialisierung nicht mehr
* ändern.
* Gibt das Ticket zurück, welches diese DAO zur Sessionverwaltung verwendet.
* Das Ticket darf sich nach der Initialisierung nicht mehr ändern.
*
* @return das Ticket dieser DAO.
*/
5 changes: 3 additions & 2 deletions src/main/java/com/bitctrl/modell/TicketDAOFactory.java
Original file line number Diff line number Diff line change
@@ -31,11 +31,12 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface TicketDAOFactory extends DAOFactory {

/**
* Gibt das Ticket zurück, welches die Factory den von ihr erzeugten DAOs
* mit gibt.
* Gibt das Ticket zurück, welches die Factory den von ihr erzeugten DAOs mit
* gibt.
*
* @return das Ticket, welches die Factory verwendet.
*/
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@
*
* @author BitCtrl Systems GmbH, krosse
*/
@Deprecated(since = "3.0.0", forRemoval = true)
abstract class BaseDAOCriteriaContainer implements DAOCriteriaContainer {

private final Set<DAOCriterion> criterias = new HashSet<DAOCriterion>();
Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@
*
* @author BitCtrl Systems GmbH, Krosse
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class ComparisonDAOCriterion implements DAOCriterion {

/**
@@ -70,8 +71,7 @@ public enum RelationalTypes {
/**
* case insensitive like.
*
* TODOo Eventuell als eigenes Kriterium definieren, da nur für String
* sinnvoll.
* TODOo Eventuell als eigenes Kriterium definieren, da nur für String sinnvoll.
*/
ILIKE,

@@ -85,54 +85,42 @@ public enum RelationalTypes {
/**
* Konstruktor.
*
* @param propertyName
* Propertyname der Bean
* @param type
* Typ des Vergleichsoperators
* @param values
* Werte fuer Vergleichsoperation
* @param propertyName Propertyname der Bean
* @param type Typ des Vergleichsoperators
* @param values Werte fuer Vergleichsoperation
*/
public ComparisonDAOCriterion(final String propertyName,
final RelationalTypes type, final Object... values) {
public ComparisonDAOCriterion(final String propertyName, final RelationalTypes type, final Object... values) {
this(propertyName, type, false, values);
}

/**
* Konstruktor.
*
* @param propertyName
* Propertyname der Bean.
* @param type
* Typ des Vergleichsoperators.
* @param not
* Wenn der Ausdruck verneint werden soll.
* @param values
* Werte fuer Vergleichsoperation.
* @param propertyName Propertyname der Bean.
* @param type Typ des Vergleichsoperators.
* @param not Wenn der Ausdruck verneint werden soll.
* @param values Werte fuer Vergleichsoperation.
*
* XXX: Ursprünglich war der Datentyp boolean in dem Konstruktor
* verwendet, aber wegen Bug
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=384562 war der
* Konstruktor für den Eclipse Compiler nicht mehr eindeutig. Als
* Workaround verwenden wir einfach die Klasse Boolean statt
* boolean.
* XXX: Ursprünglich war der Datentyp boolean in dem
* Konstruktor verwendet, aber wegen Bug
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=384562 war
* der Konstruktor für den Eclipse Compiler nicht mehr
* eindeutig. Als Workaround verwenden wir einfach die
* Klasse Boolean statt boolean.
*/
public ComparisonDAOCriterion(final String propertyName,
final RelationalTypes type, final Boolean not,
public ComparisonDAOCriterion(final String propertyName, final RelationalTypes type, final Boolean not,
final Object... values) {
this.propertyName = propertyName;
this.type = type;
this.values = values;
this.not = not;

if (this.values == null || type != RelationalTypes.IN
&& this.values.length == 0) {
throw new IllegalArgumentException(
"Values parameter can not be null or empty");
if (this.values == null || type != RelationalTypes.IN && this.values.length == 0) {
throw new IllegalArgumentException("Values parameter can not be null or empty");
}

if (this.type == RelationalTypes.BETWEEN && this.values.length != 2) {
throw new IllegalArgumentException(
"Values parameter need two objects for type between");
throw new IllegalArgumentException("Values parameter need two objects for type between");
}
}

@@ -166,8 +154,8 @@ public Object[] getValues() {
/**
* Gibt an ob dieser Ausdruck verneitn werden soll.
*
* @return <code>true</code> wenn dieser Ausdruck verneint werden soll,
* sonst <code>false</code>.
* @return <code>true</code> wenn dieser Ausdruck verneint werden soll, sonst
* <code>false</code>.
*/
public boolean isNot() {
return not;
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@
*
* @author BitCtrl Systems GmbH, krosse
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class ConjunctionDAOCriteriaContainer extends BaseDAOCriteriaContainer {

public ConjunctionDAOCriteriaContainer(final DAOCriterion... criterion) {
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
*
* @author BitCtrl Systems GmbH, krosse
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface DAOCriteriaContainer extends DAOCriterion {

/**
@@ -19,16 +20,14 @@ public interface DAOCriteriaContainer extends DAOCriterion {
/**
* Hinzufügen eines neuen DAOCriterion
*
* @param criterion
* neues {@link DAOCriterion}
* @param criterion neues {@link DAOCriterion}
*/
public void addDAOCriterion(DAOCriterion criterion);

/**
* Entfernen des angegebenen {@link DAOCriterion}
*
* @param criterion
* zu entferndes Element
* @param criterion zu entferndes Element
*/
public void removeDAOCriterion(DAOCriterion criterion);
}
Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@
*
* @author BitCtrl Systems GmbH, Goerlitz
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface DAOCriterion {

// tagging interface
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@
*
* @author BitCtrl Systems GmbH, krosse
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class DisjunctionDAOCriteriaContainer extends BaseDAOCriteriaContainer {

public DisjunctionDAOCriteriaContainer(final DAOCriterion... criterion) {
Original file line number Diff line number Diff line change
@@ -31,15 +31,15 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class ExampleDAOCriterion implements DAOCriterion {

private final Object example;

/**
* Initialisiert das Kriterium mit dem Beispielobjekt.
*
* @param example
* ein Beispielobjekt.
* @param example ein Beispielobjekt.
*/
public ExampleDAOCriterion(final Object example) {
this.example = example;
35 changes: 15 additions & 20 deletions src/main/java/com/bitctrl/modell/criteria/LimitDAOCriterion.java
Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@
*
* @author BitCtrl Systems GmbH, Görlitz
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class LimitDAOCriterion implements DAOCriterion {

private final long offset;
@@ -39,43 +40,39 @@ public class LimitDAOCriterion implements DAOCriterion {
/**
* Initialisiert das Criteria mit dem Offset und der Anzahl Datenobjekte.
*
* @param offset
* der Offset (inklusive) ab dem die Ergebnisse geliefert werden
* sollen.
* @param limit
* die maximale Anzahl an Ergebnissen.
* @param offset der Offset (inklusive) ab dem die Ergebnisse geliefert werden
* sollen.
* @param limit die maximale Anzahl an Ergebnissen.
*/
public LimitDAOCriterion(final long offset, final int limit) {
this.offset = offset;
this.limit = limit;
}

/**
* Initialisiert das Criteria mit dem Offset und der maximal möglichen
* Anzahl Datenobjekte.
* Initialisiert das Criteria mit dem Offset und der maximal möglichen Anzahl
* Datenobjekte.
*
* @param offset
* der Offset (inklusive) ab dem die Ergebnisse geliefert werden
* sollen.
* @param offset der Offset (inklusive) ab dem die Ergebnisse geliefert werden
* sollen.
*/
public LimitDAOCriterion(final long offset) {
this(offset, Integer.MAX_VALUE);
}

/**
* Initialisiert das Criteria mit dem Offset des ersten Elements und der
* Anzahl Datenobjekte.
* Initialisiert das Criteria mit dem Offset des ersten Elements und der Anzahl
* Datenobjekte.
*
* @param limit
* die maximale Anzahl an Ergebnissen.
* @param limit die maximale Anzahl an Ergebnissen.
*/
public LimitDAOCriterion(final int limit) {
this(0, limit);
}

/**
* Liefert den Offset, ab dem Datenobjekte geliefert werden sollen. Das
* Element, welches der Offset addressiert, ist im Ergebnis enthalten.
* Liefert den Offset, ab dem Datenobjekte geliefert werden sollen. Das Element,
* welches der Offset addressiert, ist im Ergebnis enthalten.
*
* @return der Offset.
*/
@@ -84,8 +81,7 @@ public long getOffset() {
}

/**
* Liefert das Limit, also die maximale Anzahl von Datenobjekten im
* Ergebnis.
* Liefert das Limit, also die maximale Anzahl von Datenobjekten im Ergebnis.
*
* @return das Limit.
*/
@@ -95,8 +91,7 @@ public int getLimit() {

@Override
public String toString() {
return getClass().getName() + "[offset=" + offset + ", limit=" + limit
+ "]";
return getClass().getName() + "[offset=" + offset + ", limit=" + limit + "]";
}

}
Original file line number Diff line number Diff line change
@@ -30,16 +30,16 @@
*
* @author BitCtrl Systems GmbH, Görlitz
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class NullDAOCriterion implements DAOCriterion {

private final String propertyName;

/**
* Erstellt ein Kriterium dass einen auf {@code null} zu pruefenden
* Spaltennamen repraesentiert.
* Erstellt ein Kriterium dass einen auf {@code null} zu pruefenden Spaltennamen
* repraesentiert.
*
* @param property
* die auf {@code null} zu prüfende Property.
* @param property die auf {@code null} zu prüfende Property.
*/
public NullDAOCriterion(final String property) {
propertyName = property;
15 changes: 6 additions & 9 deletions src/main/java/com/bitctrl/modell/criteria/OrderDAOCriterion.java
Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@
*
* @author BitCtrl Systems GmbH, Goerlitz
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class OrderDAOCriterion implements DAOCriterion {

private final String propertyName;
@@ -39,8 +40,7 @@ public class OrderDAOCriterion implements DAOCriterion {
/**
* Erstellt eine aufsteigende Sortierung für Ergebnisse einer DAO.
*
* @param propertyName
* der Spaltenname ueber den sortiert werden soll.
* @param propertyName der Spaltenname ueber den sortiert werden soll.
*/
public OrderDAOCriterion(final String propertyName) {
this(propertyName, true);
@@ -49,11 +49,9 @@ public OrderDAOCriterion(final String propertyName) {
/**
* Erstellt eine Sortierung für Ergebnisse einer DAO.
*
* @param propertyName
* der Spaltenname ueber den sortiert werden soll.
* @param ascending
* <code>true</code>, wenn aufsteigend sortiert werden soll,
* sonst <code>false</code>.
* @param propertyName der Spaltenname ueber den sortiert werden soll.
* @param ascending <code>true</code>, wenn aufsteigend sortiert werden soll,
* sonst <code>false</code>.
*/
public OrderDAOCriterion(final String propertyName, final boolean ascending) {
this.propertyName = propertyName;
@@ -81,8 +79,7 @@ public boolean isAscending() {

@Override
public String toString() {
return getClass().getName() + "[propertyName=" + propertyName
+ ", ascending=" + ascending + "]";
return getClass().getName() + "[propertyName=" + propertyName + ", ascending=" + ascending + "]";
}

}
2 changes: 1 addition & 1 deletion src/main/java/com/bitctrl/modell/package-info.java
Original file line number Diff line number Diff line change
@@ -32,5 +32,5 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
package com.bitctrl.modell;

13 changes: 5 additions & 8 deletions src/main/java/com/bitctrl/modell/util/DAOElementContainer.java
Original file line number Diff line number Diff line change
@@ -37,6 +37,7 @@
*
* @author BitCtrl Systems GmbH, Görlitz
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public interface DAOElementContainer {

/**
@@ -51,17 +52,14 @@ public interface DAOElementContainer {
* Liefert die Anzahl der Blätterelemente.
*
* @return Die Anzahl der Blätterelemente.
* @throws DAOException
* Bei einem Fehler.
* @throws DAOException Bei einem Fehler.
*/
int getLeafElementsCount() throws DAOException;

/**
* Liefert alle Kriterien zur Ermittlung des Kindelements am übergebenen
* Index.
* Liefert alle Kriterien zur Ermittlung des Kindelements am übergebenen Index.
*
* @param index
* Der Index.
* @param index Der Index.
*
* @return Die Kriterien.
*/
@@ -72,8 +70,7 @@ public interface DAOElementContainer {
* Sub-Container sein.
*
* @return Die Elemente dieses Containers
* @throws DAOException
* Bei einem Fehler.
* @throws DAOException Bei einem Fehler.
*/
List<?> getElements() throws DAOException;
}
49 changes: 20 additions & 29 deletions src/main/java/com/bitctrl/modell/util/DAOPage.java
Original file line number Diff line number Diff line change
@@ -44,6 +44,7 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class DAOPage implements DAOElementContainer, Comparable<DAOPage> {

/** Die DAO bei der Daten bei Bedarf abgerufen werden. */
@@ -67,27 +68,20 @@ public class DAOPage implements DAOElementContainer, Comparable<DAOPage> {
private final boolean showPageName;

/**
* Initialisiert die Seite mit den notwendigen Informationen zum späteren
* Abruf der Daten.
* Initialisiert die Seite mit den notwendigen Informationen zum späteren Abruf
* der Daten.
*
* @param dao
* die DAO bei der Daten bei Bedarf abgerufen werden.
* @param count
* die Gesamtanzahl der Elemente.
* @param pageSize
* die maximale Anzahl der Elemente pro Seite.
* @param showPageName
* Flag, ob {@link #toString()} nur den Bereich oder auch den
* Namen der Page zurückgeben soll. Der Name der Page wird anhand
* des Typs bzw. der BeanInfo bestimmt.
* @param from
* der Index ab dem Daten abgerufen werden sollen (inklusive, ab
* 0).
* @param to
* der Index bis zu dem Daten abgerufen werden sollen (exklusive,
* ab 0).
* @param criteria
* die Kritierien für den Datenabruf.
* @param dao die DAO bei der Daten bei Bedarf abgerufen werden.
* @param count die Gesamtanzahl der Elemente.
* @param pageSize die maximale Anzahl der Elemente pro Seite.
* @param showPageName Flag, ob {@link #toString()} nur den Bereich oder auch
* den Namen der Page zurückgeben soll. Der Name der Page
* wird anhand des Typs bzw. der BeanInfo bestimmt.
* @param from der Index ab dem Daten abgerufen werden sollen
* (inklusive, ab 0).
* @param to der Index bis zu dem Daten abgerufen werden sollen
* (exklusive, ab 0).
* @param criteria die Kritierien für den Datenabruf.
*/
protected DAOPage(final DAO<?, ?> dao, final long count, final int pageSize, final boolean showPageName,
final long from, final long to, final DAOCriterion... criteria) {
@@ -110,9 +104,9 @@ protected DAOPage(final DAO<?, ?> dao, final long count, final int pageSize, fin
}

/**
* Flag, ob diese Page Datenelemente oder weitere Pages als Kinder besitzt.
* Eine Subpage liefert mit {@link #getElements()} weitere {@link DAOPage}
* Objekte zurück. Ein normale Page liefert die Datenelemente.
* Flag, ob diese Page Datenelemente oder weitere Pages als Kinder besitzt. Eine
* Subpage liefert mit {@link #getElements()} weitere {@link DAOPage} Objekte
* zurück. Ein normale Page liefert die Datenelemente.
*
* @return {@code true}, wenn die Page eine Subpage ist.
*/
@@ -127,8 +121,7 @@ public boolean isSubpage() {
* zurück.
*
* @return die Daten oder Subpages.
* @throws DAOException
* bei einem Fehler.
* @throws DAOException bei einem Fehler.
*/
public List<?> getElements() throws DAOException {
if (isSubpage()) {
@@ -171,8 +164,7 @@ public List<?> getElements() throws DAOException {
* eingebauten weiteren {@link DAOPage}s.
*
* @return die Liste der ermittelten Elemente
* @throws DAOException
* die Elemente konnten nicht abgerufen werden
* @throws DAOException die Elemente konnten nicht abgerufen werden
*/
public List<?> getAllElements() throws DAOException {
// Kopie der Kriterien plus einmal Platz für Limitkriterium
@@ -251,8 +243,7 @@ public int hashCode() {
/**
* {@inheritDoc}
*
* Vergleicht gegen nur die Werte von {@code from} dieser und der anderen
* Page.
* Vergleicht gegen nur die Werte von {@code from} dieser und der anderen Page.
*/
public int compareTo(final DAOPage o) {
return Long.compare(from, o.from);
90 changes: 35 additions & 55 deletions src/main/java/com/bitctrl/modell/util/DAOPaging.java
Original file line number Diff line number Diff line change
@@ -41,86 +41,67 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public final class DAOPaging {

/**
* Erzeugt abhängig von der Anzahl der erwarteten Objekte beim Datenabruf
* ein Paging oder gibt die Liste der Datenobjekte direkt zurück.
* Erzeugt abhängig von der Anzahl der erwarteten Objekte beim Datenabruf ein
* Paging oder gibt die Liste der Datenobjekte direkt zurück.
* <p>
* Ist die Gesamtanzahl der gefundenen Objekte größer als die maximale
* Anzahl von Objekten pro Seite, werden die notwendigen Seiten zur Anzeige
* Ist die Gesamtanzahl der gefundenen Objekte größer als die maximale Anzahl
* von Objekten pro Seite, werden die notwendigen Seiten zur Anzeige
* zurückgegeben. Der Typ der Liste ist dann {@link DAOPage}.
* <p>
* Ist die Anzahl der erwarteten Datenelemente kleiner oder gleich der
* maximalen Anzahl Element pro Seite, werden die Datenelemente direkt als
* Liste zurückgegeben. Der Typ der Liste ist dann der Typ der Datenobjekte.
* Ist die Anzahl der erwarteten Datenelemente kleiner oder gleich der maximalen
* Anzahl Element pro Seite, werden die Datenelemente direkt als Liste
* zurückgegeben. Der Typ der Liste ist dann der Typ der Datenobjekte.
*
* @param dao
* die DAO, von der die Daten abgerufen werden sollen.
* @param pageSize
* die maximale Anzahl der Elemente pro Seite.
* @param showPageName
* Flag, ob {@link #toString()} nur den Bereich oder auch den
* Namen der Page zurückgeben soll. Der Name der Page wird anhand
* des Typs bzw. der BeanInfo bestimmt.
* @param createSubpages
* Flag, ob das Anlegen von Subpages bei sehr großen Listen
* erlaubt ist.
* @param criteria
* mögliche Kriterien.
* @param dao die DAO, von der die Daten abgerufen werden sollen.
* @param pageSize die maximale Anzahl der Elemente pro Seite.
* @param showPageName Flag, ob {@link #toString()} nur den Bereich oder auch
* den Namen der Page zurückgeben soll. Der Name der Page
* wird anhand des Typs bzw. der BeanInfo bestimmt.
* @param createSubpages Flag, ob das Anlegen von Subpages bei sehr großen
* Listen erlaubt ist.
* @param criteria mögliche Kriterien.
* @return entweder die Liste der {@link DAOPage}s oder die Liste der
* Datenobjekte.
* @throws DAOException
* bei einem Fehler beim Datenabruf.
* @throws DAOException bei einem Fehler beim Datenabruf.
*/
public static List<?> getPagesOrElements(final DAO<?, ?> dao,
final int pageSize, final boolean showPageName,
final boolean createSubpages, final DAOCriterion... criteria)
throws DAOException {
public static List<?> getPagesOrElements(final DAO<?, ?> dao, final int pageSize, final boolean showPageName,
final boolean createSubpages, final DAOCriterion... criteria) throws DAOException {
if (dao.count(criteria) > pageSize) {
return getPages(dao, pageSize, showPageName, createSubpages,
criteria);
return getPages(dao, pageSize, showPageName, createSubpages, criteria);
}
return dao.retrieve(criteria);
}

/**
* Die Liste der benötigen Seiten zurück, um die Elemente der DAO
* anzuzeigen.
* Die Liste der benötigen Seiten zurück, um die Elemente der DAO anzuzeigen.
*
* @param dao
* die DAO, von der die Daten abgerufen werden sollen.
* @param pageSize
* die maximale Anzahl der Elemente pro Seite.
* @param showPageName
* Flag, ob {@link #toString()} nur den Bereich oder auch den
* Namen der Page zurückgeben soll. Der Name der Page wird anhand
* des Typs bzw. der BeanInfo bestimmt.
* @param createSubpages
* Flag, ob das Anlegen von Subpages bei sehr großen Listen
* erlaubt ist.
* @param criteria
* mögliche Kriterien.
* @param dao die DAO, von der die Daten abgerufen werden sollen.
* @param pageSize die maximale Anzahl der Elemente pro Seite.
* @param showPageName Flag, ob {@link #toString()} nur den Bereich oder auch
* den Namen der Page zurückgeben soll. Der Name der Page
* wird anhand des Typs bzw. der BeanInfo bestimmt.
* @param createSubpages Flag, ob das Anlegen von Subpages bei sehr großen
* Listen erlaubt ist.
* @param criteria mögliche Kriterien.
* @return die Seitenliste.
* @throws DAOException
* bei einem Fehler beim Datenabruf.
* @throws DAOException bei einem Fehler beim Datenabruf.
*/
@SuppressWarnings("unchecked")
public static List<DAOPage> getPages(final DAO<?, ?> dao,
final int pageSize, final boolean showPageName,
final boolean createSubpages, final DAOCriterion... criteria)
throws DAOException {
public static List<DAOPage> getPages(final DAO<?, ?> dao, final int pageSize, final boolean showPageName,
final boolean createSubpages, final DAOCriterion... criteria) throws DAOException {
if (pageSize <= 0) {
throw new IllegalArgumentException(
"Page size must be greater than 0.");
throw new IllegalArgumentException("Page size must be greater than 0.");
}

final List<DAOPage> pages = new ArrayList<DAOPage>();
final long count = dao.count(criteria);

if (pageSize < count && createSubpages) {
return (List<DAOPage>) new DAOPage(dao, count, pageSize,
showPageName, 0, count, criteria).getElements();
return (List<DAOPage>) new DAOPage(dao, count, pageSize, showPageName, 0, count, criteria).getElements();
}

// Keine Subpages anlegen
@@ -134,8 +115,7 @@ public static List<DAOPage> getPages(final DAO<?, ?> dao,
currentSize = (int) (count - offset);
}

pages.add(new DAOPage(dao, count, pageSize, showPageName, offset,
offset + currentSize, criteria));
pages.add(new DAOPage(dao, count, pageSize, showPageName, offset, offset + currentSize, criteria));
}

return pages;
37 changes: 13 additions & 24 deletions src/main/java/com/bitctrl/util/Triple.java
Original file line number Diff line number Diff line change
@@ -5,13 +5,11 @@
*
* @author BitCtrl Systems GmbH, schnepel
*
* @param <A>
* type of first object
* @param <B>
* type of second object
* @param <C>
* type of third object
* @param <A> type of first object
* @param <B> type of second object
* @param <C> type of third object
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class Triple<A, B, C> {
/**
* the first object
@@ -31,12 +29,9 @@ public class Triple<A, B, C> {
/**
* Constructs a Triple of objects of different types.
*
* @param a
* the first object
* @param b
* the second object
* @param c
* the third object
* @param a the first object
* @param b the second object
* @param c the third object
*/
public Triple(final A a, final B b, final C c) {
this.a = a;
@@ -47,18 +42,12 @@ public Triple(final A a, final B b, final C c) {
/**
* Constructs a Triple of objects of different types.
*
* @param <A>
* type of first object
* @param <B>
* type of second object
* @param <C>
* type of third object
* @param a
* the first object
* @param b
* the second object
* @param c
* the third object
* @param <A> type of first object
* @param <B> type of second object
* @param <C> type of third object
* @param a the first object
* @param b the second object
* @param c the third object
* @return das erzeugte Triple
*/
public static final <A, B, C> Triple<A, B, C> create(final A a, final B b, final C c) {
22 changes: 8 additions & 14 deletions src/main/java/com/bitctrl/util/Tupel.java
Original file line number Diff line number Diff line change
@@ -5,11 +5,10 @@
*
* @author BitCtrl Systems GmbH, Falko Schumann
*
* @param <S1>
* der Typ des ersten Elements.
* @param <S2>
* der Typ des zweiten Elements.
* @param <S1> der Typ des ersten Elements.
* @param <S2> der Typ des zweiten Elements.
*/
@Deprecated(since = "3.0.0", forRemoval = true)
public class Tupel<S1, S2> {

private S1 first;
@@ -25,10 +24,8 @@ public Tupel() {
/**
* Initialisierten die beiden Elemente.
*
* @param first
* das erste Element.
* @param second
* das zweite Element.
* @param first das erste Element.
* @param second das zweite Element.
*/
public Tupel(final S1 first, final S2 second) {
this.first = first;
@@ -59,10 +56,8 @@ public boolean equals(final Object obj) {
if (obj instanceof Tupel<?, ?>) {
final Tupel<?, ?> other = (Tupel<?, ?>) obj;
boolean equals = true;
equals &= first != null && first.equals(other.first)
|| first == other.first;
equals &= second != null && second.equals(other.second)
|| second == other.second;
equals &= first != null && first.equals(other.first) || first == other.first;
equals &= second != null && second.equals(other.second) || second == other.second;
return equals;
}
return false;
@@ -71,8 +66,7 @@ public boolean equals(final Object obj) {

@Override
public int hashCode() {
return (null != first ? first.hashCode() : 0)
^ (null != second ? second.hashCode() : 0);
return (null != first ? first.hashCode() : 0) ^ (null != second ? second.hashCode() : 0);
}

@Override