All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.milyn.flatfile.regex.RegexParserFactory Maven / Gradle / Ivy

There is a newer version: 1.7.1
Show newest version
/*
 * Milyn - Copyright (C) 2006 - 2010
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License (version 2.1) as published by the Free Software
 * Foundation.
 *
 * This library 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 for more details:
 * http://www.gnu.org/licenses/lgpl.txt
 */

package org.milyn.flatfile.regex;

import org.milyn.cdr.annotation.ConfigParam;
import org.milyn.flatfile.RecordParser;
import org.milyn.flatfile.variablefield.VariableFieldRecordParserFactory;
import org.milyn.javabean.DataDecodeException;
import org.milyn.javabean.DataDecoder;

import java.util.regex.Pattern;

/**
 * Regex record parser factory.
 *
 * @author [email protected]
 */
public class RegexParserFactory extends VariableFieldRecordParserFactory {

    @ConfigParam(decoder = RegexPatternDecoder.class)
    private Pattern regexPattern;

    public RecordParser newRecordParser() {
        return new RegexParser();
    }

    /**
     * Get the Regex Pattern instance to be used for parsing.
     * @return The Regex Pattern instance to be used for parsing.
     */
    public Pattern getRegexPattern() {
        return regexPattern;
    }

    public static class RegexPatternDecoder implements DataDecoder {
        public Object decode(String data) throws DataDecodeException {
            return Pattern.compile(data, (Pattern.MULTILINE | Pattern.DOTALL));
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy