1
// Copyright 2004-2008 Castle Project - http://www.castleproject.org/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.MonoRail
.Framework
.Routing
17 using System
.Collections
;
22 public delegate void RouteAction(IRouteContext context
, RouteMatch match
);
27 public interface IRoutingRuleContainer
32 /// <param name="rule">The rule.</param>
33 void Add(IRoutingRule rule
);
38 /// <param name="rule">The rule.</param>
39 /// <param name="action">The action executed if the rule matches.</param>
40 void Add(IRoutingRule rule
, RouteAction action
);
45 /// <param name="routeName">Name of the route.</param>
46 /// <param name="hostname">The hostname.</param>
47 /// <param name="virtualPath">The virtual path.</param>
48 /// <param name="parameters">The parameters.</param>
49 /// <returns></returns>
50 string CreateUrl(string routeName
, string hostname
, string virtualPath
, IDictionary parameters
);
55 /// <param name="hostname">The hostname.</param>
56 /// <param name="virtualPath">The virtual path.</param>
57 /// <param name="parameters">The parameters.</param>
58 /// <returns></returns>
59 string CreateUrl(string hostname
, string virtualPath
, IDictionary parameters
);
64 /// <param name="url">The URL.</param>
65 /// <param name="context">The routing context.</param>
66 /// <returns></returns>
67 RouteMatch
FindMatch(string url
, IRouteContext context
);
70 /// Gets a value indicating whether this container is empty.
72 /// <value><c>true</c> if this instance is empty; otherwise, <c>false</c>.</value>