package org.kvj.lima1.sync.aidl;
import org.kvj.lima1.sync.Lima1SyncApp;
import org.kvj.lima1.sync.PJSONObject;
import org.kvj.lima1.sync.QueryOperator;
import org.kvj.lima1.sync.SyncService;
import org.kvj.lima1.sync.SyncServiceInfo;
import org.kvj.lima1.sync.controller.SyncController;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
public class SyncServiceProvider extends Service {
Handler handler = new Handler();
@Override
public IBinder onBind(Intent intent) {
if (SyncServiceInfo.INTENT.equals(intent.getAction()) && null != intent.getExtras()) {
final String application = intent.getStringExtra("application");
final SyncController controller = Lima1SyncApp.getInstance().getBean(SyncController.class);
return new SyncService.Stub() {
@Override
public String message() throws RemoteException {
return "Hi korea!! " + application;
}
@Override
public String get(String name, String def) throws RemoteException {
return null;
}
@Override
public void set(String name, String value) throws RemoteException {
}
@Override
public PJSONObject create(String stream, PJSONObject obj) throws RemoteException {
return controller.createUpdate(application, stream, obj);
}
@Override
public PJSONObject update(String stream, PJSONObject obj) throws RemoteException {
return controller.createUpdate(application, stream, obj);
}
@Override
public PJSONObject remove(String stream, PJSONObject obj) throws RemoteException {
return controller.remove(application, stream, obj);
}
@Override
public PJSONObject[] query(String stream, QueryOperator[] operators, String order, String limit)
throws RemoteException {
return controller.query(application, stream, operators, order, limit);
}
@Override
public PJSONObject removeCascade(String stream, PJSONObject obj) throws RemoteException {
return controller.removeCascade(application, stream, obj);
}
@Override
public String sync() throws RemoteException {
return controller.sync(application);
}
@Override
public String getFile(String name) throws RemoteException {
return controller.getFile(application, name);
}
@Override
public boolean removeFile(String name) throws RemoteException {
return controller.removeFile(application, name);
}
@Override
public String uploadFile(String path) throws RemoteException {
return controller.uploadFile(application, path);
}
@Override
public PJSONObject getData() throws RemoteException {
return controller.getData(application);
}
};
}
return null;
}
}