| /* |
| * 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.file; |
| |
| /** |
| * Thiz represents a relative file name relative to an root entry (normally directory). |
| * |
| * @author Thomas Singer |
| */ |
| public final class DirectoryObject extends AbstractFileObject { |
| |
| // Constants ============================================================== |
| |
| private static final DirectoryObject ROOT = new DirectoryObject("/"); |
| |
| // Static ================================================================= |
| |
| public static DirectoryObject getRoot() { |
| return ROOT; |
| } |
| |
| public static DirectoryObject createInstance(String relativeFileName) { |
| return new DirectoryObject(relativeFileName); |
| } |
| |
| public static DirectoryObject createInstance(DirectoryObject directoryObject, String directoryPathRelativeToDirectoryObject) { |
| final String relativeFileName = FileUtils.ensureTrailingSlash(directoryObject.getPath()) |
| + FileUtils.removeLeadingSlash(directoryPathRelativeToDirectoryObject); |
| return createInstance(relativeFileName); |
| } |
| |
| // Setup ================================================================== |
| |
| private DirectoryObject(String relativeFileName) { |
| super(relativeFileName); |
| } |
| |
| // Implemented ============================================================ |
| |
| public boolean isDirectory() { |
| return true; |
| } |
| |
| // Accessing ============================================================== |
| |
| public final boolean isParentOf(AbstractFileObject abstractFileObject) { |
| final String directoryPath = getPath(); |
| final String path = abstractFileObject.getPath(); |
| if (path.length() <= directoryPath.length()) { |
| return false; |
| } |
| if (!path.startsWith(directoryPath)) { |
| return false; |
| } |
| return true; |
| } |
| } |