/*
GNU GENERAL PUBLIC LICENSE
Copyright (C) 2006 The Lobo Project
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 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
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Contact info: lobochief@users.sourceforge.net
*/
package org.lobobrowser.ua;
import java.net.URL;
import org.eclipse.jdt.annotation.NonNull;
/**
* A navigation event.
*
* @see NavigationListener
* @see NavigatorExtensionContext#addNavigationListener(NavigationListener)
*/
public class NavigationEvent extends java.util.EventObject {
private static final long serialVersionUID = -3655001617854084211L;
private final @NonNull URL uRL;
private final String method;
private final ParameterInfo paramInfo;
private final TargetType targetType;
private final RequestType requestType;
private final boolean fromClick;
private final Object linkObject;
private final NavigatorFrame originatingFrame;
public NavigationEvent(final Object source, final @NonNull URL url, final String method, final ParameterInfo paramInfo,
final TargetType targetType, final RequestType requestType,
final boolean fromClick, final Object linkObject, final NavigatorFrame originatingFrame) {
super(source);
this.uRL = url;
this.method = method;
this.paramInfo = paramInfo;
this.targetType = targetType;
this.requestType = requestType;
this.fromClick = fromClick;
this.linkObject = linkObject;
this.originatingFrame = originatingFrame;
}
public NavigationEvent(final Object source, final @NonNull URL url, final String method, final ParameterInfo paramInfo,
final TargetType targetType, final RequestType requestType,
final NavigatorFrame originatingFrame) {
this(source, url, method, paramInfo, targetType, requestType, false, null, originatingFrame);
}
public NavigationEvent(final Object source, final @NonNull URL url, final TargetType targetType, final RequestType requestType,
final Object linkObject,
final NavigatorFrame originatingFrame) {
this(source, url, "GET", null, targetType, requestType, true, linkObject, originatingFrame);
}
public NavigationEvent(final Object source, final @NonNull URL url, final String method, final RequestType requestType,
final NavigatorFrame originatingFrame) {
this(source, url, method, null, TargetType.SELF, requestType, false, null, originatingFrame);
}
public @NonNull URL getURL() {
return uRL;
}
public String getMethod() {
return method;
}
public ParameterInfo getParamInfo() {
return paramInfo;
}
public RequestType getRequestType() {
return requestType;
}
public boolean isFromClick() {
return fromClick;
}
public Object getLinkObject() {
return linkObject;
}
public NavigatorFrame getOriginatingFrame() {
return originatingFrame;
}
public TargetType getTargetType() {
return targetType;
}
}