package com.uxebu.swfparser.dump.assets;
import com.jswiff.SWFDocument;
import com.jswiff.SWFReader;
import com.jswiff.listeners.AllTagDocumentReader;
import com.jswiff.listeners.SWFDocumentReader;
import org.apache.log4j.Logger;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
public class AssetManager
{
private static Logger logger = Logger.getLogger(AssetManager.class);
private String inputDirectory;
public AssetManager(String inputDirectory)
{
this.inputDirectory = inputDirectory;
}
public List<String> getSWFFiles()
{
File[] files = new File(inputDirectory).listFiles(new FileFilter()
{
public boolean accept(File pathName)
{
return pathName.getName().toLowerCase().endsWith(".swf");
}
});
List<String> fileNames = new ArrayList<String>();
for (File file : files)
{
fileNames.add(file.getName());
}
return fileNames;
}
public SWFDocument getSWFFile(String fileName)
{
try
{
SWFReader reader = new SWFReader(new FileInputStream(inputDirectory + "/" + fileName));
SWFDocumentReader docReader = new AllTagDocumentReader();
reader.addListener(docReader);
reader.read();
return docReader.getDocument();
}
catch (Exception e)
{
logger.error("Error reading swf file", e);
throw new RuntimeException(e);
}
}
}