/* Copyright (c) 2014 Boundless and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/edl-v10.html
*
* Contributors:
* Gabriel Roldan (Boundless) - initial implementation
*/
package org.locationtech.geogig.rest;
import java.util.List;
import org.locationtech.geogig.rest.repository.RESTUtils;
import org.restlet.data.MediaType;
import org.restlet.data.Request;
import org.restlet.resource.Variant;
import com.google.common.base.Optional;
public class Variants {
public static final MediaType CSV_MEDIA_TYPE = new MediaType("text/csv",
"Comma-separated Values");
public static final Variant JSON = new Variant(MediaType.APPLICATION_JSON);
public static final Variant XML = new Variant(MediaType.APPLICATION_XML);
public static final Variant CSV = new Variant(CSV_MEDIA_TYPE);
public static Optional<Variant> getVariantByExtension(Request request, List<Variant> supported) {
String extension = RESTUtils.getStringAttribute(request, "extension");
Variant v = null;
if ("xml".equals(extension) && supported.contains(XML)) {
v = XML;
} else if ("json".equals(extension) && supported.contains(JSON)) {
v = JSON;
} else if ("csv".equals(extension) && supported.contains(CSV)) {
v = CSV;
}
return Optional.fromNullable(v);
}
}