package org.ovirt.engine.api.rsdl; import java.util.HashMap; import java.util.Map; public class Signature implements Cloneable { private Map<Object, Object> mandatoryArguments = new HashMap<>(); private Map<Object, Object> optionalArguments = new HashMap<>(); private Boolean deprecated; private String description; public Boolean getDeprecated() { return deprecated; } public void setDeprecated(Boolean deprecated) { this.deprecated = deprecated; } public Map<Object, Object> getMandatoryArguments() { return mandatoryArguments; } public void setMandatoryArguments(Map<Object, Object> mandatoryArguments) { this.mandatoryArguments = mandatoryArguments; } public Map<Object, Object> getOptionalArguments() { return optionalArguments; } public void setOptionalArguments(Map<Object, Object> optionalArguments) { this.optionalArguments = optionalArguments; } public boolean isEmpty() { return mandatoryArguments.isEmpty() && optionalArguments.isEmpty(); } public void addMandatoryArgument(Object name, Object type) { mandatoryArguments.put(name, type); } public void addOptionalArgument(Object name, Object type) { optionalArguments.put(name, type); } public Signature clone() throws CloneNotSupportedException { super.clone(); Signature clonedSignature = new Signature(); Map<Object, Object> mandatoryArguments = new HashMap<>(); mandatoryArguments.putAll(getMandatoryArguments()); Map<Object, Object> optionalArguments = new HashMap<>(); optionalArguments.putAll(getOptionalArguments()); clonedSignature.setMandatoryArguments(mandatoryArguments); clonedSignature.setOptionalArguments(optionalArguments); return clonedSignature; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }