void AccelTree::printStats(const NamePool::Ptr &np) const { Q_ASSERT(np); #ifdef QT_NO_DEBUG Q_UNUSED(np); /* Needed when compiling in release mode. */ #else const int len = basicData.count(); pDebug() << "AccelTree stats for" << (m_documentURI.isEmpty() ? QString::fromLatin1("<empty URI>") : m_documentURI.toString()); pDebug() << "Maximum pre number:" << maximumPreNumber(); pDebug() << "+---------------+-------+-------+---------------+-------+--------------+-------+"; pDebug() << "| Pre number | Depth | Size | Post Number | Kind | Name | Value |"; pDebug() << "+---------------+-------+-------+---------------+-------+--------------+-------+"; for(int i = 0; i < len; ++i) { const BasicNodeData &v = basicData.at(i); pDebug() << '|' << i << "\t\t|" << v.depth() << "\t|" << v.size() << "\t|" << postNumber(i) << "\t|" << v.kind() << "\t\t|" << (v.name().isNull() ? QString::fromLatin1("(none)") : np->displayName(v.name())) << "\t\t|" << ((v.kind() == QXmlNodeModelIndex::Text && isCompressed(i)) ? CompressedWhitespace::decompress(data.value(i)) : data.value(i)) << "\t|"; /* pDebug() << '|' << QString().arg(i, 14) << '|' << QString().arg(v.depth(), 6) << '|' << QString().arg(v.size(), 6) << '|' << QString().arg(postNumber(i), 14) << '|' << QString().arg(v.kind(), 6) << '|'; */ } pDebug() << "+---------------+-------+-------+---------------+-------+--------------+"; pDebug() << "Namespaces(" << namespaces.count() << "):"; QHashIterator<PreNumber, QVector<QXmlName> > it(namespaces); while(it.hasNext()) { it.next(); pDebug() << "PreNumber: " << QString::number(it.key()); for(int i = 0; i < it.value().count(); ++i) pDebug() << "\t\t" << np->stringForPrefix(it.value().at(i).prefix()) << " = " << np->stringForNamespace(it.value().at(i).namespaceURI()); } #endif }
Item::Iterator::Ptr InScopePrefixesFN::evaluateSequence(const DynamicContext::Ptr &context) const { const Item e(m_operands.first()->evaluateSingleton(context)); const QVector<QXmlName> nbs(e.asNode().namespaceBindings()); const int len = nbs.size(); const NamePool::Ptr np(context->namePool()); QList<Item> result; for(int i = 0; i < len; ++i) result.append(AtomicString::fromValue(np->stringForPrefix(nbs.at(i).prefix()))); return makeListIterator(result); }