1 /*
2 * JasperReports - Free Java Reporting Library.
3 * Copyright (C) 2001 - 2019 TIBCO Software Inc. All rights reserved.
4 * http://www.jaspersoft.com
5 *
6 * Unless you have purchased a commercial license agreement from Jaspersoft,
7 * the following license terms apply:
8 *
9 * This program is part of JasperReports.
10 *
11 * JasperReports is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * JasperReports is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
23 */
24 package net.sf.jasperreports.data;
25
26 import net.sf.jasperreports.data.http.HttpDataLocation;
27 import net.sf.jasperreports.data.http.HttpDataService;
28 import net.sf.jasperreports.engine.ParameterContributorContext;
29 import net.sf.jasperreports.engine.util.Designator;
30
31 /**
32 * @author Lucian Chirita (lucianc@users.sourceforge.net)
33 */
34 public class BuiltinDataFileServiceFactory implements DataFileServiceFactory, Designator<DataFile>
35 {
36
37 private static final BuiltinDataFileServiceFactory INSTANCE = new BuiltinDataFileServiceFactory();
38
39 public static BuiltinDataFileServiceFactory instance()
40 {
41 return INSTANCE;
42 }
43
44 protected BuiltinDataFileServiceFactory()
45 {
46 }
47
48 @Override
49 public DataFileService createService(ParameterContributorContext context, DataFile dataFile)
50 {
51 if (dataFile instanceof RepositoryDataLocation)
52 {
53 return new RepositoryDataLocationService(context, (RepositoryDataLocation) dataFile);
54 }
55 if (dataFile instanceof HttpDataLocation)
56 {
57 return new HttpDataService(context, (HttpDataLocation) dataFile);
58 }
59 return null;
60 }
61
62 @Override
63 public String getName(DataFile dataFile)
64 {
65 if (dataFile instanceof HttpDataLocation)
66 {
67 return HttpDataService.HTTP_DATA_SERVICE_NAME;
68 }
69
70 return null;
71 }
72
73 }
74