/*
* Copyright 2016 Crown Copyright
*
* 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 uk.gov.gchq.gaffer.named.operation;
import uk.gov.gchq.gaffer.operation.Operation;
import uk.gov.gchq.gaffer.operation.OperationChain;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class AddNamedOperation implements Operation {
private OperationChain operationChain;
private String operationName;
private String description;
private List<String> readAccessRoles = new ArrayList<>();
private List<String> writeAccessRoles = new ArrayList<>();
private boolean overwriteFlag = false;
public boolean isOverwriteFlag() {
return overwriteFlag;
}
public void setOverwriteFlag(final boolean overwriteFlag) {
this.overwriteFlag = overwriteFlag;
}
public OperationChain getOperationChain() {
return operationChain;
}
public void setOperationChain(final OperationChain operationChain) {
this.operationChain = operationChain;
}
public String getOperationName() {
return operationName;
}
public void setOperationName(final String operationName) {
this.operationName = operationName;
}
public List<String> getReadAccessRoles() {
return readAccessRoles;
}
public void setReadAccessRoles(final List<String> readAccessRoles) {
this.readAccessRoles = readAccessRoles;
}
public List<String> getWriteAccessRoles() {
return writeAccessRoles;
}
public void setWriteAccessRoles(final List<String> writeAccessRoles) {
this.writeAccessRoles = writeAccessRoles;
}
public String getDescription() {
return description;
}
public void setDescription(final String description) {
this.description = description;
}
public static class Builder extends Operation.BaseBuilder<AddNamedOperation, Builder> {
public Builder() {
super(new AddNamedOperation());
}
public Builder operationChain(final OperationChain opChain) {
_getOp().setOperationChain(opChain);
return _self();
}
public Builder name(final String name) {
_getOp().setOperationName(name);
return _self();
}
public Builder description(final String description) {
_getOp().setDescription(description);
return _self();
}
public Builder readAccessRoles(final String... roles) {
Collections.addAll(_getOp().getReadAccessRoles(), roles);
return _self();
}
public Builder writeAccessRoles(final String... roles) {
Collections.addAll(_getOp().getWriteAccessRoles(), roles);
return _self();
}
public Builder overwrite(final boolean overwriteFlag) {
_getOp().setOverwriteFlag(overwriteFlag);
return _self();
}
public Builder overwrite() {
return overwrite(true);
}
}
}