silentbalanceyh/vertx-zero

View on GitHub
vertx-gaia/vertx-co/src/main/java/io/vertx/up/commune/config/Identity.java

Summary

Maintainability
A
0 mins
Test Coverage
package io.vertx.up.commune.config;

import io.horizon.specification.typed.TCopy;

import java.io.Serializable;
import java.util.Objects;

/*
 * Identifier structure for identifier
 * 1) static identifier: the definition of direct
 * 2) dynamic identifier: the identifier came from identifierComponent
 */
public class Identity implements Serializable, TCopy<Identity> {
    private String identifier;
    private String sigma;
    private Class<?> identifierComponent;

    public String getIdentifier() {
        return this.identifier;
    }

    public void setIdentifier(final String identifier) {
        this.identifier = identifier;
    }

    public Class<?> getIdentifierComponent() {
        return this.identifierComponent;
    }

    public void setIdentifierComponent(final Class<?> identifierComponent) {
        this.identifierComponent = identifierComponent;
    }

    public String getSigma() {
        return this.sigma;
    }

    public void setSigma(final String sigma) {
        this.sigma = sigma;
    }

    @Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof final Identity identity)) {
            return false;
        }
        return this.identifier.equals(identity.identifier) &&
            this.sigma.equals(identity.sigma) &&
            this.identifierComponent.equals(identity.identifierComponent);
    }

    @Override
    @SuppressWarnings("unchecked")
    public <CHILD extends Identity> CHILD copy() {
        final Identity identity = new Identity();
        identity.identifier = this.identifier;
        identity.sigma = this.sigma;
        identity.identifierComponent = this.identifierComponent;
        return (CHILD) identity;
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.identifier, this.sigma, this.identifierComponent);
    }

    @Override
    public String toString() {
        return "Identity{" +
            "identifier='" + this.identifier + '\'' +
            ", sigma='" + this.sigma + '\'' +
            ", identifierComponent=" + this.identifierComponent +
            '}';
    }
}