class PortFragmentId {

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (!(obj instanceof PortFragmentId)) {
            return false;
        }
        PortFragmentId that = (PortFragmentId) obj;
        return Objects.equals(this.deviceId, that.deviceId) &&
               Objects.equals(this.portNumber, that.portNumber) &&
               Objects.equals(this.providerId, that.providerId);
    }

    public  PortFragmentId(DeviceId deviceId, ProviderId providerId,
                          PortNumber portNumber);
    @SuppressWarnings("unused") private  PortFragmentId();

}