blob: d02c440bd826b05e3ebd9b186d016aaa1231dbe9 [file] [log] [blame]
/*
* 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;
}
}