001package org.unix4j.unix.grep;
002
003import org.unix4j.unix.Grep;
004
005/**
006 * Factory for the {@link Grep grep} command returning 
007 * a new command instance from every signature method.
008 */
009public final class GrepFactory implements Grep.Interface<GrepCommand> {
010        
011        /**
012         * The singleton instance of this factory.
013         */
014        public static final GrepFactory INSTANCE = new GrepFactory();
015
016        /**
017         * Private, only used to create singleton instance.
018         */
019        private GrepFactory() {
020                super();
021        }
022
023        @Override
024        public GrepCommand grep(String... args) {
025                final GrepArguments grepArgs = new GrepArguments(args);
026                return new GrepCommand(grepArgs);
027        }
028
029        @Override
030        public GrepCommand grep(String regexp) {
031                final GrepArguments grepArgs = new GrepArguments();
032                grepArgs.setRegexp(regexp);
033                return new GrepCommand(grepArgs);
034        }
035
036        @Override
037        public GrepCommand grep(String regexp, java.io.File... files) {
038                final GrepArguments grepArgs = new GrepArguments();
039                grepArgs.setRegexp(regexp);
040                grepArgs.setFiles(files);
041                return new GrepCommand(grepArgs);
042        }
043
044        @Override
045        public GrepCommand grep(java.util.regex.Pattern pattern) {
046                final GrepArguments grepArgs = new GrepArguments();
047                grepArgs.setPattern(pattern);
048                return new GrepCommand(grepArgs);
049        }
050
051        @Override
052        public GrepCommand grep(java.util.regex.Pattern pattern, java.io.File... files) {
053                final GrepArguments grepArgs = new GrepArguments();
054                grepArgs.setPattern(pattern);
055                grepArgs.setFiles(files);
056                return new GrepCommand(grepArgs);
057        }
058
059        @Override
060        public GrepCommand grep(java.util.regex.Pattern pattern, String... paths) {
061                final GrepArguments grepArgs = new GrepArguments();
062                grepArgs.setPattern(pattern);
063                grepArgs.setPaths(paths);
064                return new GrepCommand(grepArgs);
065        }
066
067        @Override
068        public GrepCommand grep(GrepOptions options, String regexp) {
069                final GrepArguments grepArgs = new GrepArguments(options);
070                grepArgs.setRegexp(regexp);
071                return new GrepCommand(grepArgs);
072        }
073
074        @Override
075        public GrepCommand grep(GrepOptions options, java.util.regex.Pattern pattern) {
076                final GrepArguments grepArgs = new GrepArguments(options);
077                grepArgs.setPattern(pattern);
078                return new GrepCommand(grepArgs);
079        }
080
081        @Override
082        public GrepCommand grep(GrepOptions options, String regexp, java.io.File... files) {
083                final GrepArguments grepArgs = new GrepArguments(options);
084                grepArgs.setRegexp(regexp);
085                grepArgs.setFiles(files);
086                return new GrepCommand(grepArgs);
087        }
088
089        @Override
090        public GrepCommand grep(GrepOptions options, String regexp, String... paths) {
091                final GrepArguments grepArgs = new GrepArguments(options);
092                grepArgs.setRegexp(regexp);
093                grepArgs.setPaths(paths);
094                return new GrepCommand(grepArgs);
095        }
096
097        @Override
098        public GrepCommand grep(GrepOptions options, java.util.regex.Pattern pattern, java.io.File... files) {
099                final GrepArguments grepArgs = new GrepArguments(options);
100                grepArgs.setPattern(pattern);
101                grepArgs.setFiles(files);
102                return new GrepCommand(grepArgs);
103        }
104
105        @Override
106        public GrepCommand grep(GrepOptions options, java.util.regex.Pattern pattern, String... paths) {
107                final GrepArguments grepArgs = new GrepArguments(options);
108                grepArgs.setPattern(pattern);
109                grepArgs.setPaths(paths);
110                return new GrepCommand(grepArgs);
111        }
112}