|
|
|
@ -127,18 +127,6 @@ public class ProjectAssetManager extends DesktopAssetManager { |
|
|
|
|
this(null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the |
|
|
|
|
* <code>FileObject</code> for a given asset key, or null if no such asset |
|
|
|
|
* exists. TODO: Only works for real files in the asset folder atm |
|
|
|
|
* |
|
|
|
|
* @param assetKey The asset key to get the file object for |
|
|
|
|
* @return Either a FileObject for the asset or null if not found. |
|
|
|
|
*/ |
|
|
|
|
public FileObject getAssetFileObject(AssetKey assetKey) { |
|
|
|
|
return getAssetFolder().getFileObject(assetKey.getName()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void clearClassLoader() { |
|
|
|
|
if (jarItems.isEmpty() && classPathItems.isEmpty()) { |
|
|
|
|
return; |
|
|
|
@ -282,6 +270,57 @@ public class ProjectAssetManager extends DesktopAssetManager { |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the |
|
|
|
|
* <code>FileObject</code> for a given asset path, or null if no such asset |
|
|
|
|
* exists. First looks in the asset folder(s) for the file, then proceeds to |
|
|
|
|
* scan the classpath folders and jar files for it.The returned FileObject |
|
|
|
|
* might be inside a jar file and not writeable! |
|
|
|
|
* |
|
|
|
|
* @param assetKey The asset key to get the file object for |
|
|
|
|
* @return Either a FileObject for the asset or null if not found. |
|
|
|
|
*/ |
|
|
|
|
public FileObject getAssetFileObject(AssetKey assetKey) { |
|
|
|
|
String name = assetKey.getName(); |
|
|
|
|
return getAssetFileObject(name); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the |
|
|
|
|
* <code>FileObject</code> for a given asset path, or null if no such asset |
|
|
|
|
* exists. First looks in the asset folder(s) for the file, then proceeds to |
|
|
|
|
* scan the classpath folders and jar files for it.The returned FileObject |
|
|
|
|
* might be inside a jar file and not writeable! |
|
|
|
|
* |
|
|
|
|
* @param name The asset name to get the file object for |
|
|
|
|
* @return Either a FileObject for the asset or null if not found. |
|
|
|
|
*/ |
|
|
|
|
public FileObject getAssetFileObject(String name) { |
|
|
|
|
assert (name != null); |
|
|
|
|
FileObject file = getAssetFolder().getFileObject(name); |
|
|
|
|
if (file != null) { |
|
|
|
|
return file; |
|
|
|
|
} |
|
|
|
|
synchronized (classPathItems) { |
|
|
|
|
// TODO I need to find out if classPathItems contains all jars added to a project
|
|
|
|
|
Iterator<ClassPathItem> classPathItemsIter = classPathItems.iterator(); |
|
|
|
|
while (classPathItemsIter.hasNext()) { |
|
|
|
|
ClassPathItem classPathItem = classPathItemsIter.next(); |
|
|
|
|
FileObject jarFile = classPathItem.object; |
|
|
|
|
|
|
|
|
|
Enumeration<FileObject> jarEntry = (Enumeration<FileObject>) jarFile.getChildren(true); |
|
|
|
|
while (jarEntry.hasMoreElements()) { |
|
|
|
|
FileObject jarEntryAsset = jarEntry.nextElement(); |
|
|
|
|
String path = jarEntryAsset.getPath(); |
|
|
|
|
if (!path.startsWith("/") && path.equals(name)) { |
|
|
|
|
return jarEntryAsset; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public FileObject createAsset(String path) { |
|
|
|
|
return createAsset(path, null); |
|
|
|
|
} |
|
|
|
|