Skip to content

Commit a3402fe

Browse files
committed
Extend SetAction action
1 parent 0e487e8 commit a3402fe

3 files changed

Lines changed: 32 additions & 6 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jdk_version=17
77
author=Simple Mocks
88
project_name=api-session
99
group=com.github.simple-mocks
10-
version=0.0.9
10+
version=0.0.10
1111

1212
# service deps
1313
lib_api_error_version=0.0.7

src/main/java/com/github/simple_mocks/session/api/ModificationQueryBuilder.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,24 @@ public <T extends Serializable> ModificationQueryBuilder create(@Nonnull String
7070
public <T extends Serializable> ModificationQueryBuilder change(@Nonnull String section,
7171
@Nonnull String attribute,
7272
T value) {
73-
var action = new SetAction(section, attribute, value);
73+
var action = new SetAction(section, attribute, value, false);
74+
this.actions.add(action);
75+
return this;
76+
}
77+
78+
/**
79+
* Add create or change attribute value action<br/>
80+
*
81+
* @param section section in session
82+
* @param attribute attribute code
83+
* @param value attribute value
84+
* @param <T> type of attribute
85+
* @return self reference
86+
*/
87+
public <T extends Serializable> ModificationQueryBuilder createOrChange(@Nonnull String section,
88+
@Nonnull String attribute,
89+
T value) {
90+
var action = new SetAction(section, attribute, value, true);
7491
this.actions.add(action);
7592
return this;
7693
}

src/main/java/com/github/simple_mocks/session/api/dto/action/SetAction.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,25 @@ public final class SetAction extends Action {
1818
* Attribute value to set
1919
*/
2020
private final Serializable attributeValue;
21+
/**
22+
* Add attribute if it doesn't exist
23+
*/
24+
private final boolean addIfNotExists;
2125

2226
/**
2327
* Construct action for change attribute value in section
2428
*
25-
* @param section section code
26-
* @param attributeName attribute name
27-
* @param attributeValue attribute value
29+
* @param section section code
30+
* @param attributeName attribute name
31+
* @param attributeValue attribute value
32+
* @param createIfNotExists whether to add an attribute if it doesn't exist
2833
*/
29-
public SetAction(String section, String attributeName, Serializable attributeValue) {
34+
public SetAction(String section,
35+
String attributeName,
36+
Serializable attributeValue,
37+
boolean createIfNotExists) {
3038
super(section, attributeName);
3139
this.attributeValue = attributeValue;
40+
this.addIfNotExists = createIfNotExists;
3241
}
3342
}

0 commit comments

Comments
 (0)