Skip to content
Snippets Groups Projects
Commit 25a35a6d authored by Thorsten Vitt's avatar Thorsten Vitt
Browse files

Added speaking (and unambigues) filenames.

We use a transformed version of the title field plus the URI plus
a content type specific extension. To remove the URI from the file name
we would need to extract the filename policy and keep track of file
names we already used to avoid duplicates.

git-svn-id: https://develop.sub.uni-goettingen.de/repos/textgrid/trunk/services/aggregator@14101 7c539038-3410-0410-b1ec-0f2a7bf1c452
parent 85c8540c
No related branches found
No related tags found
No related merge requests found
......@@ -149,6 +149,11 @@
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>51.1</version>
</dependency>
</dependencies>
......
......@@ -53,9 +53,13 @@ public ObjectType getMetadata() {
* whether to append a content type specific extension.
*/
protected String getSimpleFileName(final boolean withExtension) {
final String baseName = URI.create(
getMetadata().getGeneric().getGenerated().getTextgridUri()
.getValue()).getSchemeSpecificPart();
final String baseName =
FilenamePolicy.getTransliterator().transliterate(
getMetadata().getGeneric().getProvided().getTitle().get(0))
.concat(".")
.concat(URI.create(
getMetadata().getGeneric().getGenerated().getTextgridUri()
.getValue()).getSchemeSpecificPart());
if (withExtension)
return FileExtensionMap.getInstance().addExtension(baseName,
getFormat());
......
package info.textgrid.services.aggregator.tree;
import com.ibm.icu.text.Transliterator;
public class FilenamePolicy {
private static String TRANSFORM_RULES = "::Any-Latin;\n" +
"{ Ä } [:LowercaseLetter:] > Ae;\n" +
"Ä > AE;\n" +
"{ Ö } [:LowercaseLetter:] > Oe;\n" +
"Ö > OE;\n" +
"{ Ü } [:LowercaseLetter:] > Ue;\n" +
"Ü > UE;\n" +
"ä > ae;\n" +
"ö > oe;\n" +
"ü > ue;\n" +
"ſ > s;\n" +
"ß > ss;\n" +
"::Latin-ASCII;\n" +
"[^A-Za-z0-9.,;!\\_\\n\\r-]+ > \\_";
private static Transliterator transliterator;
public static Transliterator getTransliterator() {
if (transliterator == null)
transliterator = Transliterator.createFromRules("TgFilenames", TRANSFORM_RULES, Transliterator.FORWARD);
return transliterator;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment