2
0
Fork 0

WIP added backend generics so all is seriazible and started to make

execute return full result.
This commit is contained in:
Willem Cazander 2014-08-23 16:58:42 +02:00
parent 3bf185ad48
commit 90b81deb29
25 changed files with 109 additions and 76 deletions

View file

@ -22,6 +22,7 @@
package net.forwardfire.vasc.backend;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@ -37,16 +38,16 @@ import java.util.Map;
*/
abstract public class AbstractVascBackendControllerLocal implements VascBackendControllerLocal {
private Map<String,VascBackend> backends = null;
private Map<String,VascBackend<Serializable>> backends = null;
public AbstractVascBackendControllerLocal() {
backends = new HashMap<String,VascBackend>(1000);
backends = new HashMap<String,VascBackend<Serializable>>(1000);
}
/**
* @see net.forwardfire.vasc.backend.VascBackendController#getVascBackendById(java.lang.String)
*/
public VascBackend getVascBackendById(String id) {
public VascBackend<Serializable> getVascBackendById(String id) {
return backends.get(id);
}
@ -65,7 +66,8 @@ abstract public class AbstractVascBackendControllerLocal implements VascBackendC
/**
* @see net.forwardfire.vasc.backend.VascBackendControllerLocal#addVascBackend(net.forwardfire.vasc.backend.VascBackend)
*/
public void addVascBackend(VascBackend backend) {
@SuppressWarnings("unchecked")
public void addVascBackend(VascBackend<? extends Serializable> backend) {
if (backend==null) {
throw new NullPointerException("backend must not be null.");
}
@ -73,14 +75,15 @@ abstract public class AbstractVascBackendControllerLocal implements VascBackendC
throw new IllegalArgumentException("The backend must have an id.");
}
backend.startBackend();
backends.put(backend.getId(), backend);
VascBackend<Serializable> castedBackend = (VascBackend<Serializable>) backend;
backends.put(backend.getId(), castedBackend);
}
/**
* @see net.forwardfire.vasc.backend.VascBackendControllerLocal#removeVascBackendById(java.lang.String)
*/
public void removeVascBackendById(String backendId) {
VascBackend backend = getVascBackendById(backendId);
VascBackend<? extends Serializable> backend = getVascBackendById(backendId);
if (backend==null) {
throw new NullPointerException("Could not find backend to remove with id: "+backendId);
}

View file

@ -40,15 +40,17 @@ public interface VascBackend<DATA_OBJECT extends Serializable> {
public void startBackend();
public void stopBackend();
public List<DATA_OBJECT> execute(VascBackendState state) throws VascBackendException;
public VascBackendResult<DATA_OBJECT> execute(VascBackendState state) throws VascBackendException;
public boolean isReadOnly();
public void persist(DATA_OBJECT object) throws VascBackendException;
//public DATA_OBJECT fetch(Map<String,Serializable> pks) throws VascBackendException;
public DATA_OBJECT merge(DATA_OBJECT object) throws VascBackendException;
public void persist(DATA_OBJECT record) throws VascBackendException;
public void delete(DATA_OBJECT object) throws VascBackendException;
public DATA_OBJECT merge(DATA_OBJECT record) throws VascBackendException;
public void delete(DATA_OBJECT record) throws VascBackendException;
/**
* Creates a new Field acces obj the the given field entry.
@ -102,10 +104,4 @@ public interface VascBackend<DATA_OBJECT extends Serializable> {
public boolean hasTotalSummary();
public Map<String,Object> executeTotalSummary();
/*
public boolean hasSettings();
public Map<String,String> getSettings();
public void putSetting(String key,String value);
*/
}
}

View file

@ -22,6 +22,8 @@
package net.forwardfire.vasc.backend;
import java.io.Serializable;
/**
*
@ -30,7 +32,7 @@ package net.forwardfire.vasc.backend;
*/
public interface VascBackendControllerLocal extends VascBackendController {
public void addVascBackend(VascBackend backend);
public void addVascBackend(VascBackend<? extends Serializable> backend);
public void removeVascBackendById(String backendId);