/*
* Copyright 2012 NGDATA nv
*
* Licensed 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.
*/
package org.lilyproject.tools.tester;
import org.codehaus.jackson.JsonNode;
import org.lilyproject.repository.api.RecordId;
public class DeleteAction extends AbstractTestAction implements TestAction {
public DeleteAction(JsonNode jsonNode, TestActionContext testActionContext) {
super(jsonNode, testActionContext);
}
@Override
protected void runAction() {
TestRecord testRecord = testActionContext.records.getRecord(source);
if (testRecord == null) {
return;
}
long before = System.nanoTime();
try {
testActionContext.table.delete(testRecord.getRecordId());
report(true, System.nanoTime() - before, "D", null);
testActionContext.records.removeRecord(source, testRecord);
testRecord.setDeleted(true);
testActionContext.records.addRecord(destination,
new TestRecord(testRecord.getRecordId(), testRecord.getRecordType()));
} catch (Throwable t) {
report(false, System.nanoTime() - before);
reportError("Error deleting record.", t);
}
}
@Override
public ActionResult linkFieldAction(TestFieldType testFieldType, RecordId recordId) {
throw new UnsupportedOperationException();
}
}