/*
* Copyright (C) 2012 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.cyanogenmod.filemanager.commands.shell;
import com.cyanogenmod.filemanager.commands.AsyncResultListener;
import com.cyanogenmod.filemanager.commands.ChangeCurrentDirExecutable;
import com.cyanogenmod.filemanager.commands.ChangeOwnerExecutable;
import com.cyanogenmod.filemanager.commands.ChangePermissionsExecutable;
import com.cyanogenmod.filemanager.commands.CompressExecutable;
import com.cyanogenmod.filemanager.commands.CopyExecutable;
import com.cyanogenmod.filemanager.commands.CreateDirExecutable;
import com.cyanogenmod.filemanager.commands.CreateFileExecutable;
import com.cyanogenmod.filemanager.commands.CurrentDirExecutable;
import com.cyanogenmod.filemanager.commands.DeleteDirExecutable;
import com.cyanogenmod.filemanager.commands.DeleteFileExecutable;
import com.cyanogenmod.filemanager.commands.DiskUsageExecutable;
import com.cyanogenmod.filemanager.commands.EchoExecutable;
import com.cyanogenmod.filemanager.commands.ExecExecutable;
import com.cyanogenmod.filemanager.commands.ExecutableCreator;
import com.cyanogenmod.filemanager.commands.FindExecutable;
import com.cyanogenmod.filemanager.commands.FolderUsageExecutable;
import com.cyanogenmod.filemanager.commands.GroupsExecutable;
import com.cyanogenmod.filemanager.commands.IdentityExecutable;
import com.cyanogenmod.filemanager.commands.LinkExecutable;
import com.cyanogenmod.filemanager.commands.ListExecutable;
import com.cyanogenmod.filemanager.commands.MountExecutable;
import com.cyanogenmod.filemanager.commands.MountPointInfoExecutable;
import com.cyanogenmod.filemanager.commands.MoveExecutable;
import com.cyanogenmod.filemanager.commands.ParentDirExecutable;
import com.cyanogenmod.filemanager.commands.ProcessIdExecutable;
import com.cyanogenmod.filemanager.commands.QuickFolderSearchExecutable;
import com.cyanogenmod.filemanager.commands.ReadExecutable;
import com.cyanogenmod.filemanager.commands.ResolveLinkExecutable;
import com.cyanogenmod.filemanager.commands.SIGNAL;
import com.cyanogenmod.filemanager.commands.SendSignalExecutable;
import com.cyanogenmod.filemanager.commands.UncompressExecutable;
import com.cyanogenmod.filemanager.commands.WriteExecutable;
import com.cyanogenmod.filemanager.console.CommandNotFoundException;
import com.cyanogenmod.filemanager.console.shell.ShellConsole;
import com.cyanogenmod.filemanager.model.Group;
import com.cyanogenmod.filemanager.model.MountPoint;
import com.cyanogenmod.filemanager.model.Permissions;
import com.cyanogenmod.filemanager.model.Query;
import com.cyanogenmod.filemanager.model.User;
import com.cyanogenmod.filemanager.preferences.CompressionMode;
/**
* A class for create shell {@link "Executable"} objects.
*/
public class ShellExecutableCreator implements ExecutableCreator {
private final ShellConsole mConsole;
/**
* Constructor of <code>ShellExecutableCreator</code>.
*
* @param console A shell console that use for create objects
*/
ShellExecutableCreator(ShellConsole console) {
super();
this.mConsole = console;
}
/**
* {@inheritDoc}
*/
@Override
public ChangeCurrentDirExecutable createChangeCurrentDirExecutable(String dir)
throws CommandNotFoundException {
try {
return new ChangeCurrentDirCommand(dir);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ChangeCurrentDirCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ChangeOwnerExecutable createChangeOwnerExecutable(
String fso, User newUser, Group newGroup) throws CommandNotFoundException {
try {
return new ChangeOwnerCommand(fso, newUser, newGroup);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ChangeOwnerCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ChangePermissionsExecutable createChangePermissionsExecutable(
String fso, Permissions newPermissions) throws CommandNotFoundException {
try {
return new ChangePermissionsCommand(fso, newPermissions);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ChangePermissionsCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public CopyExecutable createCopyExecutable(String src, String dst)
throws CommandNotFoundException {
try {
return new CopyCommand(src, dst);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("CopyCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public CreateDirExecutable createCreateDirectoryExecutable(String dir)
throws CommandNotFoundException {
try {
return new CreateDirCommand(dir);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("CreateDirCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public CreateFileExecutable createCreateFileExecutable(String file)
throws CommandNotFoundException {
try {
return new CreateFileCommand(file);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("CreateFileCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public CurrentDirExecutable createCurrentDirExecutable() throws CommandNotFoundException {
try {
return new CurrentDirCommand();
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("CurrentDirCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public DeleteDirExecutable createDeleteDirExecutable(String dir)
throws CommandNotFoundException {
try {
return new DeleteDirCommand(dir);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("DeleteDirCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public DeleteFileExecutable createDeleteFileExecutable(String file)
throws CommandNotFoundException {
try {
return new DeleteFileCommand(file);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("DeleteFileCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public DiskUsageExecutable createDiskUsageExecutable() throws CommandNotFoundException {
try {
return new DiskUsageCommand();
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("DiskUsageCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public DiskUsageExecutable createDiskUsageExecutable(String dir)
throws CommandNotFoundException {
try {
return new DiskUsageCommand(dir);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("DiskUsageCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public EchoExecutable createEchoExecutable(String msg) throws CommandNotFoundException {
try {
return new EchoCommand(msg);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("EchoCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ExecExecutable createExecExecutable(
String cmd, AsyncResultListener asyncResultListener) throws CommandNotFoundException {
try {
return new ExecCommand(cmd, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ExecCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public FindExecutable createFindExecutable(
String directory, Query query, AsyncResultListener asyncResultListener)
throws CommandNotFoundException {
try {
return new FindCommand(directory, query, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("FindCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public FolderUsageExecutable createFolderUsageExecutable(
String directory, AsyncResultListener asyncResultListener)
throws CommandNotFoundException {
try {
return new FolderUsageCommand(directory, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("FolderUsageCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public GroupsExecutable createGroupsExecutable() throws CommandNotFoundException {
try {
return new GroupsCommand();
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("GroupsCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public IdentityExecutable createIdentityExecutable() throws CommandNotFoundException {
try {
return new IdentityCommand();
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("IdentityCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public LinkExecutable createLinkExecutable(String src, String link)
throws CommandNotFoundException {
try {
return new LinkCommand(src, link);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("LinkCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ListExecutable createListExecutable(String src) throws CommandNotFoundException {
try {
return new ListCommand(src, this.mConsole);
} catch (Throwable throwEx) {
throw new CommandNotFoundException("ListCommand (DIRECTORY)", throwEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ListExecutable createFileInfoExecutable(String src, boolean followSymlinks)
throws CommandNotFoundException {
try {
return new ListCommand(src, followSymlinks, this.mConsole);
} catch (Throwable throwEx) {
throw new CommandNotFoundException("ListCommand (FILEINFO)", throwEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public MountExecutable createMountExecutable(MountPoint mp, boolean rw)
throws CommandNotFoundException {
try {
return new MountCommand(mp, rw);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("MountCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public MountPointInfoExecutable createMountPointInfoExecutable()
throws CommandNotFoundException {
try {
return new MountPointInfoCommand();
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("MountPointInfoCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public MoveExecutable createMoveExecutable(String src, String dst)
throws CommandNotFoundException {
try {
return new MoveCommand(src, dst);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("MoveCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ParentDirExecutable createParentDirExecutable(String fso)
throws CommandNotFoundException {
try {
return new ParentDirCommand(fso);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ParentDirCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ProcessIdExecutable createShellProcessIdExecutable() throws CommandNotFoundException {
try {
return new ProcessIdCommand();
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ProcessIdCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ProcessIdExecutable createProcessIdExecutable(int pid, String processName)
throws CommandNotFoundException {
try {
return new ProcessIdCommand(pid, processName);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ProcessIdCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public QuickFolderSearchExecutable createQuickFolderSearchExecutable(String regexp)
throws CommandNotFoundException {
try {
return new QuickFolderSearchCommand(regexp);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("QuickFolderSearchCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ReadExecutable createReadExecutable(
String file, AsyncResultListener asyncResultListener)
throws CommandNotFoundException {
try {
return new ReadCommand(file, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ReadCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public ResolveLinkExecutable createResolveLinkExecutable(String fso)
throws CommandNotFoundException {
try {
return new ResolveLinkCommand(fso);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("ResolveLinkCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public SendSignalExecutable createSendSignalExecutable(int process, SIGNAL signal)
throws CommandNotFoundException {
try {
return new SendSignalCommand(process, signal);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("SendSignalCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public SendSignalExecutable createKillExecutable(int process)
throws CommandNotFoundException {
try {
return new SendSignalCommand(process);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("SendSignalCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public WriteExecutable createWriteExecutable(
String file, AsyncResultListener asyncResultListener)
throws CommandNotFoundException {
try {
return new WriteCommand(file, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("WriteCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public CompressExecutable createCompressExecutable(
CompressionMode mode, String dst, String[] src,
AsyncResultListener asyncResultListener)
throws CommandNotFoundException {
try {
return new CompressCommand(mode, dst, src, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("CompressCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public CompressExecutable createCompressExecutable(
CompressionMode mode, String src,
AsyncResultListener asyncResultListener)
throws CommandNotFoundException {
try {
return new CompressCommand(mode, src, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("CompressCommand", icdEx); //$NON-NLS-1$
}
}
/**
* {@inheritDoc}
*/
@Override
public UncompressExecutable createUncompressExecutable(
String src, String dst,
AsyncResultListener asyncResultListener)
throws CommandNotFoundException {
try {
return new UncompressCommand(src, dst, asyncResultListener);
} catch (InvalidCommandDefinitionException icdEx) {
throw new CommandNotFoundException("UncompressCommand", icdEx); //$NON-NLS-1$
}
}
}