/******************************************************************************* * Copyright (c) 2015 Zend Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Zend Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.php.internal.debug.core.zend.debugger.handlers; import org.eclipse.php.debug.core.debugger.handlers.IDebugRequestHandler; import org.eclipse.php.debug.core.debugger.messages.IDebugMessage; import org.eclipse.php.debug.core.debugger.messages.IDebugResponseMessage; import org.eclipse.php.internal.debug.core.zend.debugger.IDebugFeatures; import org.eclipse.php.internal.debug.core.zend.model.PHPDebugTarget; /** * This is a proxy to the relevant file content request handler depending on the * protocol ID. * * @author michael */ public class FileContentRequestHandlerProxy implements IDebugRequestHandler { private IDebugRequestHandler handler; private PHPDebugTarget debugTarget; /* * (non-Javadoc) * * @see * org.eclipse.php.debug.core.debugger.handlers.IDebugMessageHandler#handle( * org.eclipse.php.debug.core.debugger.messages.IDebugMessage, * org.eclipse.php.internal.debug.core.zend.model.PHPDebugTarget) */ public void handle(IDebugMessage message, PHPDebugTarget debugTarget) { this.debugTarget = debugTarget; getHandler().handle(message, debugTarget); } /* * (non-Javadoc) * * @see org.eclipse.php.debug.core.debugger.handlers.IDebugRequestHandler# * getResponseMessage() */ public IDebugResponseMessage getResponseMessage() { return getHandler().getResponseMessage(); } private IDebugRequestHandler getHandler() { if (handler == null) { if (debugTarget.getRemoteDebugger().canDo(IDebugFeatures.START_PROCESS_FILE_NOTIFICATION)) { handler = new FileContentRequestCurrentHandler(); } else { handler = new FileContentRequestStaleHandler(); } } return handler; } }