01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: */
18:
19: package org.apache.jmeter.config;
20:
21: /**
22: * @author Michael Stover
23: * @version $Revision: 493779 $
24: */
25: public interface ConfigElement extends Cloneable {
26:
27: /**
28: * Add a configuration element to this one. This allows config elements to
29: * combine and give a "layered" effect. For example,
30: * HTTPConfigElements have properties for domain, path, method, and
31: * parameters. If element A has everything filled in, but null for domain,
32: * and element B is added, which has only domain filled in, then after
33: * adding B to A, A will have the domain from B. If A already had a domain,
34: * then the correct behavior is for A to ignore the addition of element B.
35: *
36: * @param config
37: * the element to be added to this ConfigElement
38: */
39: void addConfigElement(ConfigElement config);
40:
41: /**
42: * If your config element expects to be modified in the process of a test
43: * run, and you want those modifications to carry over from sample to sample
44: * (as in a cookie manager - you want to save all cookies that get set
45: * throughout the test), then return true for this method. Your config
46: * element will not be cloned for each sample. If your config elements are
47: * more static in nature, return false. If in doubt, return false.
48: *
49: * @return true if the element expects to be modified over the course of a
50: * test run
51: */
52: boolean expectsModification();
53:
54: Object clone();
55: }
|