| ReportFormatExporterRegistry.java |
1 /**
2 * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3 *
4 * This library is free software; you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1 of the License, or (at your option)
7 * any later version.
8 *
9 * This library is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 * details.
13 */
14
15 package com.liferay.portal.kernel.bi.reporting;
16
17 import java.util.Map;
18 import java.util.concurrent.ConcurrentHashMap;
19
20 /**
21 * <a href="ReportFormatExporterRegistry.java.html"><b><i>View Source</i></b>
22 * </a>
23 *
24 * @author Michael C. Han
25 */
26 public class ReportFormatExporterRegistry {
27
28 public ReportFormatExporter getExporter(ReportFormat reportFormat) {
29 ReportFormatExporter reportFormatExporter = _reportFormatExporters.get(
30 reportFormat);
31
32 if (reportFormatExporter == null) {
33 throw new IllegalArgumentException(
34 "No exporter found for format " + reportFormat);
35 }
36
37 return reportFormatExporter;
38 }
39
40 public void setExporters(
41 Map<String, ReportFormatExporter> reportFormatExporters) {
42
43 for (Map.Entry<String, ReportFormatExporter> entry :
44 reportFormatExporters.entrySet()) {
45
46 ReportFormat reportFormat = ReportFormat.parse(entry.getKey());
47 ReportFormatExporter reportFormatExporter = entry.getValue();
48
49 _reportFormatExporters.put(reportFormat, reportFormatExporter);
50 }
51 }
52
53 private Map<ReportFormat, ReportFormatExporter> _reportFormatExporters =
54 new ConcurrentHashMap<ReportFormat, ReportFormatExporter>();
55
56 }