コード例 #1
0
Soprano::Node Soprano::Index::QueryHitWrapperResultIteratorBackend::binding( int offset ) const
{
    switch( offset ) {
    case 0:
        return m_it.current().resource();
    case 1:
        return LiteralValue( m_it.current().score() );
    default:
        return Node();
    }
}
コード例 #2
0
Soprano::Node Soprano::Index::QueryHitWrapperResultIteratorBackend::binding( const QString &name ) const
{
    if ( name == m_bingingNameCache[0] ) {
        return m_it.current().resource();
    }
    else if ( name == m_bingingNameCache[1] ) {
        return LiteralValue( m_it.current().score() );
    }
    else {
        return Node();
    }
}
コード例 #3
0
Soprano::LiteralValue Soprano::LiteralValue::fromString( const QString& value, const QUrl& type )
{
    if ( type.isEmpty() && value.isEmpty() ) {
        return LiteralValue();
    }
    else {
        LiteralValue v = LiteralValue::fromString( value, typeFromDataTypeUri( type ) );
        Q_ASSERT(!v.isPlain());
        static_cast<const TypedData*>(v.d.constData())->dtUri = type;
        return v;
    }
}
コード例 #4
0
			Node nodeFromString(QString const &value, CppType type = CppType())
			{
				unsigned id = type.metaTypeId();

				if(!value.size())
				{
					if(id == QVariant::String)
						return Node(LiteralValue(value));
					return Node();
				}

				// XXX: maybe fuller support of user types, now assume all user types are
				// resources
				if(id >= QVariant::UserType)
					return Node(QUrl::fromEncoded(value.toAscii()));

				switch(id)
				{
				case CppType::None: break;
				case QVariant::Bool: return Node(LiteralValue(value == "true"));
				case QVariant::Int: return Node(LiteralValue(value.toInt()));
				case QVariant::UInt: return Node(LiteralValue(value.toUInt()));
				case QVariant::LongLong: return Node(LiteralValue(value.toLongLong()));
				case QVariant::ULongLong: return Node(LiteralValue(value.toULongLong()));
				case QVariant::Double: return Node(LiteralValue(value.toDouble()));
				case QVariant::Char: break; // return Node(LiteralValue(QChar));
				case QVariant::Map: break; // return Node(LiteralValue(QVariantMap));
				case QVariant::List: break; // return Node(LiteralValue(QVariantList));
				case QVariant::String: break; // return Node(LiteralValue(QString));
				case QVariant::StringList: break; // return Node(LiteralValue(QStringList));

				case QVariant::ByteArray:
					return Node(LiteralValue(value.toAscii())); // TODO: really?

				case QVariant::BitArray: break; // return Node(LiteralValue(QBitArray));

				case QVariant::Date:
					return Node(LiteralValue(QDate::fromString(value, Qt::ISODate)));

				case QVariant::Time:
					return Node(LiteralValue(QTime::fromString(value, Qt::ISODate)));

				case QVariant::DateTime:
					return Node(LiteralValue(QDateTime::fromString(value, Qt::ISODate)));
				// As of 3.9.2009, tracker is permissive regarding IRI's, so are we.
				case QVariant::Url: return Node(QUrl::fromEncoded(value.toAscii()));
				//	case QVariant::Url:
				//		return Node(QUrl::fromEncoded(value.toAscii(), QUrl::StrictMode));
				default: break;
				}
				return Node(LiteralValue(value));
			}
コード例 #5
0
Soprano::LiteralValue Soprano::LiteralValue::fromString( const QString& value, QVariant::Type type )
{
    switch( type ) {
    case QVariant::Int:
        return LiteralValue( value.toInt() );
    case QVariant::LongLong:
        return LiteralValue( value.toLongLong() );
    case QVariant::UInt:
        return LiteralValue( value.toUInt() );
    case QVariant::ULongLong:
        return LiteralValue( value.toULongLong() );
    case QVariant::Bool:
        return LiteralValue( ( value.toLower() == "true" || value.toLower() == "yes" || value.toInt() != 0 ) );
    case QVariant::Double:
        return LiteralValue( value.toDouble() );
    case QVariant::String:
        return LiteralValue( value );
    case QVariant::Date:
        return LiteralValue( DateTime::fromDateString( value ) );
    case QVariant::Time:
        return LiteralValue( DateTime::fromTimeString( value ) );
    case QVariant::DateTime:
        return LiteralValue( DateTime::fromDateTimeString( value ) );
    case QVariant::ByteArray:
        return LiteralValue( QByteArray::fromBase64( value.toAscii() ) );
    default:
//        qDebug() << "(Soprano::LiteralValue) unknown type: " << type << "storing as string value." << endl;
        return LiteralValue( value );
    }
}