1
24 package net.sf.jasperreports.repo;
25
26 import net.sf.jasperreports.engine.JasperReportsContext;
27
28
29
32 public class DefaultRepositoryPersistenceServiceFactory implements PersistenceServiceFactory
33 {
34 private static final DefaultRepositoryPersistenceServiceFactory INSTANCE = new DefaultRepositoryPersistenceServiceFactory();
35
36
39 public static DefaultRepositoryPersistenceServiceFactory getInstance()
40 {
41 return INSTANCE;
42 }
43
44 @Override
45 public <K extends RepositoryService, L extends Resource> PersistenceService getPersistenceService(
46 JasperReportsContext jasperReportsContext,
47 Class<K> repositoryServiceType,
48 Class<L> resourceType
49 )
50 {
51 if (DefaultRepositoryService.class.getName().equals(repositoryServiceType.getName()))
52 {
53 if (InputStreamResource.class.getName().equals(resourceType.getName()))
54 {
55 return new InputStreamPersistenceService();
56 }
57 else if (OutputStreamResource.class.getName().equals(resourceType.getName()))
58 {
59 return new OutputStreamPersistenceService();
60 }
61 else if (ReportResource.class.getName().equals(resourceType.getName()))
62 {
63 return new SerializedReportPersistenceService();
64 }
65 else if (ResourceBundleResource.class.getName().equals(resourceType.getName()))
66 {
67 return new ResourceBundlePersistenceService(jasperReportsContext);
68 }
69 else if (DataAdapterResource.class.isAssignableFrom(resourceType))
70 {
71 return new CastorDataAdapterPersistenceService(jasperReportsContext);
72 }
73 else if (CastorResource.class.isAssignableFrom(resourceType))
74 {
75 return new CastorObjectPersistenceService(jasperReportsContext);
76 }
77 else if (SerializableResource.class.isAssignableFrom(resourceType))
78 {
79 return new SerializedObjectPersistenceService();
80 }
81 }
82 return null;
83 }
84 }
85