class DefaultVirtualPort implements VirtualPort {

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof DefaultVirtualPort) {
            final DefaultVirtualPort that = (DefaultVirtualPort) obj;
            return Objects.equals(this.id, that.id)
                    && Objects.equals(this.networkId, that.networkId)
                    && Objects.equals(this.adminStateUp, that.adminStateUp)
                    && Objects.equals(this.state, that.state)
                    && Objects.equals(this.name, that.name)
                    && Objects.equals(this.tenantId, that.tenantId)
                    && Objects.equals(this.macAddress, that.macAddress)
                    && Objects.equals(this.deviceId, that.deviceId)
                    && Objects.equals(this.deviceOwner, that.deviceOwner)
                    && Objects.equals(this.allowedAddressPairs,
                                      that.allowedAddressPairs)
                    && Objects.equals(this.fixedIps, that.fixedIps)
                    && Objects.equals(this.bindingHostId, that.bindingHostId)
                    && Objects.equals(this.bindingVifDetails,
                                      that.bindingVifDetails)
                    && Objects.equals(this.bindingVifType, that.bindingVifType)
                    && Objects.equals(this.bindingVnicType,
                                      that.bindingVnicType)
                    && Objects.equals(this.securityGroups, that.securityGroups);
        }
        return false;
    }

    public  DefaultVirtualPort(VirtualPortId id,
                              TenantNetworkId networkId,
                              Boolean adminStateUp,
                              Map<String, String> strMap,
                              State state,
                              MacAddress macAddress,
                              TenantId tenantId,
                              DeviceId deviceId,
                              Set<FixedIp> fixedIps,
                              BindingHostId bindingHostId,
                              Set<AllowedAddressPair> allowedAddressPairs,
                              Set<SecurityGroup> securityGroups);

}