@Override public int hashCode() { int result = resourceURI.hashCode(); result = 31 * result + (nextProtocol != null ? nextProtocol.hashCode() : 0); result = 31 * result + (transport != null ? transport.hashCode() : 0); result = 31 * result + (transportURI != null ? transportURI.hashCode() : 0); result = 31 * result + (alternate != null ? alternate.hashCode() : 0); result = 31 * result + (resolver != null ? resolver.hashCode() : 0); result = 31 * result + (qualifier != null ? qualifier.hashCode() : 0); result = 31 * result + (getTransportedURI() != null ? getTransportedURI().hashCode() : 0); return result; }
@SuppressWarnings("unchecked") protected <V> V getOption0(ResourceOption<V> option) { if (option instanceof DefaultResourceOption) { DefaultResourceOption resourceOption = (DefaultResourceOption)option; switch(resourceOption.kind) { case NEXT_PROTOCOL: return (V) nextProtocol; case TRANSPORT: return (V) transport; case TRANSPORT_URI: return (V) transportURI; case ALTERNATE: return (V) alternate; case RESOLVER: return (V) resolver; case BIND_ALTERNATE: return (V) bindAlternate; case QUALIFIER: return (V) qualifier; case TRANSPORTED_URI: return (V) getTransportedURI(); case CONNECT_REQUIRES_INIT: return (V) connectRequiresInit; case IDENTITY_RESOLVER: return (V) identityResolver; } } throw new IllegalArgumentException(format("Unrecognized option: %s", option)); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ResourceAddress address = (ResourceAddress) o; if (!resourceURI.equals(address.resourceURI)) return false; if (nextProtocol != null ? !nextProtocol.equals(address.nextProtocol) : address.nextProtocol != null) return false; if (transport != null ? !transport.equals(address.transport) : address.transport != null) return false; if (transport == null && (transportURI != null ? !transportURI.equals(address.transportURI) : address.transportURI != null)) return false; if (alternate != null ? !alternate.equals(address.alternate) : address.alternate != null) return false; if (resolver != null ? !resolver.equals(address.resolver) : address.resolver != null) return false; if (qualifier != null ? !qualifier.equals(address.qualifier) : address.qualifier != null) return false; return !(getTransportedURI() != null ? !getTransportedURI().equals(address.getTransportedURI()) : address.getTransportedURI() != null); }
@Override public final <T> boolean hasOption(ResourceOption<T> option) { if (option instanceof DefaultResourceOption) { DefaultResourceOption resourceOption = (DefaultResourceOption)option; switch(resourceOption.kind) { case NEXT_PROTOCOL: return nextProtocol != null; case TRANSPORT: return transport != null; case TRANSPORT_URI: return transportURI != null; case ALTERNATE: return alternate != null; case RESOLVER: return resolver != null; case BIND_ALTERNATE: return bindAlternate != null; case QUALIFIER: return qualifier != null; case TRANSPORTED_URI: return getTransportedURI() != null; case CONNECT_REQUIRES_INIT: return connectRequiresInit != null; case IDENTITY_RESOLVER: return (identityResolver != null); } } return hasOption0(option); }