public Difference difference()

in src/org/jetbrains/ether/dependencyView/Proto.java [40:89]


    public Difference difference (final Proto past) {
        int diff = Difference.NONE;

        if (past.access != access) {
            diff |= Difference.ACCESS;
        }

        if (! past.signature.equals(signature)) {
            diff |= Difference.SIGNATURE;
        }

        final int base = diff;

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

            @Override
            public boolean no() {
                return base == Difference.NONE;
            }

            @Override
            public int addedModifiers() {
                return ~past.access & access;
            }

            @Override
            public int removedModifiers() {
                return ~access & past.access;
            }

            @Override
            public boolean packageLocalOn() {
                return
                        ((past.access & Opcodes.ACC_PRIVATE) != 0 ||
                                (past.access & Opcodes.ACC_PUBLIC) != 0 ||
                                (past.access & Opcodes.ACC_PROTECTED) != 0
                        )

                                &&

                                ((access & Opcodes.ACC_PRIVATE) == 0 &&
                                        (access & Opcodes.ACC_PROTECTED) == 0 &&
                                        (access & Opcodes.ACC_PUBLIC) == 0);
            }
        };
    }