/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along
with this program; if not, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.j2db;
import java.util.Collection;
import java.util.List;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.protocol.http.WebSession;
import com.servoy.j2db.persistence.Form;
import com.servoy.j2db.persistence.IPersist;
import com.servoy.j2db.persistence.ISupportChilds;
import com.servoy.j2db.persistence.Solution;
import com.servoy.j2db.persistence.Table;
import com.servoy.j2db.persistence.ValueList;
import com.servoy.j2db.server.shared.IDebugHeadlessClient;
import com.servoy.j2db.server.shared.WebCredentials;
/**
* Handler for debug clients
* @author rgansevles
*
*/
public interface IDebugClientHandler
{
ISessionClient createDebugHeadlessClient(ServletRequest req, String userName, String password, String method, Object[] objects, String preferedSolution)
throws Exception;
ISessionClient createDebugAuthenticator(String authenticatorName, String method, Object[] objects) throws Exception;
IWebClientApplication createDebugWebClient(WebSession webClientSession, HttpServletRequest req, WebCredentials credentials, String method, Object[] objects)
throws Exception;
IDebugClient createDebugNGClient(Object wsSession) throws Exception;
List<IDebugClient> getActiveDebugClients();
IDebugJ2DBClient getDebugSmartClient();
IDebugHeadlessClient getDebugHeadlessClient();
IDebugWebClient getDebugWebClient();
IDebugClient getDebugNGClient();
<T extends IDebugClient> T getDebugClient(DebugClientType<T> type);
void flagModelInitialised();
void setDesignerCallback(IDesignerCallback designerCallback);
IApplication getDebugReadyClient();
void reloadDebugSolution(Solution solution);
void reloadDebugSolutionSecurity();
void reloadAllStyles();
void executeMethod(ISupportChilds persist, String scopeName, String methodname);
void showInDebugClients(Form form);
public void refreshDebugClientsI18N(boolean recreateForms);
void refreshDebugClients(Collection<IPersist> changes);
void refreshDebugClients(Table table);
boolean isClientStarted();
void flushValueList(ValueList valueList);
void setSolution(Solution solution);
}