diff options
Diffstat (limited to 'offapi/com/sun/star/util/XTextSearch.idl')
-rw-r--r-- | offapi/com/sun/star/util/XTextSearch.idl | 176 |
1 files changed, 2 insertions, 174 deletions
diff --git a/offapi/com/sun/star/util/XTextSearch.idl b/offapi/com/sun/star/util/XTextSearch.idl index 38f44aa7c..136366465 100644 --- a/offapi/com/sun/star/util/XTextSearch.idl +++ b/offapi/com/sun/star/util/XTextSearch.idl @@ -31,184 +31,12 @@ #include <com/sun/star/lang/Locale.idl> #include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/util/SearchOptions.idl> +#include <com/sun/star/util/SearchResult.idl> module com { module sun { module star { module util { -published enum SearchAlgorithms -{ - /// Literal - ABSOLUTE, // implemented as a kind of Boyer-Moore - /// Regular expression - REGEXP, - /// Weighted Levenshtein Distance - APPROXIMATE -}; - -/// Flags for search methods -published constants SearchFlags -{ - /** - @deprecated The constant ALL_IGNORE_CASE is never supported - use - <const scope="com::sun::star::i18n">TransliterationModules::IGNORE_CASE</const> - with - <member>SearchOptions::transliterateFlags</member> - instead. - - @see <type scope="com::sun::star::i18n">TransliterationModules</type> - */ - const long ALL_IGNORE_CASE = 0x00000001; - - /** Flag for normal (Boyer-Moore) search / Search for word only. */ - const long NORM_WORD_ONLY = 0x00000010; - - /** Flag for "regular expression" search / Interpret as extended - regular expression. - - @deprecated The flag is currently not supported by OOo. - */ - const long REG_EXTENDED = 0x00000100; - - /** Flag for "regular expression" search / No register information - or backreferences, i.e., avoid sub expressions. Return only - true/false if matched or not. - - @deprecated The flag is currently not supported by OOo. - */ - const long REG_NOSUB = 0x00000200; - - /** Flag for "regular expression" search / Special new line - treatment. - - @deprecated The flag is currently not supported by OOo. - - <p> A NEWLINE character in string will not be matched by a - period outside bracket expression or by any form of a non - matching list. </p> - - <p> A circumflex (^) in pattern when used to specify expression - anchoring will match the zero length string immediately after a - newline in string, regardless of the setting of - REG_NOT_BEGINOFLINE. </p> - - <p> 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_NOT_ENDOFLINE. </p> - */ - const long REG_NEWLINE = 0x00000400; - - /** 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_BEGINOFLINE = 0x00000800; - - /** The last character in the string is not the end of the line - therefore $ will not match with last character of the string. - */ - const long REG_NOT_ENDOFLINE = 0x00001000; - - /** Flag for "Weighted Levenshtein Distance" search / Relaxed - checking of limit, split weigh pools. - - <p> If not specified (<b>strict</b>), the search is sucessful if - the WLD is within a calculated limit where each insertion, - deletion and replacement adds a weight to a common pool of - weights. This is the mathematically correct WLD. </p> - - <p> From a user's point of view the strict WLD is an - exclusive-OR of the arguments given, for example if allowed - insertions=2 and allowed replacements=2, the search fails if 2 - characters had been inserted and an additional operation would - be needed to match. Depending on the weights it may also fail if - 1 character was inserted and 1 character replaced and an - additional operation would be needed to match. The strict - algorithm may match less than expected from a first glance of - the specified arguments, but does not return false positives. </p> - - <p> If specified (<b>relaxed</b>), the search is also successful - if the combined pool for insertions and deletions is below a - doubled calculated limit and replacements are treated - differently. Additionally, swapped characters are counted as one - replacement. </p> - - <p> From a user's point of view the relaxed WLD is an - inclusive-OR of the arguments given, for example if allowed - insertions=2 and allowed replacements=2, the search succeeds if - 2 characters had been inserted and an additional replacement is - needed to match. The relaxed algorithm may return false - positives, but meets user expectation better. </p> - */ - const long LEV_RELAXED = 0x00010000; -}; - - -published struct SearchOptions { - //------------------------------------------------------------------------- - /** search type */ - SearchAlgorithms algorithmType; - - /** some flags - can be mixed - - @see <type>SearchFlags</type> - */ - long searchFlag; - - /** The text or pattern to be searched. */ - string searchString; - - /** The replacement text - (is for optional replacing - SearchOption is only the data container for it) */ - string replaceString; - - /** The locale for case insensitive search. */ - ::com::sun::star::lang::Locale Locale; - - /** This many characters can be different (as a replacement) between - the found word and the search pattern in a "Weighted Levenshtein - Distance" search. */ - long changedChars; - - /** This many characters can be missing in the found word in a - "Weighted Levenshtein Distance" search. */ - long deletedChars; - - /** This many characters can be additional in the found word in a - "Weighted Levenshtein Distance" search. */ - long insertedChars; - - /** Flags for the transliteration. Same meaning as the enum of - <type scope="com::sun::star::i18n">TransliterationModules</type> - */ - 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 |