01: /*
02: * Copyright 2006 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt. The Original Code is the Pentaho
07: * BI Platform. The Initial Developer is Pentaho Corporation.
08: *
09: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
11: * the license for the specific language governing your rights and limitations.
12: */
13: /*
14: * Created on Apr 24, 2005
15: *
16: * TODO To change the template for this generated file go to
17: * Window - Preferences - Java - Code Style - Code Templates
18: */
19: package org.pentaho.repository.filebased.solution;
20:
21: import java.util.*;
22: import org.dom4j.*;
23: import org.pentaho.util.logging.ILogger;
24:
25: /**
26: * @author James Dixon
27: *
28: * TODO To change the template for this generated type comment go to Window -
29: * Preferences - Java - Code Style - Code Templates
30: */
31: public class FileIterator implements Iterator {
32:
33: private List nodeList;
34:
35: private Iterator nodeIterator;
36:
37: private ILogger logger;
38:
39: public FileIterator(List nodeList, ILogger logger) {
40: this .nodeList = nodeList;
41: this .logger = logger;
42: if (nodeList == null) {
43: nodeIterator = null;
44: } else {
45: nodeIterator = nodeList.iterator();
46: }
47: }
48:
49: public boolean hasNext() {
50: if (nodeIterator != null) {
51: return nodeIterator.hasNext();
52: }
53: return false;
54: }
55:
56: public Object next() {
57: if (nodeIterator != null) {
58: Element node = (Element) nodeIterator.next();
59: FileInfo fileInfo = new FileInfo(node, logger);
60: return fileInfo;
61: }
62: return null;
63: }
64:
65: public FileInfo nextFile() {
66: if (nodeIterator != null) {
67: Element node = (Element) nodeIterator.next();
68: FileInfo fileInfo = new FileInfo(node, logger);
69: return fileInfo;
70: }
71: return null;
72:
73: }
74:
75: public void remove() {
76: if (nodeIterator != null) {
77: nodeIterator.remove();
78: }
79: }
80:
81: public int size() {
82: if (nodeList != null) {
83: return nodeList.size();
84: }
85: return 0;
86: }
87: }
|