| /* |
| * Sun Public License Notice |
| * |
| * The contents of this file are subject to the Sun Public License |
| * Version 1.0 (the "License"). You may not use this file except in |
| * compliance with the License. A copy of the License is available at |
| * http://www.sun.com/ |
| * |
| * The Original Code is NetBeans. The Initial Developer of the Original |
| * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun |
| * Microsystems, Inc. All Rights Reserved. |
| */ |
| package org.netbeans.lib.cvsclient.command; |
| |
| import org.netbeans.lib.cvsclient.file.DirectoryObject; |
| import org.netbeans.lib.cvsclient.file.FileObject; |
| import org.netbeans.lib.cvsclient.util.BugLog; |
| |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| import java.util.List; |
| |
| /** |
| * @author Thomas Singer |
| */ |
| final class CvsFiles |
| implements ICvsFiles { |
| |
| // Fields ================================================================= |
| |
| private final List cvsFiles = new ArrayList(); |
| private CvsFile currentCvsDirectory; |
| |
| // Setup ================================================================== |
| |
| public CvsFiles() { |
| } |
| |
| // Implemented ============================================================ |
| |
| public void visit(ICvsFilesVisitor visitor) { |
| BugLog.getInstance().assertNotNull(visitor); |
| |
| for (Iterator it = cvsFiles.iterator(); it.hasNext();) { |
| final CvsFile cvsFile = (CvsFile)it.next(); |
| if (cvsFile.isDirectory()) { |
| visitor.handleDirectory((DirectoryObject)cvsFile.getFileObject()); |
| } |
| else { |
| visitor.handleFile((FileObject)cvsFile.getFileObject(), cvsFile.getEntry(), cvsFile.exists()); |
| } |
| } |
| } |
| |
| // Actions ================================================================ |
| |
| public void clear() { |
| cvsFiles.clear(); |
| currentCvsDirectory = null; |
| } |
| |
| public void add(CvsFile cvsFile) { |
| if (currentCvsDirectory == null) { |
| BugLog.getInstance().assertTrue(cvsFile.isDirectory(), "The first cvsFile must be a directory."); |
| currentCvsDirectory = cvsFile; |
| } |
| else { |
| if (cvsFile.isDirectory()) { |
| if (currentCvsDirectory.getFileObject().getPath().equals(cvsFile.getFileObject().getPath())) { |
| // do not add the same directory twice |
| return; |
| } |
| |
| currentCvsDirectory = cvsFile; |
| } |
| } |
| cvsFiles.add(cvsFile); |
| } |
| } |