/***********************************************************************************
*
* Copyright (c) 2014 Kamil Baczkowicz
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
*
* Kamil Baczkowicz - initial API and implementation and/or initial documentation
*
*/
package pl.baczkowicz.spy.ui.search;
import pl.baczkowicz.spy.messages.FormattedMessage;
import pl.baczkowicz.spy.scripts.BaseScriptManager;
import pl.baczkowicz.spy.scripts.Script;
import pl.baczkowicz.spy.ui.utils.DialogFactory;
public class ScriptMatcher implements SearchMatcher
{
private BaseScriptManager scriptManager;
private Script script;
public ScriptMatcher(final BaseScriptManager scriptManager, final Script script)
{
this.scriptManager = scriptManager;
this.script = script;
}
@Override
public boolean matches(final FormattedMessage message)
{
boolean matches = false;
scriptManager.runScriptFileParameter(script, BaseScriptManager.MESSAGE_PARAMETER, message, false);
if (script.getScriptRunner().getLastReturnValue() != null)
{
matches = (Boolean) script.getScriptRunner().getLastReturnValue();
}
else
{
matches = false;
}
return matches;
}
@Override
public boolean isValid()
{
if (script.getScriptRunner().getLastThrownException() != null)
{
DialogFactory.createErrorDialog("Script execution error", "Script failed due to: " + script.getScriptRunner().getLastThrownException().getLocalizedMessage());
return false;
}
return true;
}
}