Statistics
| Revision:

root / tmp / org.txm.groovy.core / src / groovy / org / txm / scripts / filters / RegexFilter / RegexFilter.groovy @ 1000

History | View | Annotate | Download (2.1 kB)

1 321 mdecorde
// Copyright © 2010-2013 ENS de Lyon.
2 321 mdecorde
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
3 321 mdecorde
// Lyon 2, University of Franche-Comté, University of Nice
4 321 mdecorde
// Sophia Antipolis, University of Paris 3.
5 321 mdecorde
//
6 321 mdecorde
// The TXM platform is free software: you can redistribute it
7 321 mdecorde
// and/or modify it under the terms of the GNU General Public
8 321 mdecorde
// License as published by the Free Software Foundation,
9 321 mdecorde
// either version 2 of the License, or (at your option) any
10 321 mdecorde
// later version.
11 321 mdecorde
//
12 321 mdecorde
// The TXM platform is distributed in the hope that it will be
13 321 mdecorde
// useful, but WITHOUT ANY WARRANTY; without even the implied
14 321 mdecorde
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 321 mdecorde
// PURPOSE. See the GNU General Public License for more
16 321 mdecorde
// details.
17 321 mdecorde
//
18 321 mdecorde
// You should have received a copy of the GNU General
19 321 mdecorde
// Public License along with the TXM platform. If not, see
20 321 mdecorde
// http://www.gnu.org/licenses.
21 321 mdecorde
//
22 321 mdecorde
//
23 321 mdecorde
//
24 321 mdecorde
// $LastChangedDate:$
25 321 mdecorde
// $LastChangedRevision:$
26 321 mdecorde
// $LastChangedBy:$
27 321 mdecorde
//
28 1000 mdecorde
package org.txm.scripts.filters.RegexFilter;
29 321 mdecorde
30 1000 mdecorde
import org.txm.importer.scripts.filters.*;
31 321 mdecorde
import java.util.regex.Matcher;
32 321 mdecorde
import java.util.regex.Pattern;
33 321 mdecorde
34 1000 mdecorde
import org.txm.importer.scripts.filters.Filter;
35 321 mdecorde
36 321 mdecorde
// TODO: Auto-generated Javadoc
37 321 mdecorde
/** Filters out lines not matching a regexp. @author jmague */
38 321 mdecorde
public class RegexFilter extends Filter {
39 321 mdecorde
        private Pattern pattern;
40 321 mdecorde
41 321 mdecorde
        /* (non-Javadoc)
42 321 mdecorde
         * @see org.txm.importer.filters.Filter#SetUsedParam(java.lang.Object)
43 321 mdecorde
         */
44 321 mdecorde
        void SetUsedParam(Object args) {
45 321 mdecorde
                if (args.size() == 1) {
46 321 mdecorde
                        pattern = Pattern.compile(args[0]);
47 321 mdecorde
                } else {
48 321 mdecorde
                        System.out
49 321 mdecorde
                                        .println("Regexfilter needs 1 args :\nString:patternRegex");
50 321 mdecorde
                }
51 321 mdecorde
        }
52 321 mdecorde
53 321 mdecorde
        /* (non-Javadoc)
54 321 mdecorde
         * @see org.txm.importer.filters.Filter#after()
55 321 mdecorde
         */
56 321 mdecorde
        void after() {
57 321 mdecorde
        }
58 321 mdecorde
59 321 mdecorde
        /* (non-Javadoc)
60 321 mdecorde
         * @see org.txm.importer.filters.Filter#before()
61 321 mdecorde
         */
62 321 mdecorde
        boolean before() {
63 321 mdecorde
                if (pattern == null) {
64 321 mdecorde
                        System.out
65 321 mdecorde
                                        .println("Regex filter needs 1 args :\nString:patternRegex");
66 321 mdecorde
                        return false;
67 321 mdecorde
                }
68 321 mdecorde
                return true;
69 321 mdecorde
        }
70 321 mdecorde
71 321 mdecorde
        /* (non-Javadoc)
72 321 mdecorde
         * @see org.txm.importer.filters.Filter#filter()
73 321 mdecorde
         */
74 321 mdecorde
        void filter() {
75 321 mdecorde
                Matcher matcher = pattern.matcher(line);
76 321 mdecorde
                if (matcher.matches())
77 321 mdecorde
                        output.write(line + lineSeparator);
78 321 mdecorde
        }
79 321 mdecorde
}