mirror of
https://github.com/ethauvin/rife2.git
synced 2025-05-01 19:08:12 -07:00
Generified some types
This commit is contained in:
parent
841cd0a9d1
commit
3743989b24
3 changed files with 47 additions and 46 deletions
|
@ -8,6 +8,7 @@ package rife.database.querymanagers.generic;
|
||||||
import rife.database.*;
|
import rife.database.*;
|
||||||
import rife.database.queries.*;
|
import rife.database.queries.*;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import rife.database.exceptions.DatabaseException;
|
import rife.database.exceptions.DatabaseException;
|
||||||
|
@ -28,7 +29,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
protected Method setPrimaryKeyMethod_ = null;
|
protected Method setPrimaryKeyMethod_ = null;
|
||||||
protected boolean sparseIdentifier_ = false;
|
protected boolean sparseIdentifier_ = false;
|
||||||
|
|
||||||
protected List<GenericQueryManagerListener> mListeners = null;
|
protected List<GenericQueryManagerListener<BeanType>> listeners_ = null;
|
||||||
|
|
||||||
public AbstractGenericQueryManager(Datasource datasource, Class<BeanType> beanClass, String primaryKey)
|
public AbstractGenericQueryManager(Datasource datasource, Class<BeanType> beanClass, String primaryKey)
|
||||||
throws DatabaseException {
|
throws DatabaseException {
|
||||||
|
@ -429,21 +430,21 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
protected Callbacks getCallbacks(BeanType bean) {
|
protected Callbacks<BeanType> getCallbacks(BeanType bean) {
|
||||||
if (null == bean) return null;
|
if (null == bean) return null;
|
||||||
|
|
||||||
Callbacks callbacks = null;
|
Callbacks<BeanType> callbacks = null;
|
||||||
if (bean instanceof CallbacksProvider) {
|
if (bean instanceof CallbacksProvider) {
|
||||||
callbacks = ((CallbacksProvider) bean).getCallbacks();
|
callbacks = ((CallbacksProvider<BeanType>) bean).getCallbacks();
|
||||||
} else if (bean instanceof Callbacks) {
|
} else if (bean instanceof Callbacks) {
|
||||||
callbacks = (Callbacks) bean;
|
callbacks = (Callbacks<BeanType>) bean;
|
||||||
}
|
}
|
||||||
return callbacks;
|
return callbacks;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int _update(final Update saveUpdate, final BeanType bean) {
|
protected int _update(final Update saveUpdate, final BeanType bean) {
|
||||||
// handle before callback
|
// handle before callback
|
||||||
Callbacks callbacks = getCallbacks(bean);
|
Callbacks<BeanType> callbacks = getCallbacks(bean);
|
||||||
if (callbacks != null &&
|
if (callbacks != null &&
|
||||||
!callbacks.beforeUpdate(bean)) {
|
!callbacks.beforeUpdate(bean)) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -464,14 +465,14 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
assert saveUpdate != null;
|
assert saveUpdate != null;
|
||||||
|
|
||||||
final int identifier_value = getIdentifierValue(bean);
|
final int identifier_value = getIdentifierValue(bean);
|
||||||
int result = (Integer) inTransaction(new DbTransactionUser() {
|
int result = (Integer) inTransaction(new DbTransactionUser<>() {
|
||||||
public Integer useTransaction()
|
public Integer useTransaction()
|
||||||
throws InnerClassException {
|
throws InnerClassException {
|
||||||
int result = identifier_value;
|
int result = identifier_value;
|
||||||
|
|
||||||
storeManyToOne(bean);
|
storeManyToOne(bean);
|
||||||
|
|
||||||
if (0 == executeUpdate(saveUpdate, new DbPreparedStatementHandler() {
|
if (0 == executeUpdate(saveUpdate, new DbPreparedStatementHandler<>() {
|
||||||
public void setParameters(final DbPreparedStatement statement) {
|
public void setParameters(final DbPreparedStatement statement) {
|
||||||
statement
|
statement
|
||||||
.setBean(bean);
|
.setBean(bean);
|
||||||
|
@ -499,7 +500,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
|
|
||||||
protected int _insert(final SequenceValue nextId, final Insert save, final BeanType bean) {
|
protected int _insert(final SequenceValue nextId, final Insert save, final BeanType bean) {
|
||||||
// handle before callback
|
// handle before callback
|
||||||
Callbacks callbacks = getCallbacks(bean);
|
Callbacks<BeanType> callbacks = getCallbacks(bean);
|
||||||
if (callbacks != null &&
|
if (callbacks != null &&
|
||||||
!callbacks.beforeInsert(bean)) {
|
!callbacks.beforeInsert(bean)) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -522,7 +523,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
|
|
||||||
int value = -1;
|
int value = -1;
|
||||||
|
|
||||||
value = (Integer) inTransaction(new DbTransactionUser() {
|
value = inTransaction(new DbTransactionUser<>() {
|
||||||
public Integer useTransaction()
|
public Integer useTransaction()
|
||||||
throws InnerClassException {
|
throws InnerClassException {
|
||||||
storeManyToOne(bean);
|
storeManyToOne(bean);
|
||||||
|
@ -533,7 +534,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
}
|
}
|
||||||
|
|
||||||
final int primary_key_id = result;
|
final int primary_key_id = result;
|
||||||
executeUpdate(save, new DbPreparedStatementHandler() {
|
executeUpdate(save, new DbPreparedStatementHandler<>() {
|
||||||
public void setParameters(final DbPreparedStatement statement) {
|
public void setParameters(final DbPreparedStatement statement) {
|
||||||
statement
|
statement
|
||||||
.setBean(bean)
|
.setBean(bean)
|
||||||
|
@ -793,7 +794,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
int value = -1;
|
int value = -1;
|
||||||
|
|
||||||
// handle before callback
|
// handle before callback
|
||||||
final Callbacks callbacks = getCallbacks(bean);
|
final Callbacks<BeanType> callbacks = getCallbacks(bean);
|
||||||
if (callbacks != null &&
|
if (callbacks != null &&
|
||||||
!callbacks.beforeSave(bean)) {
|
!callbacks.beforeSave(bean)) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -803,7 +804,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
final boolean[] is_cancelled = new boolean[]{false};
|
final boolean[] is_cancelled = new boolean[]{false};
|
||||||
|
|
||||||
// perform save
|
// perform save
|
||||||
value = (Integer) inTransaction(new DbTransactionUser() {
|
value = (Integer) inTransaction(new DbTransactionUser<>() {
|
||||||
public Integer useTransaction()
|
public Integer useTransaction()
|
||||||
throws InnerClassException {
|
throws InnerClassException {
|
||||||
int result = getIdentifierValue(bean);
|
int result = getIdentifierValue(bean);
|
||||||
|
@ -918,17 +919,17 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
assert delete != null;
|
assert delete != null;
|
||||||
|
|
||||||
// handle before callback
|
// handle before callback
|
||||||
Callbacks callbacks = null;
|
Callbacks<BeanType> callbacks = null;
|
||||||
if (CallbacksProvider.class.isAssignableFrom(baseClass_)) {
|
if (CallbacksProvider.class.isAssignableFrom(baseClass_)) {
|
||||||
try {
|
try {
|
||||||
callbacks = ((CallbacksProvider) baseClass_.newInstance()).getCallbacks();
|
callbacks = ((CallbacksProvider<BeanType>) baseClass_.getDeclaredConstructor().newInstance()).getCallbacks();
|
||||||
} catch (IllegalAccessException | InstantiationException e) {
|
} catch (IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException e) {
|
||||||
callbacks = null;
|
callbacks = null;
|
||||||
}
|
}
|
||||||
} else if (Callbacks.class.isAssignableFrom(baseClass_)) {
|
} else if (Callbacks.class.isAssignableFrom(baseClass_)) {
|
||||||
try {
|
try {
|
||||||
callbacks = (Callbacks) baseClass_.newInstance();
|
callbacks = (Callbacks<BeanType>) baseClass_.getDeclaredConstructor().newInstance();
|
||||||
} catch (IllegalAccessException | InstantiationException e) {
|
} catch (IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException e) {
|
||||||
callbacks = null;
|
callbacks = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -938,7 +939,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
}
|
}
|
||||||
|
|
||||||
// perform delete
|
// perform delete
|
||||||
Boolean result = inTransaction(new DbTransactionUser() {
|
Boolean result = inTransaction(new DbTransactionUser<>() {
|
||||||
public Boolean useTransaction()
|
public Boolean useTransaction()
|
||||||
throws InnerClassException {
|
throws InnerClassException {
|
||||||
// remove all many-to-one mappings for this object ID
|
// remove all many-to-one mappings for this object ID
|
||||||
|
@ -948,7 +949,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
deleteManyToMany(objectId);
|
deleteManyToMany(objectId);
|
||||||
|
|
||||||
// perform the actual deletion of the object from the database
|
// perform the actual deletion of the object from the database
|
||||||
if (0 == executeUpdate(delete, new DbPreparedStatementHandler() {
|
if (0 == executeUpdate(delete, new DbPreparedStatementHandler<>() {
|
||||||
public void setParameters(DbPreparedStatement statement) {
|
public void setParameters(DbPreparedStatement statement) {
|
||||||
statement
|
statement
|
||||||
.setInt(primaryKey_, objectId);
|
.setInt(primaryKey_, objectId);
|
||||||
|
@ -1028,7 +1029,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
|
|
||||||
BeanType result = null;
|
BeanType result = null;
|
||||||
|
|
||||||
result = executeFetchFirstBean(restore, baseClass_, new DbPreparedStatementHandler() {
|
result = executeFetchFirstBean(restore, baseClass_, new DbPreparedStatementHandler<>() {
|
||||||
public void setParameters(DbPreparedStatement statement) {
|
public void setParameters(DbPreparedStatement statement) {
|
||||||
statement
|
statement
|
||||||
.setInt(primaryKey_, objectId);
|
.setInt(primaryKey_, objectId);
|
||||||
|
@ -1045,7 +1046,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle after callback
|
// handle after callback
|
||||||
Callbacks callbacks = getCallbacks(result);
|
Callbacks<BeanType> callbacks = getCallbacks(result);
|
||||||
if (callbacks != null &&
|
if (callbacks != null &&
|
||||||
!callbacks.afterRestore(result)) {
|
!callbacks.afterRestore(result)) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -1071,7 +1072,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle after callback
|
// handle after callback
|
||||||
Callbacks callbacks = getCallbacks(result);
|
Callbacks<BeanType> callbacks = getCallbacks(result);
|
||||||
if (callbacks != null &&
|
if (callbacks != null &&
|
||||||
!callbacks.afterRestore(result)) {
|
!callbacks.afterRestore(result)) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -1097,7 +1098,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle after callback
|
// handle after callback
|
||||||
Callbacks callbacks = getCallbacks(instance);
|
Callbacks<BeanType> callbacks = getCallbacks(instance);
|
||||||
return !(callbacks != null && !callbacks.afterRestore(instance));
|
return !(callbacks != null && !callbacks.afterRestore(instance));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1263,7 +1264,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
assert createSequence != null;
|
assert createSequence != null;
|
||||||
assert createTable != null;
|
assert createTable != null;
|
||||||
|
|
||||||
inTransaction(new DbTransactionUserWithoutResult() {
|
inTransaction(new DbTransactionUserWithoutResult<>() {
|
||||||
public void useTransactionWithoutResult()
|
public void useTransactionWithoutResult()
|
||||||
throws InnerClassException {
|
throws InnerClassException {
|
||||||
if (!isIdentifierSparse()) {
|
if (!isIdentifierSparse()) {
|
||||||
|
@ -1320,7 +1321,7 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
assert dropTable != null;
|
assert dropTable != null;
|
||||||
assert dropSequence != null;
|
assert dropSequence != null;
|
||||||
|
|
||||||
inTransaction(new DbTransactionUserWithoutResult() {
|
inTransaction(new DbTransactionUserWithoutResult<>() {
|
||||||
public void useTransactionWithoutResult()
|
public void useTransactionWithoutResult()
|
||||||
throws InnerClassException {
|
throws InnerClassException {
|
||||||
removeManyToMany();
|
removeManyToMany();
|
||||||
|
@ -1356,24 +1357,24 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addListener(GenericQueryManagerListener listener) {
|
public void addListener(GenericQueryManagerListener<BeanType> listener) {
|
||||||
if (null == listener) {
|
if (null == listener) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
mListeners = new ArrayList<>();
|
listeners_ = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
mListeners.add(listener);
|
listeners_.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeListeners() {
|
public void removeListeners() {
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mListeners.clear();
|
listeners_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public <OtherBeanType> GenericQueryManager<OtherBeanType> createNewManager(Class<OtherBeanType> beanClass) {
|
public <OtherBeanType> GenericQueryManager<OtherBeanType> createNewManager(Class<OtherBeanType> beanClass) {
|
||||||
|
@ -1381,61 +1382,61 @@ public abstract class AbstractGenericQueryManager<BeanType> extends DbQueryManag
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void fireInstalled() {
|
protected void fireInstalled() {
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GenericQueryManagerListener listener : mListeners) {
|
for (GenericQueryManagerListener<BeanType> listener : listeners_) {
|
||||||
listener.installed();
|
listener.installed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void fireRemoved() {
|
protected void fireRemoved() {
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GenericQueryManagerListener listener : mListeners) {
|
for (GenericQueryManagerListener<BeanType> listener : listeners_) {
|
||||||
listener.removed();
|
listener.removed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void fireInserted(BeanType bean) {
|
protected void fireInserted(BeanType bean) {
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GenericQueryManagerListener listener : mListeners) {
|
for (GenericQueryManagerListener<BeanType> listener : listeners_) {
|
||||||
listener.inserted(bean);
|
listener.inserted(bean);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void fireUpdated(BeanType bean) {
|
protected void fireUpdated(BeanType bean) {
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GenericQueryManagerListener listener : mListeners) {
|
for (GenericQueryManagerListener<BeanType> listener : listeners_) {
|
||||||
listener.updated(bean);
|
listener.updated(bean);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void fireRestored(BeanType bean) {
|
protected void fireRestored(BeanType bean) {
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GenericQueryManagerListener listener : mListeners) {
|
for (GenericQueryManagerListener<BeanType> listener : listeners_) {
|
||||||
listener.restored(bean);
|
listener.restored(bean);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void fireDeleted(int objectId) {
|
protected void fireDeleted(int objectId) {
|
||||||
if (null == mListeners) {
|
if (null == listeners_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GenericQueryManagerListener listener : mListeners) {
|
for (GenericQueryManagerListener<BeanType> listener : listeners_) {
|
||||||
listener.deleted(objectId);
|
listener.deleted(objectId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -368,7 +368,7 @@ public interface GenericQueryManager<BeanType> // extends ValidationContext
|
||||||
* @param listener the listener that has to be added
|
* @param listener the listener that has to be added
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
void addListener(GenericQueryManagerListener listener);
|
void addListener(GenericQueryManagerListener<BeanType> listener);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove all the listeners that are registered to the manager.
|
* Remove all the listeners that are registered to the manager.
|
||||||
|
|
|
@ -963,7 +963,7 @@ public abstract class AbstractTemplate implements Template {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static boolean isTemplateClassModified(URL templateResource, long templateModificationTime,
|
protected static boolean isTemplateClassModified(URL templateResource, long templateModificationTime,
|
||||||
Map templateDependencies, String templateModificationState,
|
Map<URL, Long> templateDependencies, String templateModificationState,
|
||||||
ResourceFinder resourceFinder, String modificationState) {
|
ResourceFinder resourceFinder, String modificationState) {
|
||||||
try {
|
try {
|
||||||
if (Parser.getModificationTime(resourceFinder, templateResource) > templateModificationTime) {
|
if (Parser.getModificationTime(resourceFinder, templateResource) > templateModificationTime) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue