001package co.codewizards.cloudstore.ls.client.util;
002
003import static java.util.Objects.*;
004
005import co.codewizards.cloudstore.core.io.IInputStream;
006import co.codewizards.cloudstore.core.io.IOutputStream;
007import co.codewizards.cloudstore.core.oio.File;
008import co.codewizards.cloudstore.ls.client.LocalServerClient;
009
010/**
011 * Utility class for operating on a {@link File} instance inside the LocalServer's VM.
012 * <p>
013 * Most importantly, this is used to create instances of {@link IInputStream} or
014 * {@link IOutputStream} inside the LocalServer's VM.
015 *
016 * @author Marco หงุ่ยตระกูล-Schulze - marco at codewizards dot co
017 */
018public class FileLs {
019
020        private FileLs() {
021        }
022
023        public static IInputStream createInputStream(final File file) {
024                requireNonNull(file, "file");
025                IInputStream in = LocalServerClient.getInstance().invoke(file, "createInputStream");
026                return in;
027        }
028
029        public static IOutputStream createOutputStream(final File file) {
030                requireNonNull(file, "file");
031                IOutputStream out = LocalServerClient.getInstance().invoke(file, "createOutputStream");
032                return out;
033        }
034
035        public static IOutputStream createOutputStream(final File file, boolean append) {
036                requireNonNull(file, "file");
037                IOutputStream out = LocalServerClient.getInstance().invoke(file, "createOutputStream", append);
038                return out;
039        }
040}