class TokenGenerationServiceInvocationState {

    @Override
    public boolean equals(Object other) {
        if (other == this) {
            return true;
        }
        if (other instanceof TokenGenerationServiceInvocationState) {
            TokenGenerationServiceInvocationState oc = (TokenGenerationServiceInvocationState)other;
            return ssoTokenString.equals(oc.getSsoTokenString()) &&
                    tokenType.equals(oc.getTokenType()) &&
                    stsInstanceId.equals(oc.getStsInstanceId()) &&
                    stsType.equals(oc.getStsType()) &&
                    Objects.equal(saml2TokenGenerationState, oc.getSaml2TokenGenerationState()) &&
                    Objects.equal(openIdConnectTokenGenerationState, oc.getOpenIdConnectTokenGenerationState()) &&
                    realm.equals(oc.getRealm());
        }
        return false;
    }

    private  TokenGenerationServiceInvocationState(TokenGenerationServiceInvocationStateBuilder builder);

}