Beispiel #1
0
void Field::ConstructField(const String& name, const String& value, Store store, Index index, TermVector termVector) {
    if (name.empty() && value.empty()) {
        boost::throw_exception(IllegalArgumentException(L"name and value cannot both be empty"));
    }
    if (index == INDEX_NO && store == STORE_NO) {
        boost::throw_exception(IllegalArgumentException(L"it doesn't make sense to have a field that is neither indexed nor stored"));
    }
    if (index == INDEX_NO && termVector != TERM_VECTOR_NO) {
        boost::throw_exception(IllegalArgumentException(L"cannot store term vector information for a field that is not indexed"));
    }

    this->_name = name;
    this->fieldsData = value;
    this->_isStored = isStored(store);
    this->_isIndexed = isIndexed(index);
    this->_isTokenized = isAnalyzed(index);
    this->_omitNorms = omitNorms(index);
    this->_isBinary = false;

    if (index == INDEX_NO) {
        this->omitTermFreqAndPositions = false;
    }

    setStoreTermVector(termVector);
}
Beispiel #2
0
TCHAR* Field::toString() {
    CL_NS(util)::StringBuffer result;
    if (isStored()) {
        result.append( _T("stored") );
    }
    if (isIndexed()) {
        if (result.length() > 0)
            result.append( _T(",") );
        result.append( _T("indexed") );
    }
    if (isTokenized()) {
        if (result.length() > 0)
            result.append( _T(",") );
        result.append( _T("tokenized") );
    }
    if (isTermVectorStored()) {
        if (result.length() > 0)
            result.append( _T(",") );
        result.append( _T("termVector") );
    }
    if (isStoreOffsetWithTermVector()) {
        if (result.length() > 0)
            result.appendChar( ',' );
        result.append( _T("termVectorOffsets") );
    }
    if (isStorePositionWithTermVector()) {
        if (result.length() > 0)
            result.appendChar( ',' );
        result.append( _T("termVectorPosition") );
    }
    if (isBinary()) {
        if (result.length() > 0)
            result.appendChar( ',' );
        result.append( _T("binary") );
    }
    if (getOmitNorms()) {
        result.append( _T(",omitNorms") );
    }
    result.appendChar('<');
    result.append(name());
    result.appendChar(':');

    if (_stringValue != NULL)
        result.append(_stringValue);
    else if ( _readerValue != NULL )
        result.append( _T("Reader") );
    else if ( _streamValue != NULL )
        result.append( _T("Stream") );
    else
        result.append( _T("NULL") );

    result.appendChar('>');
    return result.toString();
}
Beispiel #3
0
void BaseRecord<T>::revert()
{
	if (isStored()) {
		if (isDirty()) {
			getEngine()->template fetchById<T>(id());
		}
		// else: don't need any action
	} else {
		// throw some error...
	}
}
Beispiel #4
0
void Field::ConstructField(const String& name, ByteArray value, int32_t offset, int32_t length, Store store) {
    if (store == STORE_NO) {
        boost::throw_exception(IllegalArgumentException(L"binary values can't be unstored"));
    }

    this->_name = name;
    this->fieldsData = value;
    this->_isStored = isStored(store);
    this->_isIndexed = false;
    this->_isTokenized = false;
    this->omitTermFreqAndPositions = false;
    this->_omitNorms = true;
    this->_isBinary = true;
    this->binaryLength = length;
    this->binaryOffset = offset;

    setStoreTermVector(TERM_VECTOR_NO);
}
Beispiel #5
0
void AutoFillModel::completePage(WebPage* page)
{
    if (!page) {
        return;
    }

    QUrl pageUrl = page->url();
    if (!isStored(pageUrl)) {
        return;
    }

    QWebElementCollection inputs;
    QList<QWebFrame*> frames;
    frames.append(page->mainFrame());
    while (!frames.isEmpty()) {
        QWebFrame* frame = frames.takeFirst();
        inputs.append(frame->findAllElements("input"));
        frames += frame->childFrames();
    }

    QString server = pageUrl.host();
    if (server.isEmpty()) {
        server = pageUrl.toString();
    }

    QSqlQuery query;
    query.prepare("SELECT data FROM autofill WHERE server=?");
    query.addBindValue(server);
    query.exec();
    query.next();
    QByteArray data = query.value(0).toByteArray();
    if (data.isEmpty()) {
        return;
    }

    // Why not to use encodedQueryItems = QByteArrays ?
    // Because we need to filter "+" characters that must be spaces
    // (not real "+" characters "%2B")

    QueryItems arguments = QUrl::fromEncoded("http://bla.com/?" + data).queryItems();
    for (int i = 0; i < arguments.count(); i++) {
        QString key = arguments.at(i).first;
        QString value = arguments.at(i).second;
        key.replace("+", " ");
        value.replace("+", " ");

        key = QUrl::fromEncoded(key.toUtf8()).toString();
        value = QUrl::fromEncoded(value.toUtf8()).toString();

        for (int i = 0; i < inputs.count(); i++) {
            QWebElement element = inputs.at(i);

            if (element.attribute("type") != "text" && element.attribute("type") != "password" && element.attribute("type") != "") {
                continue;
            }
            if (key == element.attribute("name")) {
                element.setAttribute("value", value);
            }
        }
    }
}
Beispiel #6
0
	bool isTseitinWithSubformula(int atom) const {
		return isStored(atom) && (getType(atom) == AtomType::TSEITINWITHSUBFORMULA || getType(atom) == AtomType::CPGRAPHEQ);
	}
Beispiel #7
0
	bool isInputAtom(int atom) const {
		return isStored(atom) && (getType(atom) == AtomType::INPUT || getType(atom) == AtomType::CPGRAPHEQ);
	}