1 package org.kuali.common.util.properties;
2
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.List;
6
7 import org.kuali.common.util.project.ProjectService;
8 import org.kuali.common.util.project.ProjectUtils;
9 import org.kuali.common.util.project.model.FeatureIdentifier;
10 import org.kuali.common.util.project.model.Project;
11 import org.kuali.common.util.project.model.ProjectIdentifier;
12
13 import com.google.common.collect.ImmutableList;
14
15 public class DefaultPropertiesLocationService implements PropertiesLocationService {
16
17 public DefaultPropertiesLocationService(ProjectService projectService) {
18 this(projectService, DEFAULT_CACHE_PROPERTIES_VALUE);
19 }
20
21 public DefaultPropertiesLocationService(ProjectService projectService, boolean cache) {
22 this.projectService = projectService;
23 this.cache = cache;
24 }
25
26 private static final boolean DEFAULT_CACHE_PROPERTIES_VALUE = true;
27
28 private final ProjectService projectService;
29 private final boolean cache;
30
31 @Override
32 public List<Location> getLocations(ProjectIdentifier identifier, List<String> filenames) {
33 List<Location> locations = new ArrayList<Location>();
34 for (String filename : filenames) {
35 locations.add(getLocation(identifier, filename));
36 }
37 return locations;
38 }
39
40 @Override
41 public List<Location> getLocations(ProjectIdentifier identifier, String... filenames) {
42 return getLocations(identifier, Arrays.asList(filenames));
43 }
44
45 @Override
46 public Location getLocation(ProjectIdentifier identifier, String filename) {
47 Project project = projectService.getProject(identifier);
48 String value = ProjectUtils.getClasspathPrefix(identifier) + "/" + filename;
49 String encoding = ProjectUtils.getEncoding(project);
50 return new Location(value, encoding, cache);
51 }
52
53 @Override
54 public List<Location> getLocations(FeatureIdentifier identifier, String... filenames) {
55 return getLocations(identifier, ImmutableList.copyOf(filenames));
56 }
57
58 @Override
59 public List<Location> getLocations(FeatureIdentifier identifier, List<String> filenames) {
60 List<Location> locations = new ArrayList<Location>();
61 for (String filename : filenames) {
62 locations.add(getLocation(identifier, filename));
63 }
64 return locations;
65 }
66
67 @Override
68 public Location getLocation(FeatureIdentifier identifier, String filename) {
69 Project project = projectService.getProject(identifier.getProject());
70 String value = ProjectUtils.getClasspathPrefix(identifier) + "/" + filename;
71 String encoding = ProjectUtils.getEncoding(project);
72 return new Location(value, encoding, cache);
73 }
74
75 }