summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/util/XTextSearch.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/util/XTextSearch.idl')
-rw-r--r--offapi/com/sun/star/util/XTextSearch.idl190
1 files changed, 190 insertions, 0 deletions
diff --git a/offapi/com/sun/star/util/XTextSearch.idl b/offapi/com/sun/star/util/XTextSearch.idl
new file mode 100644
index 000000000000..cc9e45058c47
--- /dev/null
+++ b/offapi/com/sun/star/util/XTextSearch.idl
@@ -0,0 +1,190 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_lang_XTextSearch_idl__
+#define __com_sun_star_lang_XTextSearch_idl__
+
+
+#include <com/sun/star/lang/Locale.idl>
+#include <com/sun/star/uno/XInterface.idl>
+//#include <com/sun/star/lang/CascadeTransliterator.idl>
+
+//=============================================================================
+
+module com { module sun { module star { module util {
+
+//=============================================================================
+
+
+published enum SearchAlgorithms {
+ ABSOLUTE, // "normal" a kind of Boyer-Moore
+ REGEXP, // regular expression
+ APPROXIMATE // Leveinstein distance
+};
+
+published constants SearchFlags
+{
+ //Flag for all search methods
+
+ /**
+ @deprecated : the constant ALL_IGNORE_CASE is never supported -
+ it must use the transliteration flags of
+ the SearchOptions.
+ <p>@see TransliterationModulesNew
+ */
+ const long ALL_IGNORE_CASE = 0x00000001;
+
+ /// Flag for normal (Boyer-Moore) search
+ const long NORM_WORD_ONLY = 0x00000010;
+
+ /// Flag for "regular expression" search / interpret as extended regular expression
+ const long REG_EXTENDED = 0x00000100;
+ /** Flag for "regular expression" search / No replace, i.e., avoid sub regular
+ expresions, return true/false to match
+
+<!-- JRH: Check this for sense of the expression. -->
+ */
+ const long REG_NOSUB = 0x00000200;
+
+ /// Flag for "regular expression" search / Special new line treatment
+ const long REG_NEWLINE = 0x00000400;
+
+ /** A NEWLINE character in string will not be matched by a period outside bracket
+ expression or by any form of a non matching list.
+ A circumflex (^) in pattern when used to specify expression anchoring
+<!-- JRH: anhoring to anchoring. -->
+ will match the zero length string immediately after a newline in string,
+ regardless of the setting of REG_NOTBOL
+ A dollar-sign ($) in pattern when used to specify expression anchoring,
+ will match zero-length string immediately before a new line in string,
+ regardless of the setting of REG_NOTEOL
+*/
+ const long REG_NOT_BEGINOFLINE = 0x00000800;
+
+ /** The first character in the string is not the beginning of the line therefore ^ will not
+ match with first character of the string
+ */
+ const long REG_NOT_ENDOFLINE = 0x00001000;
+
+
+ /// Flags for "Weight Levenshtein-Distance" search
+ const long LEV_RELAXED = 0x00010000;
+};
+
+
+published struct SearchOptions {
+ //-------------------------------------------------------------------------
+ /// search type, can be: ABSOLUTE, REGEXP, APPROXIMATE
+ SearchAlgorithms algorithmType;
+
+ /** some flags - can be mixed
+
+ @see SearchFlags
+ */
+ long searchFlag;
+
+ /// the search text
+ string searchString;
+
+ /** the replace text
+ (is for optional replacing - SearchOption is only the data container for it)*/
+ string replaceString;
+
+ /// this is the language for case insensitive search
+ ::com::sun::star::lang::Locale Locale;
+
+ /** this many characters can be different between the found and search word
+ in a "Weight Levenshtein-Distance"*/
+ long changedChars;
+
+ /** this many characters can be missed in the found word
+ in a "Weight Levenshtein-Distance"*/
+ long deletedChars;
+
+ /// this many characters can be additional in the found word in a "Weight Levenshtein-Distance"
+ long insertedChars;
+
+ /** asian flags for the transliteration. Same meaning as the enum of TransliteratorModule
+
+ @see com/sun/star/i18n/XTransliteration.idl
+ */
+ long transliterateFlags;
+};
+
+
+published struct SearchResult {
+ //-------------------------------------------------------------------------
+ /** Number of subexpressions,
+ if it is 0, then no match found; this value is 1 for ABSOLUTE and APPROXIMATE match.
+ The start and endOffset are always dependent on the search direction.
+ For example:
+ if you search "X" in the text "-X-" the offset are:
+ for forward: start = 1, end = 2
+ for backward: start = 2, end = 1
+ Forward, the startOffset is inclusive, the endOffset exclusive.
+ Backward, the startOffset is exclusive, the endOffset inclusive.
+
+ For regular expressions it can be greater than 1.
+ If the value is 1, startoffset[0] and endoffset[0] points to the matching sub string
+ if value is > 1, still startoffset[0] and endoffset[0] points to the matching substring for whole regular expression
+ startoffset[i] and endoffset[i] points to the matching substring of i th matching substring.
+ */
+ long subRegExpressions;
+ sequence<long> startOffset; // inclusive
+ sequence<long> endOffset; // exclusive
+};
+
+
+
+/** enables an object to search in its content.
+ */
+published interface XTextSearch : com::sun::star::uno::XInterface
+{
+ //-------------------------------------------------------------------------
+ /** set the options for the forward or backward search.
+
+ */
+ void setOptions ([in] SearchOptions options);
+ //-------------------------------------------------------------------------
+ /** search forward in the searchStr, starts at startPos and ends by endpos.
+ The result is returned in the SearchResult.
+
+ */
+ SearchResult searchForward ([in] string searchStr, [in] long startPos, [in] long endPos );
+ //-------------------------------------------------------------------------
+ /** search backward in the searchStr, starts at startPos and ends by endpos.
+ The endpos must be lower then the startpos, because the function searches backward!
+ The result is returned in the SearchResult.
+
+ */
+ SearchResult searchBackward ([in] string searchStr, [in] long startPos, [in] long endPos );
+};
+
+//=============================================================================
+}; }; }; };
+
+#endif