void addItem()

in src/main/java/org/apache/bsf/util/MethodUtils.java [51:72]


        void addItem(final Object newEntry) {
            if (size() == 0) {
                addElement(newEntry);
            } else {
                final Class[] newargs = entryGetParameterTypes(newEntry);
                boolean keep = true;
                for (final Enumeration e = elements(); keep & e.hasMoreElements();) {
                    final Object oldEntry = e.nextElement();
                    // CAVEAT: Implicit references to enclosing class!
                    final Class[] oldargs = entryGetParameterTypes(oldEntry);
                    if (areMethodConvertable(oldargs, newargs)) {
                        removeElement(oldEntry); // New more specific; discard old
                    } else if (areMethodConvertable(newargs, oldargs)) {
                        keep = false; // Old more specific; discard new
                        // Else they're tied. Keep both and hope someone beats both.
                    }
                }
                if (keep) {
                    addElement(newEntry);
                }
            }
        }