2
0
Fork 0
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:
Geert Bevin 2022-10-07 06:03:21 -04:00
parent 841cd0a9d1
commit 3743989b24
3 changed files with 47 additions and 46 deletions

View file

@ -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);
} }
} }

View file

@ -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.

View file

@ -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) {