package org.zstack.core.cascade;
import org.zstack.header.exception.CloudRuntimeException;
/**
*/
public class CascadeAction implements Cloneable {
private String parentIssuer;
private String rootIssuer;
private Object parentIssuerContext;
private Object rootIssuerContext;
private String actionCode;
private boolean fullTraverse;
public boolean isFullTraverse() {
return fullTraverse;
}
public CascadeAction setFullTraverse(boolean fullTraverse) {
this.fullTraverse = fullTraverse;
return this;
}
public String getParentIssuer() {
return parentIssuer;
}
public String getRootIssuer() {
return rootIssuer;
}
public <T> T getParentIssuerContext() {
return (T) parentIssuerContext;
}
public <T> T getRootIssuerContext() {
return (T) rootIssuerContext;
}
public CascadeAction setParentIssuer(String parentIssuer) {
this.parentIssuer = parentIssuer;
return this;
}
public CascadeAction setRootIssuer(String rootIssuer) {
this.rootIssuer = rootIssuer;
return this;
}
public CascadeAction setParentIssuerContext(Object parentIssuerContext) {
this.parentIssuerContext = parentIssuerContext;
return this;
}
public CascadeAction setRootIssuerContext(Object rootIssuerContext) {
this.rootIssuerContext = rootIssuerContext;
return this;
}
public CascadeAction copy() {
try {
return (CascadeAction) this.clone();
} catch (CloneNotSupportedException e) {
throw new CloudRuntimeException(e);
}
}
public String getActionCode() {
return actionCode;
}
public CascadeAction setActionCode(String actionCode) {
this.actionCode = actionCode;
return this;
}
public boolean isActionCode(String...codes) {
for (String code : codes) {
if (actionCode.equals(code)) {
return true;
}
}
return false;
}
}