package org.fourthline.konto.test.mock;
import com.google.gwt.user.client.rpc.AsyncCallback;
import org.fourthline.konto.client.service.LedgerService;
import org.fourthline.konto.client.service.LedgerServiceAsync;
import org.fourthline.konto.shared.entity.Account;
import org.fourthline.konto.shared.entity.AccountGroup;
import org.fourthline.konto.shared.AccountType;
import org.fourthline.konto.shared.query.AccountsQueryCriteria;
import org.fourthline.konto.shared.entity.Entry;
import org.fourthline.konto.shared.result.LedgerLines;
import org.fourthline.konto.shared.query.LedgerLinesQueryCriteria;
import org.seamless.gwt.validation.shared.ValidationException;
import java.util.List;
/**
* @author Christian Bauer
*/
public class MockLedgerServiceAsync implements LedgerServiceAsync {
public LedgerService svc;
public MockLedgerServiceAsync(LedgerService svc) {
this.svc = svc;
}
@Override
public void getAccount(Long id, AsyncCallback<Account> async) {
async.onSuccess(svc.getAccount(id));
}
@Override
public void getAccountGroups(AccountType type, String name, AsyncCallback<List<AccountGroup>> async) {
async.onSuccess(svc.getAccountGroups(type, name));
}
@Override
public void getAccounts(AccountsQueryCriteria criteria, AsyncCallback<List<Account>> async) {
async.onSuccess(svc.getAccounts(criteria));
}
@Override
public void getLedgerLines(LedgerLinesQueryCriteria criteria, AsyncCallback<LedgerLines> async) {
async.onSuccess(svc.getLedgerLines(criteria));
}
@Override
public void populateSplits(Entry entry, AsyncCallback<Entry> async) {
async.onSuccess(svc.populateSplits(entry));
}
@Override
public void store(Entry entry, AsyncCallback<Void> async) {
try {
svc.store(entry);
async.onSuccess(null);
} catch (ValidationException ex) {
async.onFailure(ex);
}
}
@Override
public void remove(Entry entry, AsyncCallback<Void> async) {
svc.remove(entry);
async.onSuccess(null);
}
@Override
public void remove(Account account, AsyncCallback<Void> async) {
svc.remove(account);
async.onSuccess(null);
}
@Override
public void store(Account account, AsyncCallback<Long> async) {
try {
svc.store(account);
async.onSuccess(null);
} catch (ValidationException ex) {
async.onFailure(ex);
}
}
}