private final byte[] _content;
private final String _contentType;
private final Time _lastModifiedTime;
private LocalizedMergedResourceStream() {
Time max = null;
// final StringWriter w = new StringWriter(4096);
ByteArrayOutputStream out = new ByteArrayOutputStream(4096);
final ArrayList<IResourceStream> resourceStreams = new ArrayList<IResourceStream>(_specs.length);
String contentType = null;
for (int i = 0; i < _specs.length; i++) {
final Class<?> scope = _specs[i].getScope();
final String fileName = _specs[i].getFile();
final IResourceStream resourceStream = findResourceStream(scope, fileName);
if (contentType != null) {
if (resourceStream.getContentType() != null
&& !contentType.equalsIgnoreCase(resourceStream.getContentType())) {
log.warn("content types of merged resources don't match: '" + resourceStream.getContentType()
+ "' and '" + contentType + "'");
}
} else {
contentType = resourceStream.getContentType();
}
try {
final Time lastModified = resourceStream.lastModifiedTime();
if (max == null || lastModified != null && lastModified.after(max)) {
max = lastModified;
}
if (i > 0) {
writeFileSeparator(out);
}