1 // $Header: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/ConfigElement.java,v 1.4 2004/02/13 02:21:36 sebb Exp $ 2 /* 3 * Copyright 2001-2004 The Apache Software Foundation. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * 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: 1.4 $ 24 */ 25 public interface ConfigElement extends Cloneable 26 { 27 28 /** 29 * Add a configuration element to this one. This allows config elements to 30 * combine and give a "layered" effect. For example, 31 * HTTPConfigElements have properties for domain, path, method, and 32 * parameters. If element A has everything filled in, but null for domain, 33 * and element B is added, which has only domain filled in, then after 34 * adding B to A, A will have the domain from B. If A already had a domain, 35 * then the correct behavior is for A to ignore the addition of element B. 36 * 37 * @param config 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 44 * sample (as in a cookie manager - you want to save all cookies that get 45 * set 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 } 56