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