Mercurial > hg > classical
view utilities/widgettest/widgettest.cpp @ 53:bcea875d8d2f tip
More build fixes
author | Chris Cannam |
---|---|
date | Thu, 16 Oct 2014 19:03:51 +0100 |
parents | add3570c6035 |
children |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ #include <dataquay/Uri.h> #include "TypingSelectWidget.h" #include "TypeRegistrar.h" #include "Objects.h" #include "Matcher.h" #include <dataquay/BasicStore.h> #include <dataquay/RDFException.h> #include <dataquay/objectmapper/ObjectLoader.h> #include <dataquay/objectmapper/TypeMapping.h> #include <QApplication> #include <iostream> using namespace ClassicalData; using namespace Dataquay; using namespace std; /* ostream &operator<<(ostream &target, const QString &str) { return target << str.toLocal8Bit().data(); } ostream &operator<<(ostream &target, const QUrl &u) { return target << "<" << u.toString() << ">"; } */ void usage(const char *name) { int s = 0; for (int i = 0; name[i]; ++i) if (name[i] == '/') s = i + 1; name = name + s; cerr << "Usage:" << endl; cerr << " " << name << " <input-rdf-file>" << endl; exit(2); } bool load(BasicStore *store, QString fileName) { QUrl url = QUrl::fromLocalFile(fileName); cerr << "Importing from URL " << url << " ..."; try { store->import(url, BasicStore::ImportPermitDuplicates); } catch (RDFException e) { cerr << " retrying with explicit ntriples type..."; try { store->import(url, BasicStore::ImportPermitDuplicates, "ntriples"); } catch (RDFException e) { cerr << "failed" << endl; cerr << "Import failed: " << e.what() << endl; return false; } } cerr << " done" << endl; return true; } int main(int argc, char **argv) { QApplication app(argc, argv); if (argc != 2) usage(argv[0]); QString inFileName = argv[1]; BasicStore *store = new BasicStore(); store->setBaseUri(Uri("http://dbtune.org/classical/resource/")); ObjectLoader *loader = new ObjectLoader(store); TypeMapping tm; TypeRegistrar::registerTypes(); TypeRegistrar::addMappings(store, &tm); loader->setTypeMapping(tm); if (!load(store, inFileName)) { cerr << "Failed to load data source" << endl; return 1; } cerr << "Imported RDF data, mapping to objects..."; QObjectList objects = loader->loadAll(); cerr << " done" << endl; delete loader; QList<Composer *> composers; foreach (QObject *o, objects) { Composer *c = qobject_cast<Composer *>(o); if (c) composers.push_back(c); } ComposerTypingThoroughMatcher matcher(composers); TypingSelectWidget *w = new TypingSelectWidget(); w->addMatcher(&matcher); w->show(); app.exec(); }