// Path: src/main/java/org/cytoscape/rest/internal/commands/handlers/MessageHandler.java
// public interface MessageHandler {
// 
// 	public void appendCommand(final String s);
// 
// 	public void appendError(final String s);
// 
// 	public void appendWarning(final String s);
// 
// 	public void appendResult(final Object s);
// 
// 	public void appendMessage(final String s);
// 
// 	public String getMessages();
// }
// 
// Path: src/main/java/org/cytoscape/rest/internal/commands/handlers/TextHTMLHandler.java
// public class TextHTMLHandler implements MessageHandler {
// 	List<String> messages;
// 
// 	public TextHTMLHandler() {
// 		messages = new ArrayList<String>();
// 	}
// 
// 	public void appendCommand(String s) {
// 		messages.add("<p style=\"color:blue;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendError(String s) {
// 		messages.add("<p style=\"color:red;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendWarning(String s) {
// 		messages.add("<p style=\"color:yellow;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendResult(Object s) {
// 		messages.add("<p style=\"color:green;margin-left:10px;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendMessage(String s) {
// 		messages.add("<p style=\"color:black;margin-left:10px;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public String getMessages() {
// 		String str = "";
// 		for (String s : messages) {
// 			str += s + "\n";
// 		}
// 		return str;
// 	}
// }
// 
// Path: src/main/java/org/cytoscape/rest/internal/commands/handlers/TextPlainHandler.java
// public class TextPlainHandler implements MessageHandler {
// 	List<String> messages;
// 
// 	public TextPlainHandler() {
// 		messages = new ArrayList<String>();
// 	}
// 
// 	public void appendCommand(String s) {
// 		messages.add(s);
// 	}
// 
// 	public void appendError(String s) {
// 		messages.add(s);
// 	}
// 
// 	public void appendWarning(String s) {
// 		messages.add(s);
// 	}
// 
// 	public void appendResult(Object s) {
// 		messages.add(s.toString());
// 	}
// 
// 	public void appendMessage(String s) {
// 		messages.add(s);
// 	}
// 
// 	public String getMessages() {
// 		String str = "";
// 		for (String s : messages) {
// 			str += s + "\n";
// 		}
// 		return str;
// 	}
// }


import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Singleton;
import javax.validation.constraints.NotNull;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.cytoscape.command.AvailableCommands;
import org.cytoscape.command.CommandExecutorTaskFactory;
import org.cytoscape.rest.internal.commands.handlers.MessageHandler;
import org.cytoscape.rest.internal.commands.handlers.TextHTMLHandler;
import org.cytoscape.rest.internal.commands.handlers.TextPlainHandler;
import org.cytoscape.work.FinishStatus;
import org.cytoscape.work.ObservableTask;
import org.cytoscape.work.SynchronousTaskManager;
import org.cytoscape.work.TaskObserver;
import org.ops4j.pax.logging.spi.PaxAppender;
import org.ops4j.pax.logging.spi.PaxLevel;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
	 * Method handling HTTP GET requests to enumerate all namespaces. The
	 * returned list will be sent to the client as "text/plain" media type.
	 * 
	 * @return String that will be returned as a text/plain response.
	 */
	@GET
	@Path("/")
	@Produces(MediaType.TEXT_PLAIN)
	public String enumerateNamespaces() {
		final MessageHandler handler = new TextPlainHandler();
		final List<String> namespaces = available.getNamespaces();

		handler.appendCommand("Available namespaces:");
		for (final String namespace : namespaces) {
			handler.appendMessage("  " + namespace);
		}

		return handler.getMessages();
	}

	/**
	 * Method handling HTTP GET requests to enumerate all namespaces. The
	 * returned list will be sent to the client as "text/html" media type.
	 * 
	 * @return String that will be returned as a text/html response.
	 */
	@GET
	@Path("/")
	@Produces(MediaType.TEXT_HTML)
	public String enumerateNamespacesHtml() {
// Path: src/main/java/org/cytoscape/rest/internal/commands/handlers/MessageHandler.java
// public interface MessageHandler {
// 
// 	public void appendCommand(final String s);
// 
// 	public void appendError(final String s);
// 
// 	public void appendWarning(final String s);
// 
// 	public void appendResult(final Object s);
// 
// 	public void appendMessage(final String s);
// 
// 	public String getMessages();
// }
// 
// Path: src/main/java/org/cytoscape/rest/internal/commands/handlers/TextHTMLHandler.java
// public class TextHTMLHandler implements MessageHandler {
// 	List<String> messages;
// 
// 	public TextHTMLHandler() {
// 		messages = new ArrayList<String>();
// 	}
// 
// 	public void appendCommand(String s) {
// 		messages.add("<p style=\"color:blue;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendError(String s) {
// 		messages.add("<p style=\"color:red;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendWarning(String s) {
// 		messages.add("<p style=\"color:yellow;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendResult(Object s) {
// 		messages.add("<p style=\"color:green;margin-left:10px;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public void appendMessage(String s) {
// 		messages.add("<p style=\"color:black;margin-left:10px;margin-top:0px;margin-bottom:5px;\">"
// 				+ s + "</p>");
// 	}
// 
// 	public String getMessages() {
// 		String str = "";
// 		for (String s : messages) {
// 			str += s + "\n";
// 		}
// 		return str;
// 	}
// }
// 
// Path: src/main/java/org/cytoscape/rest/internal/commands/handlers/TextPlainHandler.java
// public class TextPlainHandler implements MessageHandler {
// 	List<String> messages;
// 
// 	public TextPlainHandler() {
// 		messages = new ArrayList<String>();
// 	}
// 
// 	public void appendCommand(String s) {
// 		messages.add(s);
// 	}
// 
// 	public void appendError(String s) {
// 		messages.add(s);
// 	}
// 
// 	public void appendWarning(String s) {
// 		messages.add(s);
// 	}
// 
// 	public void appendResult(Object s) {
// 		messages.add(s.toString());
// 	}
// 
// 	public void appendMessage(String s) {
// 		messages.add(s);
// 	}
// 
// 	public String getMessages() {
// 		String str = "";
// 		for (String s : messages) {
// 			str += s + "\n";
// 		}
// 		return str;
// 	}
// }


// Path: src/main/java/org/cytoscape/rest/internal/commands/resources/CommandResource.java
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Singleton;
import javax.validation.constraints.NotNull;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.cytoscape.command.AvailableCommands;
import org.cytoscape.command.CommandExecutorTaskFactory;
import org.cytoscape.rest.internal.commands.handlers.MessageHandler;
import org.cytoscape.rest.internal.commands.handlers.TextHTMLHandler;
import org.cytoscape.rest.internal.commands.handlers.TextPlainHandler;
import org.cytoscape.work.FinishStatus;
import org.cytoscape.work.ObservableTask;
import org.cytoscape.work.SynchronousTaskManager;
import org.cytoscape.work.TaskObserver;
import org.ops4j.pax.logging.spi.PaxAppender;
import org.ops4j.pax.logging.spi.PaxLevel;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;

	 * Method handling HTTP GET requests to enumerate all namespaces. The
	 * returned list will be sent to the client as "text/plain" media type.
	 * 
	 * @return String that will be returned as a text/plain response.
	 */
	@GET
	@Path("/")
	@Produces(MediaType.TEXT_PLAIN)
	public String enumerateNamespaces() {
		final MessageHandler handler = new TextPlainHandler();
		final List<String> namespaces = available.getNamespaces();

		handler.appendCommand("Available namespaces:");
		for (final String namespace : namespaces) {
			handler.appendMessage("  " + namespace);
		}

		return handler.getMessages();
	}

	/**
	 * Method handling HTTP GET requests to enumerate all namespaces. The
	 * returned list will be sent to the client as "text/html" media type.
	 * 
	 * @return String that will be returned as a text/html response.
	 */
	@GET
	@Path("/")
	@Produces(MediaType.TEXT_HTML)
	public String enumerateNamespacesHtml() {
		final MessageHandler handler = new TextHTMLHandler();