public static SubscriptionType addState()

in server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/SubscriptionType.java [69:103]


    public static SubscriptionType addState(SubscriptionType old, SubscriptionType add) {
        switch (add) {

        case BOTH:
            throw new RuntimeException("add 'both' not valid");

        case FROM:
            if (!old.acceptsFrom())
                throw new RuntimeException("cannot add " + add.value() + " to " + old.value());
            if (old == NONE)
                return FROM;
            if (old == TO)
                return BOTH;
            throw new RuntimeException("add FROM not supported for " + old.value());

        case NONE:
            return add;

        case REMOVE:
            throw new RuntimeException("add 'remove' not valid");

        case TO:
            if (!old.acceptsTo())
                throw new RuntimeException("cannot add " + add.value() + " to " + old.value());
            if (old == NONE)
                return TO;
            if (old == FROM)
                return BOTH;
            throw new RuntimeException("add TO not supported for " + old.value());

        default:
            throw new RuntimeException("not implemented: adding " + add.value());

        }
    }