package authoritymanager.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class AuthorityManagerController {
	private AuthorityManagerView view ;
	
	/*
	private SearchServiceAsync searchService ;
	private AuthorizationServiceAsync authorizationService ;
	private DataServiceAsync dataService ;
	private GreetingServiceAsync greetingService ;
	*/
	private ServerServiceAsync serverService ;
	public AuthorityManagerController() {
		//searchService = GWT.create(SearchService.class) ;
		//authorizationService = GWT.create(AuthorizationService.class) ;
		//dataService = GWT.create(DataService.class) ;
		//greetingService = GWT.create(GreetingService.class) ;
		serverService = GWT.create(ServerService.class) ;
		
	}
	
	public void setView(AuthorityManagerView view) {
		this.view = view ;
	}

	public void search(String query, AsyncCallback<SearchResults> callback) {
		serverService.search(query, callback) ;		
	}

	public void getConfiguration(AsyncCallback<String> callback) {
		serverService.getConfiguration(callback) ;
		
	}

	public void login(String username, String date, String password,
			AsyncCallback<Boolean> callback) {
		serverService.login(username, date, password, callback) ;
		
	}

	public void register(String username, String password, String access,
			AsyncCallback<Boolean> callback) {
		serverService.register(username, password, access, callback) ;
	}

	
	public void setDifferent(DataPair data, AsyncCallback<Void> callback) {
		serverService.setDifferent(data, callback) ;
	}

	public void getXML(String fileName, AsyncCallback<String> callback) {
		serverService.getXML(fileName, callback) ;
	}

	public void initServer(AsyncCallback<Void> callback) {
		serverService.init_server(callback) ;
	}

	public void getStatus(AsyncCallback<String> callback) {
		serverService.getStatus(callback) ;
		
	}

	public void search(SearchQuery searchQuery, AsyncCallback<SearchResults> callback) {
		serverService.search(searchQuery, callback) ;
	}
	
	public void getItem(String itemType, String itemID, AsyncCallback<DataSerial> callback) {
		serverService.getItem(itemType, itemID, callback) ;
	}

	public void getItem(String itemID, AsyncCallback<DataSerial> callback) {
		serverService.getItem(itemID, callback) ;
	}
	
	public void getFile(String fileName, AsyncCallback<String> callback) {
		serverService.getFile(fileName, callback) ;
	}

	public void createID(String itemType, AsyncCallback<String> callback) {
		serverService.createID(itemType, callback) ;
	}

	public void addRecord(DataSerial dataSerial, AsyncCallback<Boolean> callback) {
		serverService.addRecord(dataSerial, callback) ;
		
	}

	public void getNextCandidate(String pageType, AsyncCallback<String> callback) {
		serverService.getNextCandidate(pageType, callback) ;
	}

	public void getPrevCandidate(String pageType, AsyncCallback<String> callback) {
		serverService.getPrevCandidate(pageType, callback) ;
	}

	public void getServerConfiguration(AsyncCallback<String> callback) {
		serverService.getServerConfiguration(callback) ;
	}

	public void loadAuthority(String authType, AsyncCallback<Void> callback) {
		serverService.loadAuthority(authType, callback) ;
		
	}

	public void loadDuplicates(String authType, AsyncCallback<Void> callback) {
		serverService.loadDuplicates(authType, callback) ;
		
	}

	public void dumpAuthority(String authType, AsyncCallback<Void> callback) {
		serverService.dumpAuthority(authType, callback) ;
		
	}
}
