/* (c) Copyright 2011 Telefonica, I+D. Printed in Spain (Europe). All Righ Reserved. The copyright to the software program(s) is property of Telefonica I+D. The program(s) may be used and or copied only with the express written consent of Telefonica I+D or in accordance with the terms and conditions stipulated in the agreement/contract under which the program(s) have been supplied. */ package com.telefonica.claudia.smi.task; import java.io.IOException; import org.apache.log4j.Logger; import org.restlet.Context; import org.restlet.data.MediaType; import org.restlet.data.Request; import org.restlet.data.Response; import org.restlet.data.Status; import org.restlet.resource.Representation; import org.restlet.resource.Resource; import org.restlet.resource.ResourceException; import org.restlet.resource.StringRepresentation; import org.restlet.resource.Variant; import com.telefonica.claudia.smi.URICreation; public class TaskCollectionResource extends Resource { String orgId; private static Logger log = Logger.getLogger("com.telefonica.claudia.smi.task.TaskResource"); public TaskCollectionResource(Context context, Request request, Response response) { super(context, request, response); this.orgId = (String) getRequest().getAttributes().get("org-id"); if (orgId!=null) { // Define the supported variant. getVariants().add(new Variant(MediaType.TEXT_XML)); // By default a resource cannot be updated. setModifiable(true); } else { // This resource is not available. setAvailable(false); } log.info("Network resource created"); } @Override public Representation represent(Variant variant) throws ResourceException { log.info("GET request recieved"); if (MediaType.TEXT_XML.equals(variant.getMediaType())) { try { String taskList = TaskManager.getInstance().taskList(URICreation.getFQN(orgId)).replace("{org-id}", orgId); StringRepresentation representation = new StringRepresentation(taskList, MediaType.TEXT_XML); log.debug("Data representation returned [" + taskList + "]"); getResponse().setStatus(Status.SUCCESS_OK); return representation; } catch (IOException e) { log.error("Error connecting to the TaskManager: " + e.getMessage()); getResponse().setStatus(Status.SERVER_ERROR_INTERNAL, e); } } return null; } }