diff options
Diffstat (limited to 'offapi/com/sun/star/util/XTextSearch.idl')
-rw-r--r-- | offapi/com/sun/star/util/XTextSearch.idl | 190 |
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 |