Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 1&1 Internet AG, http://www.1and1.org
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as published by
   * the Free Software Foundation; either version 2 of the License,
   * or (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 package net.sf.beezle.sushi.fs.memory;
 
 
 import java.net.URI;
 import java.util.List;

You'll normally use World.memoryNode() to create instances
 
 public class MemoryNode extends Node {
    
never null
 
     private final MemoryRoot root;

    
never null
 
     private final String path;

    
never null
 
     private Type type;
     
     private long lastModified;
    
    
Do not call - use create instead.
 
     public MemoryNode(MemoryRoot rootString pathType typebyte[] data) {
         this. = root;
         this. = path;
         this. = type;
         this. = 0;
     }
 
     @Override
     public URI getURI() {
         try {
             return new URI(.getFilesystem().getScheme(), null, Integer.toString(.), -1, "/" + nullnull);
         } catch (URISyntaxException e) {
             throw new IllegalStateException(e);
         }
     }
 
     @Override
     public MemoryRoot getRoot() {
         return ;
     }
     
     @Override
     public MemoryNode getParent() {
         return (MemoryNodedoGetParent();
     }
 
     @Override
     public MemoryNode join(String ... paths) {
         return (MemoryNodedoJoin(paths);
     }
 
     @Override
     public MemoryNode join(List<Stringpaths) {
         return (MemoryNodedoJoin(paths);
     }
 
     public Type getType() {
         return ;
     }
     
     @Override
     public boolean exists() {
         return  != .;
     }
 
     @Override
     public boolean isFile() {
         return  == .;
     }
    @Override
    public boolean isDirectory() {
        return  == .;
    }
    
    @Override
    public boolean isLink() {
    	return false;
    }
    @Override
    public long length() throws LengthException {
        if (!isFile()) {
            throw new LengthException(thisnew IOException("file expected"));
        }
        return .length();
    }
    @Override 
    public long getLastModified() throws GetLastModifiedException {
        if ( == .) {
            throw new GetLastModifiedException(thisnull);
        }
        return ;
    }
    
    @Override
    public void setLastModified(long millisthrows SetLastModifiedException {
         = millis;
    }
    
    @Override 
    public int getMode() {
        throw unsupported("getMode()");
    }
    @Override
    public void setMode(int mode) {
        throw unsupported("setMode()");
    }
    @Override 
    public int getUid() {
        throw unsupported("getUid()");
    }
    @Override
    public void setUid(int uid) {
        throw unsupported("setUid()");
    }
    @Override 
    public int getGid() {
        throw unsupported("getGid()");
    }
    @Override
    public void setGid(int gid) {
        throw unsupported("setGid()");
    }
    @Override
    public Node mkdir() throws MkdirException {
        boolean parentDir;
        
        if ( != .) {
            throw new MkdirException(this);
        }
        parentDir = getParent().isDirectory();
        if (!parentDir) {
            throw new MkdirException(this);
        }
         = .;
         = System.currentTimeMillis();
        return this;
    }
    
    @Override
    public void mklink(String target) {
        throw unsupported("mklink()");
    }
    @Override
    public String readLink() {
        throw unsupported("readLink()");
    }
    
    @Override
    public MemoryNode delete() throws DeleteException {
        if ( == .) {
            throw new DeleteException(thisnew FileNotFoundException(getPath()));
        }
        if ( == .) {
            try {
                for (MemoryNode obj : list()) {
                    obj.delete();
                }
            } catch (ListException e) {
                throw new DeleteException(thise);
            }
        }
         = .;
        return this;
    }
    @Override
    public List<MemoryNodelist() throws ListException {
        switch () {
            case :
                throw new ListException(thisnew IOException("directory expected"));
            case :
                return null;
            case :
                return .list();
            default:
                throw new IllegalStateException();
        }
    }
    public byte[] readBytes() throws IOException {
        if ( != .) {
            throw new FileNotFoundException();
        }
        return .readBytes();
    }
    
    @Override
    public InputStream createInputStream() throws IOException {
        if ( != .) {
            throw new FileNotFoundException();
        }
        return .open();
    }
    @Override
    public OutputStream createOutputStream(boolean appendthrows IOException {
        byte[] add;
        switch () {
            case :
                throw new IOException("cannot write file over directory: " + );
            case :
                add = append ? readBytes() : null;
                break;
            default:
                add = null;
        }
        getParent().checkDirectory();
        return new CheckedByteArrayOutputStream(add) {
            @Override
            public void close() throws IOException {
                 = .;
                .store(this.this.);
                super.close();
                 = System.currentTimeMillis();
            }
        };
    }
    @Override
    public String getPath() {
        return ;
    }
New to GrepCode? Check out our FAQ X