class OpenIdConnectTokenGenerationState {

    @Override
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (!(other instanceof OpenIdConnectTokenGenerationState)) {
            return false;
        }
        OpenIdConnectTokenGenerationState otherState = (OpenIdConnectTokenGenerationState)other;
        return Objects.equal(authenticationContextClassReference, otherState.authenticationContextClassReference) &&
                Objects.equal(authenticationModeReferences, otherState.authenticationModeReferences) &&
                Objects.equal(nonce, otherState.nonce) &&
                authenticationTimeInSeconds == otherState.authenticationTimeInSeconds;
    }

    private  OpenIdConnectTokenGenerationState(OpenIdConnectTokenGenerationStateBuilder builder);

}