package launcher.request.update; import launcher.Launcher.Config; import launcher.LauncherAPI; import launcher.helper.IOHelper; import launcher.request.Request; import launcher.serialize.HInput; import launcher.serialize.HOutput; import java.io.IOException; import java.util.Collections; import java.util.HashSet; import java.util.Set; public final class UpdateListRequest extends Request<Set<String>> { @LauncherAPI public UpdateListRequest(Config config) { super(config); } @LauncherAPI public UpdateListRequest() { this(null); } @Override public Type getType() { return Type.UPDATE_LIST; } @Override protected Set<String> requestDo(HInput input, HOutput output) throws IOException { int count = input.readLength(0); // Read all update dirs names Set<String> result = new HashSet<>(count); for (int i = 0; i < count; i++) { result.add(IOHelper.verifyFileName(input.readString(255))); } // We're done. Make it unmodifiable and return return Collections.unmodifiableSet(result); } }