xref: /trunk/main/sw/source/core/undo/SwRewriter.cxx (revision efeef26f)
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 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sw.hxx"
26 
27 #include <algorithm>
28 #include <SwRewriter.hxx>
29 
30 using namespace std;
31 
operator ==(const SwRewriteRule & a,const SwRewriteRule & b)32 bool operator == (const SwRewriteRule & a, const SwRewriteRule & b)
33 {
34     return a.first == b.first;
35 }
36 
SwRewriter()37 SwRewriter::SwRewriter()
38 {
39 }
40 
SwRewriter(const SwRewriter & rSrc)41 SwRewriter::SwRewriter(const SwRewriter & rSrc)
42     : mRules(rSrc.mRules)
43 {
44 }
45 
~SwRewriter()46 SwRewriter::~SwRewriter()
47 {
48 }
49 
AddRule(const String & rWhat,const String & rWith)50 void SwRewriter::AddRule(const String & rWhat, const String & rWith)
51 {
52     SwRewriteRule aRule(rWhat, rWith);
53 
54     vector<SwRewriteRule>::iterator aIt;
55 
56     aIt = find(mRules.begin(), mRules.end(), aRule);
57 
58     if (aIt != mRules.end())
59         *aIt = aRule;
60     else
61         mRules.push_back(aRule);
62 }
63 
Apply(const String & rStr) const64 String SwRewriter::Apply(const String & rStr) const
65 {
66     String aResult = rStr;
67     vector<SwRewriteRule>::const_iterator aIt;
68 
69     for (aIt = mRules.begin(); aIt != mRules.end(); aIt++)
70         aResult.SearchAndReplaceAll(aIt->first, aIt->second);
71 
72     return aResult;
73 }
74 
75