// Path: commons/src/main/java/plugins/util/ConfigLoader.java
// public class ConfigLoader {
//     public static <T> T load(Class<T> clazz, Supplier<T> def) {
//         ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
//         ClassLoader newLoader = clazz.getClassLoader();
//         Thread.currentThread().setContextClassLoader(newLoader);
//         try {
//             return Config.getDefault().get(clazz, def);
//         } finally {
//             Thread.currentThread().setContextClassLoader(oldLoader);
//         }
//     }
// }


import lombok.Data;
import lombok.NoArgsConstructor;
import plugins.util.ConfigLoader;
import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Stream;
package plugins.pushbullet.bean;



/**
 * 端末のコレクション
 */
@Data
@NoArgsConstructor
public class DeviceCollection implements Serializable {

    private static final long serialVersionUID = -8854590875317234076L;

    /**
     * 端末
     */
    private Map<String, Device> deviceMap = new LinkedHashMap<>();

    /**
     * アプリケーションのデフォルト設定ディレクトリから{@link DeviceCollection}を取得します、
     * これは次の記述と同等です
     * <blockquote>
     * <code>Config.getDefault().get(DeviceCollection.class, DeviceCollection::new)</code>
     * </blockquote>
     *
     * @return {@link DeviceCollection}
     */
    public static DeviceCollection get() {
        return ConfigLoader.load(DeviceCollection.class, DeviceCollection::new);
    }

    public Stream<Device> stream() {
// Path: commons/src/main/java/plugins/util/ConfigLoader.java
// public class ConfigLoader {
//     public static <T> T load(Class<T> clazz, Supplier<T> def) {
//         ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
//         ClassLoader newLoader = clazz.getClassLoader();
//         Thread.currentThread().setContextClassLoader(newLoader);
//         try {
//             return Config.getDefault().get(clazz, def);
//         } finally {
//             Thread.currentThread().setContextClassLoader(oldLoader);
//         }
//     }
// }


// Path: pushbullet/src/main/java/plugins/pushbullet/bean/DeviceCollection.java
import lombok.Data;
import lombok.NoArgsConstructor;
import plugins.util.ConfigLoader;
import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Stream;

package plugins.pushbullet.bean;



/**
 * 端末のコレクション
 */
@Data
@NoArgsConstructor
public class DeviceCollection implements Serializable {

    private static final long serialVersionUID = -8854590875317234076L;

    /**
     * 端末
     */
    private Map<String, Device> deviceMap = new LinkedHashMap<>();

    /**
     * アプリケーションのデフォルト設定ディレクトリから{@link DeviceCollection}を取得します、
     * これは次の記述と同等です
     * <blockquote>
     * <code>Config.getDefault().get(DeviceCollection.class, DeviceCollection::new)</code>
     * </blockquote>
     *
     * @return {@link DeviceCollection}
     */
    public static DeviceCollection get() {
        return ConfigLoader.load(DeviceCollection.class, DeviceCollection::new);
    }

    public Stream<Device> stream() {
        return getDeviceMap().values().stream();