01: package org.apache.lucene.benchmark.byTask.tasks;
02:
03: import org.apache.lucene.benchmark.byTask.PerfRunData;
04:
05: /**
06: * Licensed to the Apache Software Foundation (ASF) under one or more
07: * contributor license agreements. See the NOTICE file distributed with
08: * this work for additional information regarding copyright ownership.
09: * The ASF licenses this file to You under the Apache License, Version 2.0
10: * (the "License"); you may not use this file except in compliance with
11: * the License. You may obtain a copy of the License at
12: *
13: * http://www.apache.org/licenses/LICENSE-2.0
14: *
15: * Unless required by applicable law or agreed to in writing, software
16: * distributed under the License is distributed on an "AS IS" BASIS,
17: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18: * See the License for the specific language governing permissions and
19: * limitations under the License.
20: */
21:
22: /**
23: * Set a performance test configuration property.
24: * A property may have a single value, or a sequence of values, seprated by ":".
25: * If a sequence of values is specified, each time a new round starts,
26: * the next (cyclic) value is taken.
27: * <br>Other side effects: none.
28: * <br>Takes mandatory param: "name,value" pair.
29: * @see org.apache.lucene.benchmark.byTask.tasks.NewRoundTask
30: */
31: public class SetPropTask extends PerfTask {
32:
33: public SetPropTask(PerfRunData runData) {
34: super (runData);
35: }
36:
37: private String name;
38: private String value;
39:
40: public int doLogic() throws Exception {
41: if (name == null || value == null) {
42: throw new Exception(getName()
43: + " - undefined name or value: name=" + name
44: + " value=" + value);
45: }
46: getRunData().getConfig().set(name, value);
47: return 0;
48: }
49:
50: /**
51: * Set the params (property name and value).
52: * @param params property name and value separated by ','.
53: */
54: public void setParams(String params) {
55: super .setParams(params);
56: int k = params.indexOf(",");
57: name = params.substring(0, k).trim();
58: value = params.substring(k + 1).trim();
59: }
60:
61: /* (non-Javadoc)
62: * @see org.apache.lucene.benchmark.byTask.tasks.PerfTask#supportsParams()
63: */
64: public boolean supportsParams() {
65: return true;
66: }
67:
68: }
|