001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.jetspeed.profiler.rules;
018:
019: import java.io.Serializable;
020:
021: /**
022: * A RuleCriterion specifies one criterion in a list of profiling rule criteria.
023: * This list is used to build normalized profiling locator and then
024: * locate a portal resource based on the request.
025: *
026: * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
027: * @version $Id: RuleCriterion.java 516448 2007-03-09 16:25:47Z ate $
028: */
029: public interface RuleCriterion extends Serializable {
030: public static final int FALLBACK_CONTINUE = 1;
031: public static final int FALLBACK_STOP = 0;
032: public static final int FALLBACK_LOOP = 2;
033:
034: /**
035: * Gets the rule request type for this specific criterion.
036: * Rule types determine which type of request property, parameter or attribute
037: * to look at when building a profiling locator.
038: *
039: * @return The request type associated with this criterion.
040: */
041: String getType();
042:
043: /**
044: * Sets the rule request type for this specific criterion.
045: * Rule types determine which type of request property, parameter or attribute
046: * to look at when building a profiling locator.
047: *
048: * @param The request type associated with this criterion.
049: */
050: void setType(String type);
051:
052: /**
053: * Sets the fallback order for this criterion.
054: * Lower numbers are returned first during iteration.
055: * Higher numbers should be put on the locator stack first.
056: *
057: * @return The fallback order for this criterion.
058: */
059: int getFallbackOrder();
060:
061: /**
062: * Gets the fallback order for this criterion.
063: * Lower numbers are returned first during iteration.
064: * Higher numbers should be put on the locator stack first.
065: *
066: * @param order The fallback order for this criterion.
067: */
068: void setFallbackOrder(int order);
069:
070: /**
071: * Gets the fallback type for this criterion.
072: * Fallback types are used when locating a profiled resource.
073: * The type tells the Profiling rule what to do next on failed criterion matching.
074: *
075: * Known values:
076: *
077: * FALLBACK_CONTINUE - evaluate this criterion and if it fails continue to the next criterion
078: * FALLBACK_STOP - evaluate this criterion and if it fails stop evaluation criteria for this rule
079: * FALLBACK_LOOP - evaluate this criterion and if it fails continue evaluating
080: *
081: * @return The fallback type for this criterion, should be a valid value as shown above.
082: */
083: int getFallbackType();
084:
085: /**
086: * Sets the fallback type for this criterion.
087: * Fallback types are used when locating a profiled resource.
088: * The type tells the Profiling rule what to do next on failed criterion matching.
089: *
090: * Known values:
091: *
092: * FALLBACK_CONTINUE - evaluate this criterion and if it fails continue to the next criterion
093: * FALLBACK_STOP - evaluate this criterion and if it fails stop evaluation criteria for this rule
094: * FALLBACK_LOOP - evaluate this criterion and if it fails continue evaluating
095: *
096: * @param The fallback type for this criterion, should be a valid value as shown above.
097: */
098: void setFallbackType(int order);
099:
100: /**
101: * Gets the name of the parameter, attribute or property in the portal request.
102: * This name is used to lookup the value of the request parameter, attribute, or
103: * property when building a profile locator.
104: *
105: * @return The name of the request parameter, attribute or property.
106: */
107: String getName();
108:
109: /**
110: * Sets the name of the parameter, attribute or property in the portal request.
111: * This name is used to lookup the value of the request parameter, attribute, or
112: * property when building a profile locator.
113: *
114: * @param The name of the request parameter, attribute or property.
115: */
116: void setName(String name);
117:
118: /**
119: * Gets the value of the parameter, attribute or property in the portal request.
120: *
121: * @return The value of the request parameter, attribute or property.
122: */
123: String getValue();
124:
125: /**
126: * Sets the value of the parameter, attribute or property in the portal request.
127: *
128: * @param The value of the request parameter, attribute or property.
129: */
130: void setValue(String value);
131:
132: /**
133: * Gets the unique rule identifier for the associated owner rule
134: *
135: * @return The rule's unique identifier
136: */
137: String getRuleId();
138:
139: /**
140: * Sets the unique rule identifier for the associated owner rule
141: *
142: * @param id The rule's unique identifier
143: */
144: void setRuleId(String ruleId);
145:
146: }
|