package com.dhemery.os; /** * A shell that obtains commands via a factory. */ public class FactoryBasedShell implements Shell { private final OSCommandFactory<RunnableCommand> factory; /** * Create a shell that uses the given factory to create commands. */ public FactoryBasedShell(OSCommandFactory<RunnableCommand> factory) { this.factory = factory; } @Override public OSCommandBuilder<RunnableCommand> command(String description, String path) { return new FactoryBasedCommandBuilder(factory, description, path); } }