comparison flys-client/src/main/java/de/intevation/flys/client/server/UserServiceImpl.java @ 25:2da6be38d8b6

Added a User interface and a default implementation to handle users in this client. flys-client/trunk@1411 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 07 Mar 2011 13:40:37 +0000
parents bc5d4d2297b9
children d573ae975330
comparison
equal deleted inserted replaced
24:8825ce0a537e 25:2da6be38d8b6
1 package de.intevation.flys.client.server; 1 package de.intevation.flys.client.server;
2
3 import javax.xml.xpath.XPathConstants;
4
5 import org.w3c.dom.Document;
6 import org.w3c.dom.Node;
7 import org.w3c.dom.NodeList;
2 8
3 import com.google.gwt.user.server.rpc.RemoteServiceServlet; 9 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
4 10
5 import com.google.gwt.core.client.GWT; 11 import com.google.gwt.core.client.GWT;
6 12
7 import de.intevation.artifacts.common.model.DefaultUser; 13 import de.intevation.artifacts.common.ArtifactNamespaceContext;
8 import de.intevation.artifacts.common.model.User; 14 import de.intevation.artifacts.common.utils.XMLUtils;
15
16 import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
17 import de.intevation.artifacts.httpclient.http.HttpClient;
18 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
19 import de.intevation.artifacts.httpclient.http.response.DocumentResponseHandler;
9 20
10 import de.intevation.flys.client.client.services.UserService; 21 import de.intevation.flys.client.client.services.UserService;
22 import de.intevation.flys.client.shared.model.DefaultUser;
23 import de.intevation.flys.client.shared.model.User;
11 24
12 25
13 /** 26 /**
14 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
15 */ 28 */
16 public class UserServiceImpl 29 public class UserServiceImpl
17 extends RemoteServiceServlet 30 extends RemoteServiceServlet
18 implements UserService 31 implements UserService
19 { 32 {
20 public User getCurrentUser() { 33 public User getCurrentUser(String serverUrl) {
21 GWT.log("Return the current user 'Max Mustermann'."); 34 HttpClient client = new HttpClientImpl(serverUrl);
22 return new DefaultUser("Max", "Mustermann"); 35
36 try {
37 Document users = (Document) client.listUsers();
38
39 String XPATH_USERS = "/art:users/art:user";
40
41 NodeList theUsers = (NodeList) XMLUtils.xpath(
42 users,
43 XPATH_USERS,
44 XPathConstants.NODESET,
45 ArtifactNamespaceContext.INSTANCE);
46
47 if (theUsers != null && theUsers.getLength() > 0) {
48 Node user = theUsers.item(0);
49
50 String uuid = XMLUtils.xpathString(
51 user, "@art:uuid", ArtifactNamespaceContext.INSTANCE);
52 String name = XMLUtils.xpathString(
53 user, "@art:name", ArtifactNamespaceContext.INSTANCE);
54
55 return new DefaultUser(uuid, name);
56 }
57 }
58 catch (ConnectionException ce) {
59 System.err.println(ce.getLocalizedMessage());
60 }
61
62 System.err.println("No users existing in the server.");
63 return null;
23 } 64 }
24 } 65 }
25 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 66 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org