IFile resources[] = clazz.listRequiredResources(null);
IHierarchicalFile resources[] = clazz .listRequiredResources(null);
    protected void addRules(Digester digester, String contentLocationDirectory,            Object container) {        super.addRules(digester, contentLocationDirectory, container);        digester.addRule("repository/module/file/class", new Rule() {            private static final String REVISION = "$Revision$";            public void begin(String namespace, String xname,                    Attributes attributes) throws Exception {                String name = attributes.getValue("name");                if (name == null) {                    throw new IllegalArgumentException(                            "No 'name' attribute for <class> element !");                }                JavaScriptFile javaScriptFile = (JavaScriptFile) this.digester                        .peek();                IClass clazz = new ClassImpl(name, javaScriptFile);                javaScriptFile.addClass(clazz);                if (classByName.put(name, clazz) != null) {                    LOG.error("Class '" + name + "' is already known !");                }                this.digester.push(clazz);            }            public void end(String namespace, String name) throws Exception {                ClassImpl clazz = (ClassImpl) this.digester.peek();                List l = null;                IClass cls[] = clazz.listRequiredClasses(null);                for (int i = 0; i < cls.length; i++) {                    IFile file = cls[i].getFile();                    if (l == null) {                        l = new ArrayList();                    }                    l.add(file);                }                IFile resources[] = clazz.listRequiredResources(null);                if (resources.length > 0) {                    if (l == null) {                        l = new ArrayList();                    }                    l.addAll(Arrays.asList(resources));                }                if (l != null) {                    ((File) clazz.getFile()).addDependencies((IFile[]) l                            .toArray(new IFile[l.size()]));                }                this.digester.pop();            }        });        digester.addRule("repository/module/file/class/required-class",                new Rule() {                    private static final String REVISION = "$Revision$";                    public void begin(String namespace, String xname,                            Attributes attributes) throws Exception {                        String name = attributes.getValue("name");                        if (name == null) {                            throw new IllegalArgumentException(                                    "No 'name' attribute for <class> element !");                        }                        String id = attributes.getValue("id");                        ClassImpl clazz = (ClassImpl) this.digester.peek();                        IClass requiredClass = getClassByName(name);                        if (requiredClass == null) {                            throw new IllegalArgumentException(                                    "Unknown required class '" + name + "' !");                        }                        clazz.addRequiredClass(id, requiredClass);                    }                });    }