package org.ovirt.engine.ui.uicommonweb.models.vms.register;
import java.util.Objects;
import org.ovirt.engine.core.common.businessentities.network.ExternalVnicProfileMapping;
import org.ovirt.engine.core.compat.Guid;
/**
* The class wraps an <code>ExternalVnicProfileMapping</code> and adds the indication of whether it was changed or not.
* Using <code>ExternalVnicProfileMapping.vnicProfileId == null</code> isn't an option as null is one of the valid
* values for the field.
*/
public class VnicProfileMappingEntity {
private boolean changed;
private final ExternalVnicProfileMapping externalVnicProfileMapping;
public VnicProfileMappingEntity(String externalNetworkName,
String externalNetworkProfileName,
Guid vnicProfileId) {
this.externalVnicProfileMapping =
new ExternalVnicProfileMapping(externalNetworkName, externalNetworkProfileName, vnicProfileId);
}
public VnicProfileMappingEntity(VnicProfileMappingEntity that) {
this(that.getExternalNetworkName(), that.getExternalNetworkProfileName(), that.getVnicProfileId());
this.changed = that.changed;
}
public void setVnicProfileId(Guid vnicProfileId) {
externalVnicProfileMapping.setVnicProfileId(vnicProfileId);
setChanged();
}
public String getExternalNetworkName() {
return externalVnicProfileMapping.getExternalNetworkName();
}
public String getExternalNetworkProfileName() {
return externalVnicProfileMapping.getExternalNetworkProfileName();
}
public Guid getVnicProfileId() {
return externalVnicProfileMapping.getVnicProfileId();
}
public boolean isChanged() {
return changed;
}
private void setChanged() {
this.changed = true;
}
public ExternalVnicProfileMapping getExternalVnicProfileMapping() {
return externalVnicProfileMapping;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof VnicProfileMappingEntity)) {
return false;
}
final VnicProfileMappingEntity that = (VnicProfileMappingEntity) o;
return Objects.equals(externalVnicProfileMapping, that.externalVnicProfileMapping);
}
@Override
public int hashCode() {
return Objects.hash(externalVnicProfileMapping);
}
}