Mercurial > dive4elements > gnv-client
diff gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java @ 40:23a4f196d7d6
Adding Languagetransfer to the ArtifactDatabase to the GNV-Client
gnv/trunk@180 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Fri, 02 Oct 2009 14:55:18 +0000 |
parents | fccf90761825 |
children | f35b7d7a04d6 |
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java Fri Oct 02 14:29:08 2009 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java Fri Oct 02 14:55:18 2009 +0000 @@ -11,13 +11,21 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.List; +import java.util.Locale; import org.apache.log4j.Logger; + import org.restlet.Client; + import org.restlet.data.Method; import org.restlet.data.Protocol; import org.restlet.data.Request; import org.restlet.data.Response; +import org.restlet.data.Preference; +import org.restlet.data.Language; +import org.restlet.data.ClientInfo; + import org.restlet.representation.Representation; import org.restlet.representation.StringRepresentation; import org.w3c.dom.Document; @@ -73,10 +81,16 @@ private static boolean initialized = false; /** + * Request locale + */ + private Locale locale; + + + /** * Constructor */ public DefaultArtifactDatabaseClient() { - super(); + } /** @@ -151,6 +165,24 @@ return document; } + protected Request initialize(Request request) { + return initialize(request, locale); + } + + protected Request initialize(Request request, Locale locale) { + if (locale != null) { + ClientInfo clientInfo = request.getClientInfo(); + String lang = locale.getLanguage(); + Language language = new Language(lang); + List<Preference<Language>> acceptedLanguages = + new ArrayList<Preference<Language>>(2); + acceptedLanguages.add(new Preference(language, 1.0f)); + acceptedLanguages.add(new Preference(Language.ALL, 0.5f)); + clientInfo.setAcceptedLanguages(acceptedLanguages); + } + return request; + } + /** * @param requestUrl * @param requestBody @@ -159,7 +191,7 @@ private Representation doGetRequestInternal(String requestUrl, Document requestBody) { Client client = new Client(Protocol.HTTP); - Request request = new Request(Method.GET, requestUrl); + Request request = initialize(new Request(Method.GET, requestUrl)); if (requestBody != null) { String documentBody = new XMLUtils() .writeDocument2String(requestBody); @@ -182,7 +214,7 @@ log.debug(new XMLUtils().writeDocument2String(requestBody)); log.debug("##################################################"); Client client = new Client(Protocol.HTTP); - Request request = new Request(Method.POST, requestUrl); + Request request = initialize(new Request(Method.POST, requestUrl)); String documentBody = new XMLUtils().writeDocument2String(requestBody); Representation representation = new StringRepresentation(documentBody); request.setEntity(representation); @@ -655,4 +687,8 @@ return result; } + + public void setLocale(Locale locale) { + this.locale = locale; + } }