public Difference difference()

in src/org/jetbrains/ether/dependencyView/ProtoMember.java [86:142]


    public Difference difference(final Proto past) {
        final ProtoMember m = (ProtoMember) past;
        final Difference diff = super.difference(past);
        int base = diff.base();

        if (!m.type.equals(type)) {
            base |= Difference.TYPE;
        }

        switch ((value == null ? 0 : 1) + (m.value == null ? 0 : 2)) {
            case 3:
                if (!value.equals(m.value)) {
                    base |= Difference.VALUE;
                }
                break;

            case 2:
                base |= Difference.VALUE;
                break;

            case 1:
                base |= Difference.VALUE;
                break;

            case 0:
                break;
        }

        final int newBase = base;

        return new Difference () {
            @Override
            public int base() {
                return newBase;
            }

            @Override
            public boolean no() {
                return newBase == Difference.NONE && diff.no();
            }

            @Override
            public int addedModifiers() {
                return diff.addedModifiers();
            }

            @Override
            public int removedModifiers() {
                return diff.removedModifiers();
            }

            @Override
            public boolean packageLocalOn() {
                return diff.packageLocalOn();
            }
        };
    }