| OLD | NEW | 
| (Empty) |  | 
 |    1 /* | 
 |    2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
 |    3  * Copyright (C) 2006-2017 eyeo GmbH | 
 |    4  * | 
 |    5  * Adblock Plus is free software: you can redistribute it and/or modify | 
 |    6  * it under the terms of the GNU General Public License version 3 as | 
 |    7  * published by the Free Software Foundation. | 
 |    8  * | 
 |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |   12  * GNU General Public License for more details. | 
 |   13  * | 
 |   14  * You should have received a copy of the GNU General Public License | 
 |   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |   16  */ | 
 |   17  | 
 |   18 package org.adblockplus.libadblockplus; | 
 |   19  | 
 |   20 public abstract class FileSystem implements Disposable | 
 |   21 { | 
 |   22   private final Disposer disposer; | 
 |   23   protected final long ptr; | 
 |   24  | 
 |   25   static | 
 |   26   { | 
 |   27     System.loadLibrary("adblockplus-jni"); | 
 |   28     registerNatives(); | 
 |   29   } | 
 |   30  | 
 |   31   public FileSystem() | 
 |   32   { | 
 |   33     this.ptr = ctor(this); | 
 |   34     this.disposer = new Disposer(this, new DisposeWrapper(this.ptr)); | 
 |   35   } | 
 |   36  | 
 |   37   public static final class StatResult | 
 |   38   { | 
 |   39     private boolean exists; | 
 |   40  | 
 |   41     public boolean exists() | 
 |   42     { | 
 |   43       return exists; | 
 |   44     } | 
 |   45  | 
 |   46     private boolean isDirectory; | 
 |   47  | 
 |   48     public boolean isDirectory() | 
 |   49     { | 
 |   50       return isDirectory; | 
 |   51     } | 
 |   52  | 
 |   53     private boolean isFile; | 
 |   54  | 
 |   55     public boolean isFile() | 
 |   56     { | 
 |   57       return isFile; | 
 |   58     } | 
 |   59  | 
 |   60     private long lastModified; | 
 |   61  | 
 |   62     public long getLastModified() | 
 |   63     { | 
 |   64       return lastModified; | 
 |   65     } | 
 |   66  | 
 |   67     public StatResult(boolean exists, boolean isDirectory, boolean isFile, long 
     lastModified) | 
 |   68     { | 
 |   69       this.exists = exists; | 
 |   70       this.isDirectory = isDirectory; | 
 |   71       this.isFile = isFile; | 
 |   72       this.lastModified = lastModified; | 
 |   73     } | 
 |   74   } | 
 |   75  | 
 |   76   /** | 
 |   77    * Reads from a file. | 
 |   78    * @param path File path. | 
 |   79    * @return File's content as string | 
 |   80    */ | 
 |   81   public abstract String read(String path); | 
 |   82  | 
 |   83   /** | 
 |   84    * Writes to a file. | 
 |   85    * @param path File path. | 
 |   86    * @param data File data to write. | 
 |   87    */ | 
 |   88   public abstract void write(String path, String data); | 
 |   89  | 
 |   90   /** | 
 |   91    * Moves a file (i.e.\ renames it). | 
 |   92    * @param fromPath Current path to the file. | 
 |   93    * @param toPath New path to the file. | 
 |   94    */ | 
 |   95   public abstract void move(String fromPath, String toPath); | 
 |   96  | 
 |   97   /** | 
 |   98    * Removes a file. | 
 |   99    * @param path File path. | 
 |  100    */ | 
 |  101   public abstract void remove(String path); | 
 |  102  | 
 |  103   /** | 
 |  104    * Retrieves information about a file. | 
 |  105    * @param path File path. | 
 |  106    * @return File information. | 
 |  107    */ | 
 |  108   public abstract StatResult stat(String path); | 
 |  109  | 
 |  110   /** | 
 |  111    * Returns the absolute path to a file. | 
 |  112    * @param path File path (can be relative or absolute). | 
 |  113    * @return Absolute file path. | 
 |  114    */ | 
 |  115   public abstract String resolve(String path); | 
 |  116  | 
 |  117   @Override | 
 |  118   public void dispose() | 
 |  119   { | 
 |  120     this.disposer.dispose(); | 
 |  121   } | 
 |  122  | 
 |  123   private final static class DisposeWrapper implements Disposable | 
 |  124   { | 
 |  125     private final long ptr; | 
 |  126  | 
 |  127     public DisposeWrapper(final long ptr) | 
 |  128     { | 
 |  129       this.ptr = ptr; | 
 |  130     } | 
 |  131  | 
 |  132     @Override | 
 |  133     public void dispose() | 
 |  134     { | 
 |  135       dtor(this.ptr); | 
 |  136     } | 
 |  137   } | 
 |  138  | 
 |  139   private final static native void registerNatives(); | 
 |  140  | 
 |  141   private final static native long ctor(Object callbackObject); | 
 |  142  | 
 |  143   private final static native void dtor(long ptr); | 
 |  144 } | 
| OLD | NEW |