20 package net.sf.gridarta.model.io;
23 import org.jetbrains.annotations.NotNull;
24 import org.jetbrains.annotations.Nullable;
57 public File
getCacheFile(@NotNull
final File file, @Nullable
final String prefix) {
58 final StringBuilder sb =
new StringBuilder();
59 for (File tmp = file; tmp != null; tmp = tmp.getParentFile()) {
60 final CharSequence name = tmp.getName();
62 for (
int i = 0; i < name.length(); i++) {
63 final char ch = name.charAt(i);
64 if ((
'0' <= ch && ch <=
'9') || (
'a' <= ch && ch <=
'z') || (
'A' <= ch && ch <=
'Z') || ch ==
' ' || ch ==
'.' || ch ==
'-' || ch ==
'_') {
67 sb.insert(pos++,
'%');
68 final String str = Integer.toHexString((
int) ch);
78 final File dir = prefix == null ?
directory :
new File(directory, prefix);
79 return new File(dir, sb.toString());
A CacheFiles implementation that stores all files in a flat directory.
Creates derived files for caching files.
File getCacheFile(@NotNull final File file, @Nullable final String prefix)
Returns the File for caching a given file.
final String suffix
An option suffix string.
DirectoryCacheFiles(@NotNull final File directory, @Nullable final String suffix)
Creates a new instance.
final File directory
The cache directory.