package org.apache.lucene.benchmark.byTask.tasks;
import org.apache.lucene.benchmark.byTask.PerfRunData;
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Set a performance test configuration property.
* A property may have a single value, or a sequence of values, seprated by ":".
* If a sequence of values is specified, each time a new round starts,
* the next (cyclic) value is taken.
* <br>Other side effects: none.
* <br>Takes mandatory param: "name,value" pair.
* @see org.apache.lucene.benchmark.byTask.tasks.NewRoundTask
*/
public class SetPropTask extends PerfTask {
public SetPropTask(PerfRunData runData) {
super(runData);
}
private String name;
private String value;
public int doLogic() throws Exception {
if (name==null || value==null) {
throw new Exception(getName()+" - undefined name or value: name="+name+" value="+value);
}
getRunData().getConfig().set(name,value);
return 0;
}
/**
* Set the params (property name and value).
* @param params property name and value separated by ','.
*/
public void setParams(String params) {
super.setParams(params);
int k = params.indexOf(",");
name = params.substring(0,k).trim();
value = params.substring(k+1).trim();
}
/* (non-Javadoc)
* @see org.apache.lucene.benchmark.byTask.tasks.PerfTask#supportsParams()
*/
public boolean supportsParams() {
return true;
}
}
|