1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef __FRAMEWORK_CLASSES_WILDCARD_HXX_
25 #define __FRAMEWORK_CLASSES_WILDCARD_HXX_
26 
27 //_________________________________________________________________________________________________________________
28 //	my own includes
29 //_________________________________________________________________________________________________________________
30 
31 #include <macros/debug.hxx>
32 
33 //_________________________________________________________________________________________________________________
34 //	interface includes
35 //_________________________________________________________________________________________________________________
36 
37 //_________________________________________________________________________________________________________________
38 //	other includes
39 //_________________________________________________________________________________________________________________
40 #include <rtl/ustring.hxx>
41 
42 //_________________________________________________________________________________________________________________
43 //	const
44 //_________________________________________________________________________________________________________________
45 
46 //_________________________________________________________________________________________________________________
47 //	namespace
48 //_________________________________________________________________________________________________________________
49 
50 namespace framework{
51 
52 //_________________________________________________________________________________________________________________
53 //	declarations
54 //_________________________________________________________________________________________________________________
55 
56 /*-************************************************************************************************************//**
57 	@short			implement wildcard-mechanism for unicode
58 	@descr			This class can be used to get information about the matching of a pattern to a given text.
59 					It's suitable for 8-Bit- AND 16-Bit-strings!
60 
61 	@implements		-
62 	@base			-
63 
64 	@ATTENTION		This class is'nt threadsafe!
65 
66 	@devstatus		deprecated
67 *//*-*************************************************************************************************************/
68 
69 class Wildcard
70 {
71 	//-------------------------------------------------------------------------------------------------------------
72 	//	public methods
73 	//-------------------------------------------------------------------------------------------------------------
74 
75 	public:
76 
77 		//---------------------------------------------------------------------------------------------------------
78 		//	constructor / destructor
79 		//---------------------------------------------------------------------------------------------------------
80 
81 		/*-****************************************************************************************************//**
82 			@short      standard ctor
83 			@descr		We do nothing here.
84 
85 			@seealso	-
86 
87 			@param		-
88 			@return		-
89 
90 			@onerror	-
91 		*//*-*****************************************************************************************************/
92 
93 		Wildcard();
94 
95 		/*-****************************************************************************************************//**
96 			@short      standard dtor
97 			@descr		We do nothing here.
98 
99 			@seealso	-
100 
101 			@param		-
102 			@return		-
103 
104 			@onerror	-
105 		*//*-*****************************************************************************************************/
106 
107 		virtual ~Wildcard();
108 
109 		//---------------------------------------------------------------------------------------------------------
110 		//	interface
111 		//---------------------------------------------------------------------------------------------------------
112 
113 		/*-****************************************************************************************************//**
114 			@short      try to find an agreement between given text and searchpattern
115 			@descr		You can use wildcards in pattern only!
116 
117 			@seealso	-
118 
119 			@param		"sText" is the text, in which we search given pattern.
120 			@param		"sPattern" is the searched pattern with includes wildcards.
121 			@return		sal_True , if pattern was found.
122 			@return		sal_False, if pattern don't match the text.
123 
124 			@onerror	-
125 		*//*-*****************************************************************************************************/
126 
127 		static sal_Bool match(	const	::rtl::OUString&	sText		,
128 			   					const	::rtl::OUString&	sPattern	);
129 
130 		//---------------------------------------------------------------------------------------------------------
131 		//	debug and test methods
132 		//---------------------------------------------------------------------------------------------------------
133 
134 		/*-****************************************************************************************************//**
135 			@short		debug-methods to check incoming parameter of some other mehods of this class
136 			@descr		The follow methods are used to check parameters for other methods
137 						of this class. The return value is used directly for an ASSERT(...).
138 						This mechanism is active in debug version only!
139 
140 			@seealso	FRAMEWORK_ASSERT in implementation!
141 
142 			@param		references to checking variables
143 			@return		sal_False on invalid parameter
144 			@return		sal_True otherwise
145 
146 			@onerror	-
147 		*//*-*****************************************************************************************************/
148 
149 		#ifdef ENABLE_ASSERTIONS
150 
151 		static sal_Bool impldbg_checkParameter_match(	const	::rtl::OUString&	sText		,
152 			   											const	::rtl::OUString&	sPattern	);
153 
154 		#endif	// #ifdef ENABLE_ASSERTIONS
155 
156 		/*-****************************************************************************************************//**
157 			@short      test implementation of match() with different examples
158 			@descr		If TESTMODE activated, you cann call these method to start and log some special examples.
159 						Do this if you have changed the implementation of method match() to test it.
160 
161 			@seealso	-
162 
163 			@param		-
164 			@return		-
165 
166 			@onerror	Error-conditions are written to file or show in a messagebox.
167 						Thhat depends from current setting of ASSERT_OUTPUTTYPE. (see debug.hxx for further informations.)
168 		*//*-*****************************************************************************************************/
169 
170 		#ifdef ENABLE_CLASSDEBUG
171 
172 		void impldbg_testWildcard();
173 
174 		#endif // #ifdef ENABLE_CLASSDEBUG
175 
176 };		//	class Wildcard
177 
178 }		//	namespace framework
179 
180 #endif	//	#ifndef __FRAMEWORK_CLASSES_WILDCARD_HXX_
181