001package org.unix4j.unix.wc;
002
003import org.unix4j.unix.Wc;
004
005/**
006 * Factory for the {@link Wc wc} command returning 
007 * a new command instance from every signature method.
008 */
009public final class WcFactory implements Wc.Interface<WcCommand> {
010        
011        /**
012         * The singleton instance of this factory.
013         */
014        public static final WcFactory INSTANCE = new WcFactory();
015
016        /**
017         * Private, only used to create singleton instance.
018         */
019        private WcFactory() {
020                super();
021        }
022
023        @Override
024        public WcCommand wc() {
025                final WcArguments wcArgs = new WcArguments();
026                return new WcCommand(wcArgs);
027        }
028
029        @Override
030        public WcCommand wc(String... args) {
031                final WcArguments wcArgs = new WcArguments(args);
032                return new WcCommand(wcArgs);
033        }
034
035        @Override
036        public WcCommand wc(java.io.File... files) {
037                final WcArguments wcArgs = new WcArguments();
038                wcArgs.setFiles(files);
039                return new WcCommand(wcArgs);
040        }
041
042        @Override
043        public WcCommand wc(org.unix4j.io.Input... inputs) {
044                final WcArguments wcArgs = new WcArguments();
045                wcArgs.setInputs(inputs);
046                return new WcCommand(wcArgs);
047        }
048
049        @Override
050        public WcCommand wc(WcOptions options) {
051                final WcArguments wcArgs = new WcArguments(options);
052                return new WcCommand(wcArgs);
053        }
054
055        @Override
056        public WcCommand wc(WcOptions options, java.io.File... files) {
057                final WcArguments wcArgs = new WcArguments(options);
058                wcArgs.setFiles(files);
059                return new WcCommand(wcArgs);
060        }
061
062        @Override
063        public WcCommand wc(WcOptions options, String[] paths) {
064                final WcArguments wcArgs = new WcArguments(options);
065                wcArgs.setPaths(paths);
066                return new WcCommand(wcArgs);
067        }
068
069        @Override
070        public WcCommand wc(WcOptions options, org.unix4j.io.Input... inputs) {
071                final WcArguments wcArgs = new WcArguments(options);
072                wcArgs.setInputs(inputs);
073                return new WcCommand(wcArgs);
074        }
075}