comparison artifact-database/src/main/java/org/dive4elements/artifactdatabase/rest/RestApp.java @ 473:d0ac790a6c89 dive4elements-move

Moved directories to org.dive4elements
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 10:57:18 +0200
parents artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java@733e76413bf8
children 415df0fc4fa1
comparison
equal deleted inserted replaced
472:783cc1b6b615 473:d0ac790a6c89
1 /*
2 * Copyright (c) 2010 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
9 package de.intevation.artifactdatabase.rest;
10
11 import de.intevation.artifacts.ArtifactDatabase;
12
13 import java.util.concurrent.ConcurrentMap;
14
15 import org.restlet.Application;
16 import org.restlet.Context;
17 import org.restlet.Restlet;
18
19 import org.restlet.routing.Router;
20
21 /**
22 * This is the core REST application that binds the serveral resources
23 * used to manage the artifact database to the HTTP server provided
24 * by the Restlet framework.
25 *
26 * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a>
27 */
28 public class RestApp
29 extends Application
30 {
31 /**
32 * The central artifact database instance to work with.
33 */
34 protected ArtifactDatabase database;
35
36 /**
37 * Default constructor
38 */
39 public RestApp() {
40 }
41
42 public RestApp(Context context, ArtifactDatabase database) {
43 super(context);
44 this.database = database;
45 }
46
47 /**
48 * Constructor to create REST appliction bound to a specific
49 * artifact database.
50 *
51 * @param database The artifact database to be used.
52 */
53 public RestApp(ArtifactDatabase database) {
54 this.database = database;
55 }
56
57 /**
58 * Overwrites the createRoot() method of Application to
59 * build the resource tree to form the exposed server URLs.
60 *
61 * @return The root of the URL tree exposed by the HTTP server.
62 */
63 @Override
64 public Restlet createRoot() {
65
66 Context context = getContext();
67
68 ConcurrentMap map = context.getAttributes();
69 map.put("database", database);
70
71 Router router = new Router(context);
72
73 router.attach(ServicesResource.PATH, ServicesResource.class);
74 router.attach(ServiceResource.PATH, ServiceResource.class);
75 router.attach(FactoriesResource.PATH, FactoriesResource.class);
76 router.attach(CreateResource.PATH, CreateResource.class);
77 router.attach(ArtifactResource.PATH, ArtifactResource.class);
78 router.attach(ArtifactOutResource.PATH, ArtifactOutResource.class);
79 router.attach(ExportResource.PATH, ExportResource.class);
80 router.attach(ImportResource.PATH, ImportResource.class);
81 router.attach(CreateUserResource.PATH, CreateUserResource.class);
82 router.attach(ListUsersResource.PATH, ListUsersResource.class);
83 router.attach(UserResource.PATH, UserResource.class);
84 router.attach(FindUserResource.PATH, FindUserResource.class);
85 router.attach(
86 CreateCollectionResource.PATH, CreateCollectionResource.class);
87 router.attach(
88 ListCollectionsResource.PATH, ListCollectionsResource.class);
89 router.attach(
90 CollectionResource.PATH, CollectionResource.class);
91 router.attach(
92 CollectionOutResource.PATH, CollectionOutResource.class);
93
94 return router;
95 }
96 }
97 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org