/*
* Copyright (c) 2010-2016 Evolveum
*
* 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 com.evolveum.midpoint.provisioning.api;
import java.io.Serializable;
public class ProvisioningOperationOptions implements Serializable {
private static final long serialVersionUID = -6960273605308871338L;
/**
* Avoid any smart processing of the data except for schema application. Do not synchronize the data, do not apply
* any expressions, etc.
*/
private Boolean raw;
private Boolean completePostponed;
private Boolean force;
private Boolean postpone;
private Boolean doNotDiscovery;
private Boolean overwrite;
public Boolean getCompletePostponed() {
return completePostponed;
}
public void setCompletePostponed(Boolean doDiscovery) {
this.completePostponed = doDiscovery;
}
//by default we want to complete postponed operation, we skip only if the option is set to false..
public static boolean isCompletePostponed(ProvisioningOperationOptions options){
if (options == null) {
return true;
}
if (options.completePostponed == null) {
return true;
}
return options.completePostponed;
}
public static ProvisioningOperationOptions createCompletePostponed(boolean completePostponed) {
ProvisioningOperationOptions opts = new ProvisioningOperationOptions();
opts.setCompletePostponed(completePostponed);
return opts;
}
public Boolean getForce() {
return force;
}
public void setForce(Boolean force) {
this.force = force;
}
public static boolean isForce(ProvisioningOperationOptions options){
if (options == null) {
return false;
}
if (options.force == null) {
return false;
}
return options.force;
}
public static ProvisioningOperationOptions createForce(boolean force) {
ProvisioningOperationOptions opts = new ProvisioningOperationOptions();
opts.setForce(force);
return opts;
}
public Boolean getPostpone() {
return postpone;
}
public void setPostpone(Boolean postpone) {
this.postpone = postpone;
}
public static boolean isPostpone(ProvisioningOperationOptions options){
if (options == null) {
return false;
}
if (options.postpone == null) {
return false;
}
return options.postpone;
}
public static ProvisioningOperationOptions createPostpone(boolean postpone) {
ProvisioningOperationOptions opts = new ProvisioningOperationOptions();
opts.setPostpone(postpone);
return opts;
}
public Boolean getDoNotDiscovery() {
return doNotDiscovery;
}
public void setDoNotDiscovery(Boolean doDiscovery) {
this.doNotDiscovery = doDiscovery;
}
public static boolean isDoNotDiscovery(ProvisioningOperationOptions options){
if (options == null) {
return false;
}
if (options.doNotDiscovery == null) {
return false;
}
return options.doNotDiscovery;
}
public static ProvisioningOperationOptions createDoNotDiscovery(boolean doDiscovery) {
ProvisioningOperationOptions opts = new ProvisioningOperationOptions();
opts.setDoNotDiscovery(doDiscovery);
return opts;
}
public Boolean getOverwrite() {
return overwrite;
}
public void setOverwrite(Boolean overwrite) {
this.overwrite = overwrite;
}
public static boolean isOverwrite(ProvisioningOperationOptions options){
if (options == null) {
return false;
}
if (options.overwrite == null) {
return false;
}
return options.overwrite;
}
public static ProvisioningOperationOptions createOverwrite(boolean overwrite) {
ProvisioningOperationOptions opts = new ProvisioningOperationOptions();
opts.setOverwrite(overwrite);
return opts;
}
public Boolean getRaw() {
return raw;
}
public void setRaw(Boolean raw) {
this.raw = raw;
}
public static boolean isRaw(ProvisioningOperationOptions options) {
if (options == null) {
return false;
}
if (options.raw == null) {
return false;
}
return options.raw;
}
public static ProvisioningOperationOptions createRaw() {
ProvisioningOperationOptions opts = new ProvisioningOperationOptions();
opts.setRaw(true);
return opts;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("ProvisioningOperationOptions(");
appendFlag(sb, "raw", raw);
appendFlag(sb, "completePostponed", completePostponed);
appendFlag(sb, "force", force);
appendFlag(sb, "postpone", postpone);
appendFlag(sb, "doNotDiscovery", doNotDiscovery);
appendFlag(sb, "overwrite", overwrite);
if (sb.charAt(sb.length() - 1) == ',') {
sb.deleteCharAt(sb.length() - 1);
}
sb.append(")");
return sb.toString();
}
private void appendFlag(StringBuilder sb, String name, Boolean val) {
if (val == null) {
return;
} else if (val) {
sb.append(name);
sb.append(",");
} else {
sb.append(name);
sb.append("=false,");
}
}
}