WIP added backend generics so all is seriazible and started to make
execute return full result.
This commit is contained in:
parent
3bf185ad48
commit
90b81deb29
25 changed files with 109 additions and 76 deletions
|
|
@ -23,11 +23,11 @@
|
|||
package net.forwardfire.vasc.backend.proxy;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.forwardfire.vasc.backend.VascBackend;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
import net.forwardfire.vasc.backend.VascEntryFieldValue;
|
||||
import net.forwardfire.vasc.backend.VascEntryRecordCreator;
|
||||
|
|
@ -106,7 +106,7 @@ abstract public class AbstractVascBackendProxy implements VascBackendProxy {
|
|||
* @throws Exception
|
||||
* @see net.forwardfire.vasc.backend.VascBackend#execute(VascBackendState state)
|
||||
*/
|
||||
public List<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
public VascBackendResult<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
return backend.execute(state);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@ package net.forwardfire.vasc.backend.proxy;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
|
||||
/**
|
||||
|
|
@ -39,7 +39,7 @@ import net.forwardfire.vasc.backend.VascBackendState;
|
|||
public class VascBackendProxyCache extends AbstractVascBackendProxy {
|
||||
|
||||
private Long records = null;
|
||||
private List<Serializable> data = null;
|
||||
private VascBackendResult<Serializable> data = null;
|
||||
private String searchString = null;
|
||||
private Map<String,Object> dataState = null;
|
||||
private int pageIndex = 0;
|
||||
|
|
@ -122,7 +122,7 @@ public class VascBackendProxyCache extends AbstractVascBackendProxy {
|
|||
@Override
|
||||
public void stopBackend() {
|
||||
super.stopBackend();
|
||||
data.clear();
|
||||
data = null;
|
||||
dataState.clear();
|
||||
requestFlush = true;
|
||||
}
|
||||
|
|
@ -131,7 +131,7 @@ public class VascBackendProxyCache extends AbstractVascBackendProxy {
|
|||
* @see net.forwardfire.vasc.backend.VascBackend#execute(VascBackendState state)
|
||||
*/
|
||||
@Override
|
||||
public List<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
public VascBackendResult<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
boolean changed = isStateChanged(state);
|
||||
if (data==null | changed) {
|
||||
data = backend.execute(state);
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import java.util.List;
|
|||
|
||||
import net.forwardfire.vasc.backend.VascBackend;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
import net.forwardfire.vasc.core.VascEntry;
|
||||
import net.forwardfire.vasc.core.entry.VascEntryBackendEventListener;
|
||||
|
|
@ -138,9 +139,9 @@ public class VascBackendProxyEventExecutor extends AbstractVascBackendProxy {
|
|||
* @see net.forwardfire.vasc.backend.proxy.AbstractVascBackendProxy#execute(net.forwardfire.vasc.backend.VascBackendState)
|
||||
*/
|
||||
@Override
|
||||
public List<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
public VascBackendResult<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
fireVascEvent(VascBackendEventType.PRE_EXECUTE,state);
|
||||
List<Serializable> result = super.execute(state);
|
||||
VascBackendResult<Serializable> result = super.execute(state);
|
||||
fireVascEvent(VascBackendEventType.POST_EXECUTE,result);
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,8 +26,10 @@ import java.io.Serializable;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.forwardfire.vasc.backend.DefaultVascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackend;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
import net.forwardfire.vasc.core.VascEntry;
|
||||
|
||||
|
|
@ -77,16 +79,16 @@ public class VascBackendProxyFilter extends AbstractVascBackendProxy {
|
|||
* @see net.forwardfire.vasc.backend.VascBackend#execute(VascBackendState state)
|
||||
*/
|
||||
@Override
|
||||
public List<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
List<Serializable> result = backend.execute(state);
|
||||
public VascBackendResult<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
VascBackendResult<Serializable> result = backend.execute(state);
|
||||
if (filters==null) {
|
||||
return result;
|
||||
}
|
||||
if (filters.isEmpty()) {
|
||||
return result;
|
||||
}
|
||||
List<Serializable> search = new ArrayList<Serializable>(result.size()/2);
|
||||
for (Serializable o:result) {
|
||||
List<Serializable> search = new ArrayList<Serializable>(result.getPageData().size()/2);
|
||||
for (Serializable o:result.getPageData()) {
|
||||
for (VascProxyFilter filter:filters) {
|
||||
Serializable r = filter.filterObject(o);
|
||||
if (r!=null) {
|
||||
|
|
@ -95,7 +97,7 @@ public class VascBackendProxyFilter extends AbstractVascBackendProxy {
|
|||
}
|
||||
}
|
||||
records = search.size();
|
||||
return search;
|
||||
return new DefaultVascBackendResult<Serializable>(search);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ import java.io.Serializable;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.forwardfire.vasc.backend.DefaultVascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
|
||||
/**
|
||||
|
|
@ -71,25 +73,25 @@ public class VascBackendProxyPaged extends AbstractVascBackendProxy {
|
|||
* @see net.forwardfire.vasc.backend.VascBackend#execute(VascBackendState state)
|
||||
*/
|
||||
@Override
|
||||
public List<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
List<Serializable> allData = backend.execute(state);
|
||||
public VascBackendResult<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
VascBackendResult<Serializable> allData = backend.execute(state);
|
||||
int pageSize = state.getPageSize();
|
||||
if (pageSize==0) {
|
||||
records = allData.size();
|
||||
records = allData.getPageData().size();
|
||||
return allData;
|
||||
}
|
||||
List<Serializable> paged = new ArrayList<Serializable>(state.getPageSize());
|
||||
int off = state.getPageIndex()*pageSize;
|
||||
int offMax = off+state.getPageSize();
|
||||
for (int i=off;i<offMax;i++) {
|
||||
if (i>=allData.size()) {
|
||||
if (i>=allData.getPageData().size()) {
|
||||
break;
|
||||
}
|
||||
Serializable o = allData.get(i);
|
||||
Serializable o = allData.getPageData().get(i);
|
||||
paged.add(o);
|
||||
}
|
||||
records = allData.size();
|
||||
return paged;
|
||||
records = allData.getPageData().size();
|
||||
return new DefaultVascBackendResult<Serializable>(paged);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ import java.io.Serializable;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.forwardfire.vasc.backend.DefaultVascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
import net.forwardfire.vasc.backend.VascEntryFieldValue;
|
||||
import net.forwardfire.vasc.core.VascEntryField;
|
||||
|
|
@ -71,8 +73,8 @@ public class VascBackendProxySearch extends AbstractVascBackendProxy {
|
|||
* @see net.forwardfire.vasc.backend.VascBackend#execute(VascBackendState state)
|
||||
*/
|
||||
@Override
|
||||
public List<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
List<Serializable> result = backend.execute(state);
|
||||
public VascBackendResult<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
VascBackendResult<Serializable> result = backend.execute(state);
|
||||
if (state.getSearchString()==null) {
|
||||
return result;
|
||||
}
|
||||
|
|
@ -80,8 +82,8 @@ public class VascBackendProxySearch extends AbstractVascBackendProxy {
|
|||
return result;
|
||||
}
|
||||
String searchString = state.getSearchString().toLowerCase();
|
||||
List<Serializable> search = new ArrayList<Serializable>(result.size()/4);
|
||||
for (Serializable record:result) {
|
||||
List<Serializable> search = new ArrayList<Serializable>(result.getPageData().size()/4);
|
||||
for (Serializable record:result.getPageData()) {
|
||||
for (VascEntryField field:entry.getVascEntryFields()) {
|
||||
VascEntryFieldValue<Serializable> fieldValue = backend.provideVascEntryFieldValue();
|
||||
Serializable value = fieldValue.getValue(field.getBackendName(), record);
|
||||
|
|
@ -133,7 +135,7 @@ public class VascBackendProxySearch extends AbstractVascBackendProxy {
|
|||
*/
|
||||
}
|
||||
//records = search.size();
|
||||
return search;
|
||||
return new DefaultVascBackendResult<Serializable>(search);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ package net.forwardfire.vasc.backend.proxy;
|
|||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
import net.forwardfire.vasc.backend.VascEntryFieldValue;
|
||||
import net.forwardfire.vasc.core.VascEntryField;
|
||||
|
|
@ -74,14 +74,14 @@ public class VascBackendProxySort extends AbstractVascBackendProxy {
|
|||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public List<Serializable> execute(final VascBackendState state) throws VascBackendException {
|
||||
List<Serializable> result = backend.execute(state);
|
||||
public VascBackendResult<Serializable> execute(final VascBackendState state) throws VascBackendException {
|
||||
VascBackendResult<Serializable> result = backend.execute(state);
|
||||
if (state.getSortField()==null) {
|
||||
return result;
|
||||
}
|
||||
final VascEntryField field = getVascEntryFieldByBackendName(state.getSortField());
|
||||
final VascEntryFieldValue<Serializable> fieldValue = backend.provideVascEntryFieldValue();
|
||||
Collections.sort(result, new Comparator<Serializable>() {
|
||||
Collections.sort(result.getPageData(), new Comparator<Serializable>() {
|
||||
@SuppressWarnings("rawtypes")
|
||||
public int compare(Serializable o1, Serializable o2) {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@
|
|||
package net.forwardfire.vasc.backend.proxy;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
|
||||
/**
|
||||
|
|
@ -59,7 +59,7 @@ public class VascBackendProxyTimerLogger extends AbstractVascBackendProxy {
|
|||
* @see net.forwardfire.vasc.backend.VascBackend#execute(VascBackendState state)
|
||||
*/
|
||||
@Override
|
||||
public List<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
public VascBackendResult<Serializable> execute(VascBackendState state) throws VascBackendException {
|
||||
long t1 = System.currentTimeMillis();
|
||||
try {
|
||||
return backend.execute(state);
|
||||
|
|
|
|||
|
|
@ -37,5 +37,6 @@ import net.forwardfire.vasc.core.VascEntryField;
|
|||
*/
|
||||
public interface VascFrontendUserSettingController {
|
||||
|
||||
|
||||
//public Map<String,String> getSettings();
|
||||
//public void putSetting(String key,String value);
|
||||
}
|
||||
|
|
@ -231,7 +231,7 @@ public class DefaultVascFrontendActions implements VascFrontendActions {
|
|||
|
||||
try {
|
||||
// Execute to get data.
|
||||
entry.getVascFrontendController().getVascEntryState().setEntryDataList(entry.getVascFrontendController().getVascEntryState().getVascBackend().execute(backendState));
|
||||
entry.getVascFrontendController().getVascEntryState().setEntryDataList(entry.getVascFrontendController().getVascEntryState().getVascBackend().execute(backendState).getPageData());
|
||||
|
||||
// Fire event post read
|
||||
entry.getVascFrontendController().fireVascFrontendEvent(entry,VascEntryFrontendEventListener.VascFrontendEventType.POST_READ, null);
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ public class VascSelectItemModelEntry implements VascSelectItemModel {
|
|||
|
||||
|
||||
// execute
|
||||
for (Serializable o:back.execute(state)) {
|
||||
for (Serializable o:back.execute(state).getPageData()) {
|
||||
Serializable keyId = key.getVascEntryFieldValue().getValue(key.getBackendName(), o);
|
||||
String nameId = dis.getVascEntryFieldValue().getDisplayValue(dis.getBackendName(), o);
|
||||
if (returnKeyValue!=null && false==returnKeyValue) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue