#include "Xpclucene.h" #include "nsString.h" #include "nsLuceneDocument.h" #include "nsLuceneStringConverter.h" #include "nsLuceneField.h" #include "nsLuceneFactory.h" #include "CLucene/CLConfig.h" #include "CLucene.h" NS_IMPL_ISUPPORTS1(nsLuceneDocument, nsILuceneDocument) nsLuceneDocument::nsLuceneDocument(lucene::document::Document* pDocument, bool pDelete) { mDocument = pDocument; mDelete = pDelete; } nsLuceneDocument::~nsLuceneDocument() { if(mDelete) { delete mDocument; } } lucene::document::Document* nsLuceneDocument::getDocument() { return mDocument; } NS_IMETHODIMP nsLuceneDocument::Get(const nsAString & field, nsAString & _retval) { LUCENETRYCATCH_START nsLuceneStringConverter field32(field); const wchar_t* value = mDocument->get((wchar_t*) field32.get()); if(value) { nsLuceneStringConverter::makeNsString((utf32_t*) value, _retval); } else { _retval.SetIsVoid(PR_TRUE); } return NS_OK; LUCENETRYCATCH_END } NS_IMETHODIMP nsLuceneDocument::Add(nsILuceneField *field) { LUCENETRYCATCH_START lucene::document::Field* f = ((nsLuceneField *) field)->getField(); mDocument->add(*f); return NS_OK; LUCENETRYCATCH_END }