1package soy.iko.opencode.shared;
4public final class ViewModel {
5 public final Screen screen;
6 public final String server_url;
7 public final String username;
8 public final String password;
9 public final Boolean auth_required;
10 public final Boolean connected;
11 public final Boolean loading;
12 public final java.util.Optional<String> error;
13 public final java.util.List<SessionView> sessions;
14 public final java.util.Optional<String> current_session_id;
15 public final String current_session_title;
16 public final java.util.List<MessageView> messages;
17 public final String draft;
18 public final Boolean generating;
20 public ViewModel(Screen screen, String server_url, String username, String password, Boolean auth_required, Boolean connected, Boolean loading, java.util.Optional<String> error, java.util.List<SessionView> sessions, java.util.Optional<String> current_session_id, String current_session_title, java.util.List<MessageView> messages, String draft, Boolean generating) {
21 java.util.Objects.requireNonNull(screen, "screen must not be null");
22 java.util.Objects.requireNonNull(server_url, "server_url must not be null");
23 java.util.Objects.requireNonNull(username, "username must not be null");
24 java.util.Objects.requireNonNull(password, "password must not be null");
25 java.util.Objects.requireNonNull(auth_required, "auth_required must not be null");
26 java.util.Objects.requireNonNull(connected, "connected must not be null");
27 java.util.Objects.requireNonNull(loading, "loading must not be null");
28 java.util.Objects.requireNonNull(error, "error must not be null");
29 java.util.Objects.requireNonNull(sessions, "sessions must not be null");
30 java.util.Objects.requireNonNull(current_session_id, "current_session_id must not be null");
31 java.util.Objects.requireNonNull(current_session_title, "current_session_title must not be null");
32 java.util.Objects.requireNonNull(messages, "messages must not be null");
33 java.util.Objects.requireNonNull(draft, "draft must not be null");
34 java.util.Objects.requireNonNull(generating, "generating must not be null");
36 this.server_url = server_url;
37 this.username = username;
38 this.password = password;
39 this.auth_required = auth_required;
40 this.connected = connected;
41 this.loading = loading;
43 this.sessions = sessions;
44 this.current_session_id = current_session_id;
45 this.current_session_title = current_session_title;
46 this.messages = messages;
48 this.generating = generating;
51 public void serialize(com.novi.serde.Serializer serializer) throws com.novi.serde.SerializationError {
52 serializer.increase_container_depth();
53 screen.serialize(serializer);
54 serializer.serialize_str(server_url);
55 serializer.serialize_str(username);
56 serializer.serialize_str(password);
57 serializer.serialize_bool(auth_required);
58 serializer.serialize_bool(connected);
59 serializer.serialize_bool(loading);
60 TraitHelpers.serialize_option_str(error, serializer);
61 TraitHelpers.serialize_vector_SessionView(sessions, serializer);
62 TraitHelpers.serialize_option_str(current_session_id, serializer);
63 serializer.serialize_str(current_session_title);
64 TraitHelpers.serialize_vector_MessageView(messages, serializer);
65 serializer.serialize_str(draft);
66 serializer.serialize_bool(generating);
67 serializer.decrease_container_depth();
70 public byte[] bincodeSerialize() throws com.novi.serde.SerializationError {
71 com.novi.serde.Serializer serializer = new com.novi.bincode.BincodeSerializer();
72 serialize(serializer);
73 return serializer.get_bytes();
76 public static ViewModel deserialize(com.novi.serde.Deserializer deserializer) throws com.novi.serde.DeserializationError {
77 deserializer.increase_container_depth();
78 Builder builder = new Builder();
79 builder.screen = Screen.deserialize(deserializer);
80 builder.server_url = deserializer.deserialize_str();
81 builder.username = deserializer.deserialize_str();
82 builder.password = deserializer.deserialize_str();
83 builder.auth_required = deserializer.deserialize_bool();
84 builder.connected = deserializer.deserialize_bool();
85 builder.loading = deserializer.deserialize_bool();
86 builder.error = TraitHelpers.deserialize_option_str(deserializer);
87 builder.sessions = TraitHelpers.deserialize_vector_SessionView(deserializer);
88 builder.current_session_id = TraitHelpers.deserialize_option_str(deserializer);
89 builder.current_session_title = deserializer.deserialize_str();
90 builder.messages = TraitHelpers.deserialize_vector_MessageView(deserializer);
91 builder.draft = deserializer.deserialize_str();
92 builder.generating = deserializer.deserialize_bool();
93 deserializer.decrease_container_depth();
94 return builder.build();
97 public static ViewModel bincodeDeserialize(byte[] input) throws com.novi.serde.DeserializationError {
99 throw new com.novi.serde.DeserializationError("Cannot deserialize null array");
101 com.novi.serde.Deserializer deserializer = new com.novi.bincode.BincodeDeserializer(input);
102 ViewModel value = deserialize(deserializer);
103 if (deserializer.get_buffer_offset() < input.length) {
104 throw new com.novi.serde.DeserializationError("Some input bytes were not read");
109 public boolean equals(Object obj) {
110 if (this == obj) return true;
111 if (obj == null) return false;
112 if (getClass() != obj.getClass()) return false;
113 ViewModel other = (ViewModel) obj;
114 if (!java.util.Objects.equals(this.screen, other.screen)) { return false; }
115 if (!java.util.Objects.equals(this.server_url, other.server_url)) { return false; }
116 if (!java.util.Objects.equals(this.username, other.username)) { return false; }
117 if (!java.util.Objects.equals(this.password, other.password)) { return false; }
118 if (!java.util.Objects.equals(this.auth_required, other.auth_required)) { return false; }
119 if (!java.util.Objects.equals(this.connected, other.connected)) { return false; }
120 if (!java.util.Objects.equals(this.loading, other.loading)) { return false; }
121 if (!java.util.Objects.equals(this.error, other.error)) { return false; }
122 if (!java.util.Objects.equals(this.sessions, other.sessions)) { return false; }
123 if (!java.util.Objects.equals(this.current_session_id, other.current_session_id)) { return false; }
124 if (!java.util.Objects.equals(this.current_session_title, other.current_session_title)) { return false; }
125 if (!java.util.Objects.equals(this.messages, other.messages)) { return false; }
126 if (!java.util.Objects.equals(this.draft, other.draft)) { return false; }
127 if (!java.util.Objects.equals(this.generating, other.generating)) { return false; }
131 public int hashCode() {
133 value = 31 * value + (this.screen != null ? this.screen.hashCode() : 0);
134 value = 31 * value + (this.server_url != null ? this.server_url.hashCode() : 0);
135 value = 31 * value + (this.username != null ? this.username.hashCode() : 0);
136 value = 31 * value + (this.password != null ? this.password.hashCode() : 0);
137 value = 31 * value + (this.auth_required != null ? this.auth_required.hashCode() : 0);
138 value = 31 * value + (this.connected != null ? this.connected.hashCode() : 0);
139 value = 31 * value + (this.loading != null ? this.loading.hashCode() : 0);
140 value = 31 * value + (this.error != null ? this.error.hashCode() : 0);
141 value = 31 * value + (this.sessions != null ? this.sessions.hashCode() : 0);
142 value = 31 * value + (this.current_session_id != null ? this.current_session_id.hashCode() : 0);
143 value = 31 * value + (this.current_session_title != null ? this.current_session_title.hashCode() : 0);
144 value = 31 * value + (this.messages != null ? this.messages.hashCode() : 0);
145 value = 31 * value + (this.draft != null ? this.draft.hashCode() : 0);
146 value = 31 * value + (this.generating != null ? this.generating.hashCode() : 0);
150 public static final class Builder {
151 public Screen screen;
152 public String server_url;
153 public String username;
154 public String password;
155 public Boolean auth_required;
156 public Boolean connected;
157 public Boolean loading;
158 public java.util.Optional<String> error;
159 public java.util.List<SessionView> sessions;
160 public java.util.Optional<String> current_session_id;
161 public String current_session_title;
162 public java.util.List<MessageView> messages;
164 public Boolean generating;
166 public ViewModel build() {
167 return new ViewModel(
178 current_session_title,
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list