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