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