comparison artifact-database/src/main/java/de/intevation/artifactdatabase/LazyBackendUser.java @ 165:81ad657569e1

Added Helper for lazy loading users. artifacts/trunk@1390 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 03 Mar 2011 14:30:21 +0000
parents
children 16cd059945e5
comparison
equal deleted inserted replaced
164:268c2972d4a7 165:81ad657569e1
1 /*
2 * Copyright (c) 2011 by Intevation GmbH
3 *
4 * This program is free software under the LGPL (>=v2.1)
5 * Read the file LGPL.txt coming with the software for details
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
7 */
8 package de.intevation.artifactdatabase;
9
10 import de.intevation.artifacts.User;
11 import de.intevation.artifacts.UserFactory;
12
13 import org.w3c.dom.Document;
14
15 public class LazyBackendUser
16 implements User
17 {
18 protected UserFactory factory;
19 protected Backend backend;
20 protected String identifier;
21 protected User user;
22 protected Object context;
23
24 public LazyBackendUser(
25 String identifier,
26 UserFactory factory,
27 Backend backend,
28 Object context
29 ) {
30 this.identifier = identifier;
31 this.factory = factory;
32 this.backend = backend;
33 this.context = context;
34 }
35
36 protected User getUser() {
37 if (user == null) {
38 user = backend.getUser(identifier, factory, context);
39 if (user == null) {
40 throw new IllegalStateException("loading user failed");
41 }
42 }
43 return user;
44 }
45
46 public String identifier() {
47 return getUser().identifier();
48 }
49
50 public String getName() {
51 return getUser().getName();
52 }
53
54 public void setName(String name) {
55 getUser().setName(name);
56 }
57
58 public void setIdentifier(String identifier) {
59 getUser().setIdentifier(identifier);
60 }
61
62 public Document getRole() {
63 return getUser().getRole();
64 }
65
66 public void setRole(Document document) {
67 getUser().setRole(document);
68 }
69 }
70 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org