class TransferAction {

    public static List<TransferAction> forTransfer(final Transfer.Type t) {
        switch(t) {
            case sync:
                return Arrays.asList(
                        TransferAction.download,
                        TransferAction.upload,
                        TransferAction.mirror
                );
            case copy:
                return Arrays.asList(
                        TransferAction.overwrite,
                        TransferAction.comparison
                );
            default:
                return Arrays.asList(
                        TransferAction.resume,
                        TransferAction.overwrite,
                        TransferAction.rename,
                        TransferAction.renameexisting,
                        TransferAction.skip,
                        TransferAction.comparison
                );
        }
    }

    public  TransferAction(final String name);

}