/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.module.fs; import gw.fs.IResource; import gw.fs.ResourcePath; import gw.fs.IDirectory; import gw.config.CommonServices; import java.io.IOException; import java.io.File; import java.io.Serializable; import java.net.URI; public abstract class JavaResourceImpl implements IResource, Serializable { protected File _file; protected JavaResourceImpl(File file) { _file = file.getAbsoluteFile(); } @Override public IDirectory getParent() { File parentFile = _file.getParentFile(); if (parentFile == null) { return null; } else { return CommonServices.getFileSystem().getIDirectory(parentFile); } } @Override public String getName() { return _file.getName(); } @Override public boolean delete() throws IOException { return _file.delete(); } @Override public URI toURI() { return _file.toURI(); } @Override public ResourcePath getPath() { return ResourcePath.parse(_file.getAbsolutePath()); } @Override public boolean isChildOf(IDirectory dir) { return dir.equals(getParent()); } @Override public boolean isDescendantOf( IDirectory dir ) { if ( ! ( dir instanceof JavaDirectoryImpl ) ) { return false; } File javadir = ( (JavaDirectoryImpl) dir )._file; File javafile = _file.getParentFile(); while ( javafile != null ) { if ( javafile.equals( javadir ) ) { return true; } javafile = javafile.getParentFile(); } return false; } @Override public File toJavaFile() { return _file; } @Override public boolean isJavaFile() { return true; } @Override public boolean equals(Object obj) { if (obj instanceof JavaResourceImpl) { return _file.equals(((JavaResourceImpl) obj)._file); } else { return false; } } @Override public int hashCode() { return _file.hashCode(); } @Override public String toString() { return _file.toString(); } @Override public boolean create() { return false; } @Override public boolean isInJar() { return false; } }