summaryrefslogtreecommitdiff
path: root/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOAdaptor.java
diff options
context:
space:
mode:
Diffstat (limited to 'projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOAdaptor.java')
-rw-r--r--projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOAdaptor.java47
1 files changed, 25 insertions, 22 deletions
diff --git a/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOAdaptor.java b/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOAdaptor.java
index 17d6454..8624458 100644
--- a/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOAdaptor.java
+++ b/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/access/EOAdaptor.java
@@ -35,10 +35,11 @@ import net.wotonomy.foundation.NSTimestamp;
public abstract class EOAdaptor {
protected String _name;
- protected NSDictionary _connectionDictionary = NSDictionary.EmptyDictionary;
- protected NSMutableArray _contexts = new NSMutableArray();
- protected Class _expressionClass;
- private static NSMutableDictionary _expressionClassesByName = new NSMutableDictionary();
+ @SuppressWarnings("unchecked")
+ protected NSDictionary<String, Object> _connectionDictionary = (NSDictionary<String, Object>) NSDictionary.EmptyDictionary;
+ protected NSMutableArray<Object> _contexts = new NSMutableArray<>();
+ protected Class<? extends EOSQLExpression> _expressionClass;
+ private static NSMutableDictionary<String, String> _expressionClassesByName = new NSMutableDictionary<>();
public EOAdaptor(String name) {
super();
@@ -75,8 +76,9 @@ public abstract class EOAdaptor {
* @param name The name of the adaptor, or a fully qualified class name.
* @return
*/
+ @SuppressWarnings("unchecked")
public static EOAdaptor adaptorWithName(String name) {
- Class adaptorClass = null;
+ Class<? extends EOAdaptor> adaptorClass = null;
String cname = null;
if (name.endsWith("Adaptor") && name.indexOf('.') > 0) {
cname = name;
@@ -88,15 +90,15 @@ public abstract class EOAdaptor {
cname = "net.wotonomy." + name.toLowerCase() + "adaptor." + name + "Adaptor";
}
try {
- adaptorClass = Class.forName(cname);
+ adaptorClass = (Class<? extends EOAdaptor>) Class.forName(cname);
} catch (ClassNotFoundException ex) {
throw new IllegalArgumentException("Cannot find class named " + name);
}
EOAdaptor adaptor = null;
- java.lang.reflect.Constructor callme = null;
+ java.lang.reflect.Constructor<? extends EOAdaptor> callme = null;
try {
callme = adaptorClass.getConstructor(new Class[] { String.class });
- adaptor = (EOAdaptor) callme.newInstance((Object[]) new String[] { name });
+ adaptor = callme.newInstance((Object[]) new String[] { name });
} catch (ClassCastException ex) {
throw new IllegalArgumentException(
"Class " + adaptorClass.getName() + " must inherit from net.wotonomy.access.EOAdaptor");
@@ -130,13 +132,13 @@ public abstract class EOAdaptor {
}
public void assignExternalInfoForEntireModel(EOModel model) {
- NSArray ents = model.entities();
+ NSArray<EOEntity> ents = model.entities();
for (int i = 0; i < ents.count(); i++) {
- EOEntity e = (EOEntity) ents.objectAtIndex(i);
+ EOEntity e = ents.objectAtIndex(i);
// TODO: check that entity is not a prototypes entity
- NSArray atts = e.attributes();
+ NSArray<EOAttribute> atts = e.attributes();
for (int j = 0; j < atts.count(); j++) {
- EOAttribute a = (EOAttribute) atts.objectAtIndex(i);
+ EOAttribute a = atts.objectAtIndex(i);
assignExternalInfoForAttribute(a);
}
assignExternalInfoForEntity(e);
@@ -144,7 +146,7 @@ public abstract class EOAdaptor {
}
public boolean canServiceModel(EOModel model) {
- NSDictionary mcd = model.connectionDictionary();
+ NSDictionary<String, Object> mcd = model.connectionDictionary();
if (mcd == null && _connectionDictionary == null)
return true;
if (mcd == null || _connectionDictionary == null)
@@ -152,35 +154,36 @@ public abstract class EOAdaptor {
return mcd.equals(_connectionDictionary);
}
- public void setConnectionDictionary(NSDictionary connection) {
+ public void setConnectionDictionary(NSDictionary<String, Object> connection) {
_connectionDictionary = connection;
}
- public NSDictionary connectionDictionary() {
+ public NSDictionary<String, Object> connectionDictionary() {
return _connectionDictionary;
}
- public NSArray contexts() {
- return new NSArray(_contexts);
+ public NSArray<Object> contexts() {
+ return new NSArray<>(_contexts);
}
public abstract void assertConnectionDictionaryIsValid();
public abstract EOAdaptorContext createAdaptorContext();
- public abstract Class defaultExpressionClass();
+ public abstract Class<? extends EOSQLExpression> defaultExpressionClass();
public abstract EOSQLExpressionFactory expressionFactory();
public abstract boolean isValidQualifierType(String typeName, EOModel model);
- public Class expressionClass() {
+ @SuppressWarnings("unchecked")
+ public Class<? extends EOSQLExpression> expressionClass() {
if (_expressionClass != null)
return _expressionClass;
String cname = expressionClassName(name());
if (cname != null) {
try {
- _expressionClass = Class.forName(cname);
+ _expressionClass = (Class<? extends EOSQLExpression>) Class.forName(cname);
} catch (ClassNotFoundException ex) {
throw new IllegalStateException("Cannot find expression class named " + cname);
}
@@ -188,7 +191,7 @@ public abstract class EOAdaptor {
return defaultExpressionClass();
}
- public NSArray externalTypesWithModel(EOModel model) {
+ public NSArray<?> externalTypesWithModel(EOModel model) {
return NSArray.EmptyArray;
}
@@ -252,7 +255,7 @@ public abstract class EOAdaptor {
return _name;
}
- public NSArray prototypeAttributes() {
+ public NSArray<?> prototypeAttributes() {
return NSArray.EmptyArray;
}