/******************************************************************************* * Copyright (c) 2011 Subgraph. * 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: * Subgraph - initial API and implementation ******************************************************************************/ package com.subgraph.vega.internal.model.conditions; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import com.db4o.query.Query; import com.subgraph.vega.api.model.conditions.IHttpCondition; import com.subgraph.vega.api.model.conditions.IHttpConditionType; import com.subgraph.vega.api.model.conditions.match.IHttpConditionMatchAction; import com.subgraph.vega.internal.model.conditions.match.StringMatchActionSet; public class ConditionPath extends AbstractCondition { static private transient IHttpConditionType conditionType; static IHttpConditionType getConditionType() { synchronized(ConditionPath.class) { if(conditionType == null) conditionType = createType(); return conditionType; } } private static IHttpConditionType createType() { return new ConditionType("request path", new StringMatchActionSet()) { @Override public IHttpCondition createConditionInstance(IHttpConditionMatchAction matchAction) { return new ConditionPath(matchAction); } }; } private ConditionPath(IHttpConditionMatchAction matchAction) { super(matchAction); } @Override public IHttpConditionType getType() { return getConditionType(); } @Override public boolean matches(HttpRequest request) { return matchesString(request.getRequestLine().getUri()); } @Override public boolean matches(HttpResponse response) { return false; } @Override public boolean matches(HttpRequest request, HttpResponse response) { return matches(request); } @Override public void filterRequestLogQuery(Query query) { constrainQuery(query.descend("requestPath")); } }