// Path: graphql-core/src/main/java/io/engagingspaces/graphql/discovery/Registration.java
// public interface Registration {
// 
//     /**
//      * @return the service discovery instance this registration is for
//      */
//     ServiceDiscovery getDiscovery();
// 
//     /**
//      * Gets the service discovery options that were used to create the service discovery.
//      * <p>
//      * Service discovery options are required for discovery management in publishers and consumers, but may
//      * be {@code null} for un-managed registrations (i.e. those created by invoking `GraphQLService` and `GraphQLClient`
//      * directly).
//      *
//      * @return the service discovery options
//      */
//     ServiceDiscoveryOptions getDiscoveryOptions();
// }


import io.engagingspaces.graphql.discovery.Registration;
import io.vertx.servicediscovery.ServiceDiscovery;
import io.vertx.servicediscovery.ServiceDiscoveryOptions;
import java.util.Objects;
    }

    /**
     * @param other the object to compare to this registration
     * @return {@code true} when equal, {@code false} otherwise
     */
    @Override
    public boolean equals(Object other) {
        if (other == this) {
            return true;
        }
        if (!(other instanceof AbstractRegistration)) {
            return false;
        }
        AbstractRegistration test = (AbstractRegistration) other;
        return fieldEquals(discovery, test.discovery) && fieldEquals(options.getName(), test.options.getName());
    }

    private static boolean fieldEquals(Object value1, Object value2) {
        return value1 == null ? value2 == null : value1.equals(value2);
    }

    /**
     * @return the hash code of the registration
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + (discovery == null ? 0 : discovery.hashCode());
        result = 31 * result + (options.getName() == null ? 0 : options.getName().hashCode());
// Path: graphql-core/src/main/java/io/engagingspaces/graphql/discovery/Registration.java
// public interface Registration {
// 
//     /**
//      * @return the service discovery instance this registration is for
//      */
//     ServiceDiscovery getDiscovery();
// 
//     /**
//      * Gets the service discovery options that were used to create the service discovery.
//      * <p>
//      * Service discovery options are required for discovery management in publishers and consumers, but may
//      * be {@code null} for un-managed registrations (i.e. those created by invoking `GraphQLService` and `GraphQLClient`
//      * directly).
//      *
//      * @return the service discovery options
//      */
//     ServiceDiscoveryOptions getDiscoveryOptions();
// }


// Path: graphql-core/src/main/java/io/engagingspaces/graphql/discovery/impl/AbstractRegistration.java
import io.engagingspaces.graphql.discovery.Registration;
import io.vertx.servicediscovery.ServiceDiscovery;
import io.vertx.servicediscovery.ServiceDiscoveryOptions;
import java.util.Objects;

    }

    /**
     * @param other the object to compare to this registration
     * @return {@code true} when equal, {@code false} otherwise
     */
    @Override
    public boolean equals(Object other) {
        if (other == this) {
            return true;
        }
        if (!(other instanceof AbstractRegistration)) {
            return false;
        }
        AbstractRegistration test = (AbstractRegistration) other;
        return fieldEquals(discovery, test.discovery) && fieldEquals(options.getName(), test.options.getName());
    }

    private static boolean fieldEquals(Object value1, Object value2) {
        return value1 == null ? value2 == null : value1.equals(value2);
    }

    /**
     * @return the hash code of the registration
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + (discovery == null ? 0 : discovery.hashCode());
        result = 31 * result + (options.getName() == null ? 0 : options.getName().hashCode());
        return result;