01: /**
02: * LibreSource
03: * Copyright (C) 2004-2008 Artenum SARL / INRIA
04: * http://www.libresource.org - contact@artenum.com
05: *
06: * This file is part of the LibreSource software,
07: * which can be used and distributed under license conditions.
08: * The license conditions are provided in the LICENSE.TXT file
09: * at the root path of the packaging that enclose this file.
10: * More information can be found at
11: * - http://dev.libresource.org/home/license
12: *
13: * Initial authors :
14: *
15: * Guillaume Bort / INRIA
16: * Francois Charoy / Universite Nancy 2
17: * Julien Forest / Artenum
18: * Claude Godart / Universite Henry Poincare
19: * Florent Jouille / INRIA
20: * Sebastien Jourdain / INRIA / Artenum
21: * Yves Lerumeur / Artenum
22: * Pascal Molli / Universite Henry Poincare
23: * Gerald Oster / INRIA
24: * Mariarosa Penzi / Artenum
25: * Gerard Sookahet / Artenum
26: * Raphael Tani / INRIA
27: *
28: * Contributors :
29: *
30: * Stephane Bagnier / Artenum
31: * Amadou Dia / Artenum-IUP Blois
32: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33: */package org.libresource.core;
34:
35: import org.libresource.Libresource;
36:
37: import org.libresource.core.ejb.model.TimelineResourceValue;
38: import org.libresource.core.interfaces.LibresourceCoreService;
39:
40: import org.libresource.xml.ImportExportLogger;
41: import org.libresource.xml.LibresourceExportHandler;
42: import org.libresource.xml.XmlDumpHelper;
43:
44: import org.xml.sax.ContentHandler;
45:
46: import java.net.URI;
47:
48: public class TimelineExportHandler extends LibresourceExportHandler {
49: private URI uri;
50:
51: public TimelineExportHandler(URI uri) {
52: this .uri = uri;
53: }
54:
55: public void export(ContentHandler handler, ImportExportLogger logger)
56: throws Exception {
57: LibresourceCoreService libresourceCoreService = (LibresourceCoreService) Libresource
58: .getService("LibresourceCore");
59: TimelineResourceValue timelineResourceValue = libresourceCoreService
60: .getTimeline(uri);
61:
62: XmlDumpHelper.beginElement("libresource", "timeline",
63: XmlDumpHelper.getEmptyAttributesSet(), handler);
64:
65: XmlDumpHelper.outputElementWithContent("timeline", "name",
66: timelineResourceValue.getName(), XmlDumpHelper
67: .getEmptyAttributesSet(), handler);
68:
69: String uriPattern = timelineResourceValue.getRootURI()
70: .replaceAll("%", "\\*");
71:
72: // just another vieux hack
73: String this UriParent = "";
74:
75: try {
76: this UriParent = uri.getPath().substring(0,
77: uri.getPath().lastIndexOf("/"));
78: } catch (Exception e) {
79: }
80:
81: if (uriPattern.equals(this UriParent + "/*")) {
82: uriPattern = "../*";
83: }
84:
85: XmlDumpHelper.outputElementWithContent("timeline",
86: "uriPattern", uriPattern, XmlDumpHelper
87: .getEmptyAttributesSet(), handler);
88:
89: XmlDumpHelper.endElement("libresource", "timeline", handler);
90: }
91: }
|