package org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.AugmentationHolder; import org.opendaylight.yangtools.yang.binding.DataObject; import java.util.HashMap; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput.Mode; import java.util.Objects; import java.util.List; import java.util.Collections; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter; import java.util.Map; /** * Class that builds {@link org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput} instances. * * @see org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput * */ public class ExecuteGraphInputBuilder implements Builder { private Mode _mode; private java.lang.String _moduleName; private java.lang.String _rpcName; private List _sliParameter; Map>, Augmentation> augmentation = Collections.emptyMap(); public ExecuteGraphInputBuilder() { } public ExecuteGraphInputBuilder(ExecuteGraphInput base) { this._mode = base.getMode(); this._moduleName = base.getModuleName(); this._rpcName = base.getRpcName(); this._sliParameter = base.getSliParameter(); if (base instanceof ExecuteGraphInputImpl) { ExecuteGraphInputImpl impl = (ExecuteGraphInputImpl) base; if (!impl.augmentation.isEmpty()) { this.augmentation = new HashMap<>(impl.augmentation); } } else if (base instanceof AugmentationHolder) { @SuppressWarnings("unchecked") AugmentationHolder casted =(AugmentationHolder) base; if (!casted.augmentations().isEmpty()) { this.augmentation = new HashMap<>(casted.augmentations()); } } } public Mode getMode() { return _mode; } public java.lang.String getModuleName() { return _moduleName; } public java.lang.String getRpcName() { return _rpcName; } public List getSliParameter() { return _sliParameter; } @SuppressWarnings("unchecked") public > E getAugmentation(java.lang.Class augmentationType) { if (augmentationType == null) { throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!"); } return (E) augmentation.get(augmentationType); } public ExecuteGraphInputBuilder setMode(final Mode value) { this._mode = value; return this; } public ExecuteGraphInputBuilder setModuleName(final java.lang.String value) { this._moduleName = value; return this; } public ExecuteGraphInputBuilder setRpcName(final java.lang.String value) { this._rpcName = value; return this; } public ExecuteGraphInputBuilder setSliParameter(final List value) { this._sliParameter = value; return this; } public ExecuteGraphInputBuilder addAugmentation(java.lang.Class> augmentationType, Augmentation augmentation) { if (augmentation == null) { return removeAugmentation(augmentationType); } if (!(this.augmentation instanceof HashMap)) { this.augmentation = new HashMap<>(); } this.augmentation.put(augmentationType, augmentation); return this; } public ExecuteGraphInputBuilder removeAugmentation(java.lang.Class> augmentationType) { if (this.augmentation instanceof HashMap) { this.augmentation.remove(augmentationType); } return this; } @Override public ExecuteGraphInput build() { return new ExecuteGraphInputImpl(this); } private static final class ExecuteGraphInputImpl implements ExecuteGraphInput { @Override public java.lang.Class getImplementedInterface() { return org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput.class; } private final Mode _mode; private final java.lang.String _moduleName; private final java.lang.String _rpcName; private final List _sliParameter; private Map>, Augmentation> augmentation = Collections.emptyMap(); private ExecuteGraphInputImpl(ExecuteGraphInputBuilder base) { this._mode = base.getMode(); this._moduleName = base.getModuleName(); this._rpcName = base.getRpcName(); this._sliParameter = base.getSliParameter(); switch (base.augmentation.size()) { case 0: this.augmentation = Collections.emptyMap(); break; case 1: final Map.Entry>, Augmentation> e = base.augmentation.entrySet().iterator().next(); this.augmentation = Collections.>, Augmentation>singletonMap(e.getKey(), e.getValue()); break; default : this.augmentation = new HashMap<>(base.augmentation); } } @Override public Mode getMode() { return _mode; } @Override public java.lang.String getModuleName() { return _moduleName; } @Override public java.lang.String getRpcName() { return _rpcName; } @Override public List getSliParameter() { return _sliParameter; } @SuppressWarnings("unchecked") @Override public > E getAugmentation(java.lang.Class augmentationType) { if (augmentationType == null) { throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!"); } return (E) augmentation.get(augmentationType); } private int hash = 0; private volatile boolean hashValid = false; @Override public int hashCode() { if (hashValid) { return hash; } final int prime = 31; int result = 1; result = prime * result + Objects.hashCode(_mode); result = prime * result + Objects.hashCode(_moduleName); result = prime * result + Objects.hashCode(_rpcName); result = prime * result + Objects.hashCode(_sliParameter); result = prime * result + Objects.hashCode(augmentation); hash = result; hashValid = true; return result; } @Override public boolean equals(java.lang.Object obj) { if (this == obj) { return true; } if (!(obj instanceof DataObject)) { return false; } if (!org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput.class.equals(((DataObject)obj).getImplementedInterface())) { return false; } org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput other = (org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput)obj; if (!Objects.equals(_mode, other.getMode())) { return false; } if (!Objects.equals(_moduleName, other.getModuleName())) { return false; } if (!Objects.equals(_rpcName, other.getRpcName())) { return false; } if (!Objects.equals(_sliParameter, other.getSliParameter())) { return false; } if (getClass() == obj.getClass()) { // Simple case: we are comparing against self ExecuteGraphInputImpl otherImpl = (ExecuteGraphInputImpl) obj; if (!Objects.equals(augmentation, otherImpl.augmentation)) { return false; } } else { // Hard case: compare our augments with presence there... for (Map.Entry>, Augmentation> e : augmentation.entrySet()) { if (!e.getValue().equals(other.getAugmentation(e.getKey()))) { return false; } } // .. and give the other one the chance to do the same if (!obj.equals(this)) { return false; } } return true; } @Override public java.lang.String toString() { java.lang.String name = "ExecuteGraphInput ["; java.lang.StringBuilder builder = new java.lang.StringBuilder (name); if (_mode != null) { builder.append("_mode="); builder.append(_mode); builder.append(", "); } if (_moduleName != null) { builder.append("_moduleName="); builder.append(_moduleName); builder.append(", "); } if (_rpcName != null) { builder.append("_rpcName="); builder.append(_rpcName); builder.append(", "); } if (_sliParameter != null) { builder.append("_sliParameter="); builder.append(_sliParameter); } final int builderLength = builder.length(); final int builderAdditionalLength = builder.substring(name.length(), builderLength).length(); if (builderAdditionalLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(", ")) { builder.append(", "); } builder.append("augmentation="); builder.append(augmentation.values()); return builder.append(']').toString(); } } }