001    package org.hackystat.sensorbase.resource.sensordatatypes;
002    
003    import org.hackystat.sensorbase.resource.sensorbase.SensorBaseResource;
004    import org.restlet.Context;
005    import org.restlet.data.MediaType;
006    import org.restlet.data.Request;
007    import org.restlet.data.Response;
008    import org.restlet.resource.Representation;
009    import org.restlet.resource.Variant;
010    
011    /**
012     * Implements a resource for GET host/sensordatatypes that returns an index of all defined SDTs. 
013     * @author Philip Johnson
014     */
015    public class SensorDataTypesResource extends SensorBaseResource {
016      
017      /**
018       * Provides the following representational variants: TEXT_XML.
019       * @param context The context.
020       * @param request The request object.
021       * @param response The response object.
022       */
023      public SensorDataTypesResource(Context context, Request request, Response response) {
024        super(context, request, response);
025      }
026      
027      /**
028       * Returns the representation of the SensorDataTypes resource. 
029       * @param variant The representational variant requested.
030       * @return The representation. 
031       */
032      @Override
033      public Representation represent(Variant variant) {
034        try {
035          if (variant.getMediaType().equals(MediaType.TEXT_XML)) {
036            String xmlData = super.sdtManager.getSensorDataTypeIndex();
037            return super.getStringRepresentation(xmlData);
038          }
039        }
040        catch (RuntimeException e) {
041          setStatusInternalError(e);
042        }
043        return null;
044      }
045    }