// Path: client/src/main/java/com/github/e13mort/stf/console/commands/cache/DeviceListCache.java
// public interface DeviceListCache {
//     static DeviceListCache getCache() {
//         return new DeviceListCacheImpl();
//     }
// 
//     DeviceListCache EMPTY = new DeviceListCache() {
//         @Override
//         public CacheTransaction beginTransaction() {
//             return CacheTransaction.EMPTY;
//         }
// 
//         @Override
//         public List<Device> getCachedFiles() {
//             return Collections.emptyList();
//         }
//     };
// 
//     CacheTransaction beginTransaction();
// 
//     List<Device> getCachedFiles();
// 
//     interface CacheTransaction {
//         CacheTransaction EMPTY = new CacheTransaction() {
//             @Override
//             public void addDevice(Device device) {
// 
//             }
// 
//             @Override
//             public void save() {
// 
//             }
//         };
// 
//         void addDevice(Device device);
// 
//         void save();
//     }
// }


import com.github.e13mort.stf.client.FarmClient;
import com.github.e13mort.stf.client.FarmInfo;
import com.github.e13mort.stf.console.commands.cache.DeviceListCache;
import io.reactivex.Single;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
import java.util.logging.Logger;
package com.github.e13mort.stf.console;



public class StfCommanderContext {
    private static final String DEFAULT_PROPERTY_FILE_NAME = "farm.properties";

    private final FarmClient client;
    private final AdbRunner adbRunner;
// Path: client/src/main/java/com/github/e13mort/stf/console/commands/cache/DeviceListCache.java
// public interface DeviceListCache {
//     static DeviceListCache getCache() {
//         return new DeviceListCacheImpl();
//     }
// 
//     DeviceListCache EMPTY = new DeviceListCache() {
//         @Override
//         public CacheTransaction beginTransaction() {
//             return CacheTransaction.EMPTY;
//         }
// 
//         @Override
//         public List<Device> getCachedFiles() {
//             return Collections.emptyList();
//         }
//     };
// 
//     CacheTransaction beginTransaction();
// 
//     List<Device> getCachedFiles();
// 
//     interface CacheTransaction {
//         CacheTransaction EMPTY = new CacheTransaction() {
//             @Override
//             public void addDevice(Device device) {
// 
//             }
// 
//             @Override
//             public void save() {
// 
//             }
//         };
// 
//         void addDevice(Device device);
// 
//         void save();
//     }
// }


// Path: client/src/main/java/com/github/e13mort/stf/console/StfCommanderContext.java
import com.github.e13mort.stf.client.FarmClient;
import com.github.e13mort.stf.client.FarmInfo;
import com.github.e13mort.stf.console.commands.cache.DeviceListCache;
import io.reactivex.Single;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
import java.util.logging.Logger;

package com.github.e13mort.stf.console;



public class StfCommanderContext {
    private static final String DEFAULT_PROPERTY_FILE_NAME = "farm.properties";

    private final FarmClient client;
    private final AdbRunner adbRunner;
    private DeviceListCache cache;