if (baselineMethods.isEmpty() && currentMethods.isEmpty()) {  } else if (baselineMethods.isEmpty()) { reportMethodsAdded(currentVersion, currentMethods); } else if (currentMethods.isEmpty())
if (!baselineMethods.isEmpty())
    public final boolean check(JavaClass compatBaseline, JavaClass currentVersion)    {        // Dont't report method problems when gender has changed, as        // really the whole API is a pile of crap then - let GenderChange check        // do it's job, and that's it        if (compatBaseline.isInterface() ^ currentVersion.isInterface())        {            return true;        }        // The main problem here is to figure out which old method corresponds to which new method.        // Methods that are named differently are trated as unrelated        //        // For Methods that differ only in their parameter list we build a similarity table, i.e.        // for new method i and old method j we have number that charaterizes how similar        // the method signatures are (0 means equal, higher number means more different)        Map bNameToMethod = buildNameToMethodMap(compatBaseline);        Map cNameToMethod = buildNameToMethodMap(currentVersion);        CoIterator iter = new CoIterator(null, bNameToMethod.keySet(), cNameToMethod.keySet());        while (iter.hasNext())        {            iter.next();            String baselineMethodName = (String) iter.getLeft();            String currentMethodName = (String) iter.getRight();            if (baselineMethodName == null)            {                // a new method name has been added in the new version                List currentMethods = (List) cNameToMethod.get(currentMethodName);                reportMethodsAdded(currentVersion, currentMethods);            }            else if (currentMethodName == null)            {                // all methods with name x have been removed from the old version                List baselineMethods = (List) bNameToMethod.get(baselineMethodName);                reportMethodsRemoved(compatBaseline, baselineMethods, currentVersion);            }            else            {                // assert baselineMethodName equals currentMethodName                List baselineMethods = (List) bNameToMethod.get(baselineMethodName);                List currentMethods = (List) cNameToMethod.get(currentMethodName);                filterSoftMatchedMethods(                    compatBaseline, baselineMethods,                    currentVersion, currentMethods);                filterChangedMethods(                    baselineMethodName,                    compatBaseline, baselineMethods,                     currentVersion, currentMethods);                if (baselineMethods.isEmpty() && currentMethods.isEmpty())                {                    // ok, all done                }                else if (baselineMethods.isEmpty())                {                    reportMethodsAdded(currentVersion, currentMethods);                }                else if (currentMethods.isEmpty())                {                    reportMethodsRemoved(compatBaseline, baselineMethods, currentVersion);                }                else                {                    // error: this should not happen                    throw new RuntimeException(                        "Internal error in Clirr: one or more methods"                        + " on input class [" + compatBaseline.getClassName()                        + "] were not correlated.");                }            }        }        return true;    }