/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.model.filesystems.impl; import java.io.*; import org.jboss.tools.common.model.util.XModelObjectLoaderUtil; public class LFileObjectImpl implements LFileObject { protected String root, aliaspath, relpath; private File f = null; public LFileObjectImpl(String root, String alias, String relpath) { this.root = root; this.relpath = relpath; aliaspath = relpath.length() == 0 ? alias : alias + '/' + relpath; String fn = (relpath.length() == 0) ? "" + root : "" + root + '/' + relpath; //$NON-NLS-1$ //$NON-NLS-2$ f = new File(fn); } public String getName() { return (f == null) ? null : f.getName(); } public boolean exists() { return f != null && f.exists(); } public boolean isDirectory() { return f != null && f.isDirectory(); } public boolean isFile() { return f != null && f.isFile(); } public long lastModified() { return (f == null) ? 0 : f.lastModified(); } public String getPath() { return aliaspath; } public boolean canWrite() { return f != null && f.canWrite(); } public String read() { return f == null ? "" : XModelObjectLoaderUtil.readFile(f); //$NON-NLS-1$ } public void write(String s) { XModelObjectLoaderUtil.writeFile(f, s); } public String[] listFiles() { File[] fs = (f == null) ? null : f.listFiles(); if(fs == null) return new String[0]; String[] rs = new String[fs.length]; String rp = getPath(); for (int i = 0; i < rs.length; i++) rs[i] = rp + '/' + fs[i].getName(); return rs; } public boolean mkdirs() { return f != null && f.mkdirs(); } public boolean delete() { if(f == null) return true; XModelObjectLoaderUtil.remove(f); return f.exists(); } }