Skip to content

Commit 5ce4bea

Browse files
authored
Update missing XML fields in AndOperator, Expiration and RuleFilter (#1613)
1 parent ba3d0f1 commit 5ce4bea

File tree

3 files changed

+78
-0
lines changed

3 files changed

+78
-0
lines changed

api/src/main/java/io/minio/messages/AndOperator.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ public class AndOperator {
3131
@Convert(PrefixConverter.class)
3232
private String prefix;
3333

34+
@Element(name = "ObjectSizeLessThan", required = false)
35+
private Integer objectSizeLessThan;
36+
37+
@Element(name = "ObjectSizeGreaterThan", required = false)
38+
private Integer objectSizeGreaterThan;
39+
3440
@ElementMap(
3541
attribute = false,
3642
entry = "Tag",
@@ -67,10 +73,37 @@ public AndOperator(
6773
this.tags = (tags != null) ? Collections.unmodifiableMap(tags) : null;
6874
}
6975

76+
public AndOperator(
77+
@Nullable @Element(name = "Prefix", required = false) String prefix,
78+
@Nullable
79+
@ElementMap(
80+
attribute = false,
81+
entry = "Tag",
82+
inline = true,
83+
key = "Key",
84+
value = "Value",
85+
required = false)
86+
Map<String, String> tags,
87+
@Nullable @Element(name = "ObjectSizeLessThan", required = false) Integer objectSizeLessThan,
88+
@Nullable @Element(name = "ObjectSizeGreaterThan", required = false)
89+
Integer objectSizeGreaterThan) {
90+
this(prefix, tags);
91+
this.objectSizeLessThan = objectSizeLessThan;
92+
this.objectSizeGreaterThan = objectSizeGreaterThan;
93+
}
94+
7095
public String prefix() {
7196
return this.prefix;
7297
}
7398

99+
public Integer objectSizeLessThan() {
100+
return this.objectSizeLessThan;
101+
}
102+
103+
public Integer objectSizeGreaterThan() {
104+
return this.objectSizeGreaterThan;
105+
}
106+
74107
public Map<String, String> tags() {
75108
return this.tags;
76109
}

api/src/main/java/io/minio/messages/Expiration.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ public class Expiration extends DateDays {
2727
@Element(name = "ExpiredObjectDeleteMarker", required = false)
2828
private Boolean expiredObjectDeleteMarker;
2929

30+
@Element(name = "ExpiredObjectAllVersions", required = false)
31+
private Boolean expiredObjectAllVersions;
32+
3033
public Expiration(
3134
@Nullable @Element(name = "Date", required = false) ResponseDate date,
3235
@Nullable @Element(name = "Days", required = false) Integer days,
@@ -51,7 +54,23 @@ public Expiration(ZonedDateTime date, Integer days, Boolean expiredObjectDeleteM
5154
this(date == null ? null : new ResponseDate(date), days, expiredObjectDeleteMarker);
5255
}
5356

57+
public Expiration(
58+
@Nullable @Element(name = "Date", required = false) ResponseDate date,
59+
@Nullable @Element(name = "Days", required = false) Integer days,
60+
@Nullable @Element(name = "ExpiredObjectDeleteMarker", required = false)
61+
Boolean expiredObjectDeleteMarker,
62+
@Element(name = "ExpiredObjectAllVersions", required = false)
63+
Boolean expiredObjectAllVersions) {
64+
this(date, days, expiredObjectDeleteMarker);
65+
this.expiredObjectAllVersions = expiredObjectAllVersions;
66+
}
67+
5468
public Boolean expiredObjectDeleteMarker() {
5569
return expiredObjectDeleteMarker;
5670
}
71+
72+
/** This is MinIO specific extension. */
73+
public Boolean expiredObjectAllVersions() {
74+
return expiredObjectAllVersions;
75+
}
5776
}

api/src/main/java/io/minio/messages/RuleFilter.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ public class RuleFilter {
3838
@Element(name = "Tag", required = false)
3939
private Tag tag;
4040

41+
@Element(name = "ObjectSizeLessThan", required = false)
42+
private Integer objectSizeLessThan;
43+
44+
@Element(name = "ObjectSizeGreaterThan", required = false)
45+
private Integer objectSizeGreaterThan;
46+
4147
public RuleFilter(
4248
@Nullable @Element(name = "And", required = false) AndOperator andOperator,
4349
@Nullable @Element(name = "Prefix", required = false) String prefix,
@@ -51,6 +57,18 @@ public RuleFilter(
5157
}
5258
}
5359

60+
public RuleFilter(
61+
@Nullable @Element(name = "And", required = false) AndOperator andOperator,
62+
@Nullable @Element(name = "Prefix", required = false) String prefix,
63+
@Nullable @Element(name = "Tag", required = false) Tag tag,
64+
@Nullable @Element(name = "ObjectSizeLessThan", required = false) Integer objectSizeLessThan,
65+
@Nullable @Element(name = "ObjectSizeGreaterThan", required = false)
66+
Integer objectSizeGreaterThan) {
67+
this(andOperator, prefix, tag);
68+
this.objectSizeLessThan = objectSizeLessThan;
69+
this.objectSizeGreaterThan = objectSizeGreaterThan;
70+
}
71+
5472
public RuleFilter(@Nonnull AndOperator andOperator) {
5573
this.andOperator = Objects.requireNonNull(andOperator, "And operator must not be null");
5674
}
@@ -74,4 +92,12 @@ public String prefix() {
7492
public Tag tag() {
7593
return this.tag;
7694
}
95+
96+
public Integer objectSizeLessThan() {
97+
return this.objectSizeLessThan;
98+
}
99+
100+
public Integer objectSizeGreaterThan() {
101+
return this.objectSizeGreaterThan;
102+
}
77103
}

0 commit comments

Comments
 (0)