• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

box / box-java-sdk-gen / #358

11 Jul 2025 04:43PM UTC coverage: 38.091% (+2.5%) from 35.58%
#358

Pull #361

github

web-flow
Merge 112b63b24 into 426763c84
Pull Request #361: feat: Support common fields in Union in Java (box/box-codegen#758)

288 of 1203 new or added lines in 106 files covered. (23.94%)

167 existing lines in 45 files now uncovered.

18543 of 48681 relevant lines covered (38.09%)

0.38 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

51.22
/src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java
1
package com.box.sdkgen.schemas.fileorfolderorweblink;
2

3
import com.box.sdkgen.internal.OneOfThree;
4
import com.box.sdkgen.schemas.file.File;
5
import com.box.sdkgen.schemas.folder.Folder;
6
import com.box.sdkgen.schemas.foldermini.FolderMini;
7
import com.box.sdkgen.schemas.usermini.UserMini;
8
import com.box.sdkgen.schemas.weblink.WebLink;
9
import com.box.sdkgen.serialization.json.EnumWrapper;
10
import com.box.sdkgen.serialization.json.JsonManager;
11
import com.fasterxml.jackson.core.JsonParser;
12
import com.fasterxml.jackson.databind.DeserializationContext;
13
import com.fasterxml.jackson.databind.JsonDeserializer;
14
import com.fasterxml.jackson.databind.JsonMappingException;
15
import com.fasterxml.jackson.databind.JsonNode;
16
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
17
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
18
import java.io.IOException;
19
import java.util.Date;
20

21
@JsonDeserialize(using = FileOrFolderOrWebLink.FileOrFolderOrWebLinkDeserializer.class)
22
@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class)
23
public class FileOrFolderOrWebLink extends OneOfThree<File, Folder, WebLink> {
24

25
  protected final String description;
26

27
  protected final Date createdAt;
28

29
  protected final Date modifiedAt;
30

31
  protected final Date trashedAt;
32

33
  protected final Date purgedAt;
34

35
  protected final UserMini createdBy;
36

37
  protected final UserMini modifiedBy;
38

39
  protected final UserMini ownedBy;
40

41
  protected final FolderMini parent;
42

43
  protected final String itemStatus;
44

45
  protected final String sequenceId;
46

47
  protected final String name;
48

49
  protected final String id;
50

51
  protected final String etag;
52

53
  protected final String type;
54

55
  public FileOrFolderOrWebLink(File file) {
56
    super(file, null, null);
1✔
57
    this.description = file.getDescription();
1✔
58
    this.createdAt = file.getCreatedAt();
1✔
59
    this.modifiedAt = file.getModifiedAt();
1✔
60
    this.trashedAt = file.getTrashedAt();
1✔
61
    this.purgedAt = file.getPurgedAt();
1✔
62
    this.createdBy = file.getCreatedBy();
1✔
63
    this.modifiedBy = file.getModifiedBy();
1✔
64
    this.ownedBy = file.getOwnedBy();
1✔
65
    this.parent = file.getParent();
1✔
66
    this.itemStatus = EnumWrapper.convertToString(file.getItemStatus());
1✔
67
    this.sequenceId = file.getSequenceId();
1✔
68
    this.name = file.getName();
1✔
69
    this.id = file.getId();
1✔
70
    this.etag = file.getEtag();
1✔
71
    this.type = EnumWrapper.convertToString(file.getType());
1✔
72
  }
1✔
73

74
  public FileOrFolderOrWebLink(Folder folder) {
75
    super(null, folder, null);
1✔
76
    this.description = folder.getDescription();
1✔
77
    this.createdAt = folder.getCreatedAt();
1✔
78
    this.modifiedAt = folder.getModifiedAt();
1✔
79
    this.trashedAt = folder.getTrashedAt();
1✔
80
    this.purgedAt = folder.getPurgedAt();
1✔
81
    this.createdBy = folder.getCreatedBy();
1✔
82
    this.modifiedBy = folder.getModifiedBy();
1✔
83
    this.ownedBy = folder.getOwnedBy();
1✔
84
    this.parent = folder.getParent();
1✔
85
    this.itemStatus = EnumWrapper.convertToString(folder.getItemStatus());
1✔
86
    this.sequenceId = folder.getSequenceId();
1✔
87
    this.name = folder.getName();
1✔
88
    this.id = folder.getId();
1✔
89
    this.etag = folder.getEtag();
1✔
90
    this.type = EnumWrapper.convertToString(folder.getType());
1✔
91
  }
1✔
92

93
  public FileOrFolderOrWebLink(WebLink webLink) {
94
    super(null, null, webLink);
×
NEW
95
    this.description = webLink.getDescription();
×
NEW
96
    this.createdAt = webLink.getCreatedAt();
×
NEW
97
    this.modifiedAt = webLink.getModifiedAt();
×
NEW
98
    this.trashedAt = webLink.getTrashedAt();
×
NEW
99
    this.purgedAt = webLink.getPurgedAt();
×
NEW
100
    this.createdBy = webLink.getCreatedBy();
×
NEW
101
    this.modifiedBy = webLink.getModifiedBy();
×
NEW
102
    this.ownedBy = webLink.getOwnedBy();
×
NEW
103
    this.parent = webLink.getParent();
×
NEW
104
    this.itemStatus = EnumWrapper.convertToString(webLink.getItemStatus());
×
NEW
105
    this.sequenceId = webLink.getSequenceId();
×
NEW
106
    this.name = webLink.getName();
×
NEW
107
    this.id = webLink.getId();
×
NEW
108
    this.etag = webLink.getEtag();
×
NEW
109
    this.type = EnumWrapper.convertToString(webLink.getType());
×
NEW
110
  }
×
111

112
  public boolean isFile() {
NEW
113
    return value0 != null;
×
114
  }
115

116
  public File getFile() {
117
    return value0;
×
118
  }
119

120
  public boolean isFolder() {
NEW
121
    return value1 != null;
×
122
  }
123

124
  public Folder getFolder() {
125
    return value1;
×
126
  }
127

128
  public boolean isWebLink() {
NEW
129
    return value2 != null;
×
130
  }
131

132
  public WebLink getWebLink() {
133
    return value2;
×
134
  }
135

136
  public String getDescription() {
NEW
137
    return description;
×
138
  }
139

140
  public Date getCreatedAt() {
NEW
141
    return createdAt;
×
142
  }
143

144
  public Date getModifiedAt() {
NEW
145
    return modifiedAt;
×
146
  }
147

148
  public Date getTrashedAt() {
NEW
149
    return trashedAt;
×
150
  }
151

152
  public Date getPurgedAt() {
NEW
153
    return purgedAt;
×
154
  }
155

156
  public UserMini getCreatedBy() {
NEW
157
    return createdBy;
×
158
  }
159

160
  public UserMini getModifiedBy() {
NEW
161
    return modifiedBy;
×
162
  }
163

164
  public UserMini getOwnedBy() {
NEW
165
    return ownedBy;
×
166
  }
167

168
  public FolderMini getParent() {
NEW
169
    return parent;
×
170
  }
171

172
  public String getItemStatus() {
NEW
173
    return itemStatus;
×
174
  }
175

176
  public String getSequenceId() {
NEW
177
    return sequenceId;
×
178
  }
179

180
  public String getName() {
NEW
181
    return name;
×
182
  }
183

184
  public String getId() {
NEW
185
    return id;
×
186
  }
187

188
  public String getEtag() {
NEW
189
    return etag;
×
190
  }
191

192
  public String getType() {
NEW
193
    return type;
×
194
  }
195

196
  static class FileOrFolderOrWebLinkDeserializer extends JsonDeserializer<FileOrFolderOrWebLink> {
197

198
    public FileOrFolderOrWebLinkDeserializer() {
199
      super();
1✔
200
    }
1✔
201

202
    @Override
203
    public FileOrFolderOrWebLink deserialize(JsonParser jp, DeserializationContext ctxt)
204
        throws IOException {
205
      JsonNode node = JsonManager.jsonToSerializedData(jp);
1✔
206
      JsonNode discriminant0 = node.get("type");
1✔
207
      if (!(discriminant0 == null)) {
1✔
208
        switch (discriminant0.asText()) {
1✔
209
          case "file":
210
            return new FileOrFolderOrWebLink(JsonManager.deserialize(node, File.class));
1✔
211
          case "folder":
212
            return new FileOrFolderOrWebLink(JsonManager.deserialize(node, Folder.class));
1✔
213
          case "web_link":
214
            return new FileOrFolderOrWebLink(JsonManager.deserialize(node, WebLink.class));
×
215
        }
216
      }
217
      throw new JsonMappingException(jp, "Unable to deserialize FileOrFolderOrWebLink");
×
218
    }
219
  }
220
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc