throw new Error("Errors: " + m_errors + "\n\n" + toDot());
ObjectType type = getObjectType(); throw new Error( type.getFilename() + ": " + type.getLineNumber() + " column " + type.getColumnNumber() + " errors generating query: " + m_errors + "\n\n" + toDot() );
    public void generate() {        traverse(BUILD_QUERY);        traverse(CHECK_QUERY);        if (m_errors.size() > 0) {            throw new Error("Errors: " + m_errors + "\n\n" + toDot());        }        // Phase one, identify all the tables from which we must do direct        // selects.        // Phase two, compute the long join paths for those tables.        // Phase three, collapse the long join paths.        // Phase four, add any missing tables required for joins.        // Phase five, remove any redundent tables.    }