Skip to content

Commit c0a8512

Browse files
Add what I have
1 parent 31aa676 commit c0a8512

12 files changed

Lines changed: 259 additions & 9 deletions

File tree

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
package com.abilityapi.sequenceapi.action;
22

3+
/**
4+
* Represents an action type.
5+
*/
36
public interface ActionType {
47

5-
void addCondition()
8+
void addCondition();
9+
10+
void setDelay(int period);
11+
12+
void setExpire(int period);
13+
14+
int getDelay();
15+
16+
int getExpire();
617

718
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.abilityapi.sequenceapi.action;
2+
3+
import com.abilityapi.sequenceapi.action.type.observe.ObserverActionBuilder;
4+
import com.abilityapi.sequenceapi.action.type.schedule.ScheduleAction;
5+
import com.abilityapi.sequenceapi.action.type.schedule.ScheduleActionBuilder;
6+
7+
public interface CommonActionBuilder {
8+
9+
<T> ObserverActionBuilder observe(Class<T> event);
10+
11+
<T> ScheduleActionBuilder schedule();
12+
13+
<T> ScheduleActionBuilder schedule(ScheduleAction scheduleAction);
14+
15+
}

‎src/main/java/com/abilityapi/sequenceapi/action/type/ObserverAction.java‎

Lines changed: 0 additions & 4 deletions
This file was deleted.

‎src/main/java/com/abilityapi/sequenceapi/action/type/ScheduleAction.java‎

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.abilityapi.sequenceapi.action.type.observe;
2+
3+
import com.abilityapi.sequenceapi.action.ActionType;
4+
import com.abilityapi.sequenceapi.origin.Origin;
5+
6+
public class ObserverAction<T> implements ActionType {
7+
8+
private int delay = 0;
9+
private int expire = 0;
10+
11+
public ObserverAction() {}
12+
13+
public void addCondition() {
14+
15+
}
16+
17+
@Override
18+
public void setDelay(int period) {
19+
this.delay = period;
20+
}
21+
22+
@Override
23+
public void setExpire(int period) {
24+
this.expire = period;
25+
}
26+
27+
@Override
28+
public int getDelay() {
29+
return this.delay;
30+
}
31+
32+
@Override
33+
public int getExpire() {
34+
return this.expire;
35+
}
36+
37+
public Origin apply(Origin origin, T event) {
38+
return null;
39+
}
40+
41+
public Origin success(Origin origin, T event) {
42+
return null;
43+
}
44+
45+
public Origin failure(Origin origin, T event) {
46+
return null;
47+
}
48+
49+
public Class<? extends T> getEventClass() {
50+
return null;
51+
}
52+
53+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.abilityapi.sequenceapi.action.type.observe;
2+
3+
public class ObserverActionBuilder {
4+
5+
6+
7+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.abilityapi.sequenceapi.action.type.schedule;
2+
3+
import com.abilityapi.sequenceapi.action.ActionType;
4+
5+
public class ScheduleAction implements ActionType {
6+
7+
private int delay = 0;
8+
private int expire = 0;
9+
10+
public ScheduleAction() {}
11+
12+
@Override
13+
public void addCondition() {
14+
15+
}
16+
17+
@Override
18+
public void setDelay(int period) {
19+
20+
}
21+
22+
@Override
23+
public void setExpire(int period) {
24+
25+
}
26+
27+
@Override
28+
public int getDelay() {
29+
return 0;
30+
}
31+
32+
@Override
33+
public int getExpire() {
34+
return 0;
35+
}
36+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.abilityapi.sequenceapi.action.type.schedule;
2+
3+
public class ScheduleActionBuilder {
4+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package com.abilityapi.sequenceapi.origin;
2+
3+
import java.util.HashMap;
4+
import java.util.HashSet;
5+
import java.util.Map;
6+
import java.util.Set;
7+
8+
public class Origin {
9+
10+
public static OriginKey SOURCE = new OriginKey("source", null);
11+
12+
public static OriginKey OWNER = new OriginKey("owner", null);
13+
14+
public static OriginKey STATE = new OriginKey("state", null);
15+
16+
public static Builder builder() {
17+
return new Builder();
18+
}
19+
20+
// This should be immutable.
21+
private Map<OriginKey, Object> origins = new HashMap<>();
22+
23+
private Origin(Map<OriginKey, Object> origins) {
24+
this.origins = origins;
25+
}
26+
27+
28+
public static class Builder {
29+
30+
Map<OriginKey, Object> origins = new HashMap<>();
31+
Set<String> keysUsed = new HashSet<>();
32+
33+
Builder() {}
34+
35+
Builder source(Object value) {
36+
if (!this.keysUsed.contains(Origin.SOURCE.getId())) {
37+
this.origins.put(Origin.SOURCE, value);
38+
this.keysUsed.add(Origin.SOURCE.getId());
39+
}
40+
return this;
41+
}
42+
43+
Builder owner(Object value) {
44+
if (!this.keysUsed.contains(Origin.OWNER.getId())) {
45+
this.origins.put(Origin.OWNER, value);
46+
this.keysUsed.add(Origin.OWNER.getId());
47+
}
48+
return this;
49+
}
50+
51+
Builder state(Object value) {
52+
if (!this.keysUsed.contains(Origin.STATE.getId())) {
53+
this.origins.put(Origin.STATE, value);
54+
this.keysUsed.add(Origin.STATE.getId());
55+
}
56+
return this;
57+
}
58+
59+
Builder custom(OriginKey key, Object value) {
60+
if (!this.keysUsed.contains(key.getId())) {
61+
this.origins.put(key, value);
62+
this.keysUsed.add(key.getId());
63+
}
64+
return this;
65+
}
66+
67+
Origin build() {
68+
return new Origin(this.origins);
69+
}
70+
71+
}
72+
73+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.abilityapi.sequenceapi.origin;
2+
3+
import java.util.Objects;
4+
5+
public class OriginKey {
6+
7+
public static OriginKey of(final String id, final Object defaultValue) {
8+
return new OriginKey(id, defaultValue);
9+
}
10+
11+
private final String id;
12+
private final Object defaultValue;
13+
14+
public OriginKey(final String id, Object defaultValue) {
15+
this.id = id;
16+
this.defaultValue = defaultValue;
17+
}
18+
19+
public final String getId() {
20+
return this.id;
21+
}
22+
23+
public final Object getDefaultValue() {
24+
return this.defaultValue;
25+
}
26+
27+
@Override
28+
public int hashCode() {
29+
return Objects.hash(this.id, this.defaultValue);
30+
}
31+
32+
@Override
33+
public boolean equals(Object object) {
34+
if (this == object) {
35+
return true;
36+
}
37+
if (object == null || getClass() != object.getClass()) {
38+
return false;
39+
}
40+
final OriginKey other = (OriginKey) object;
41+
return Objects.equals(this.id, other.id)
42+
&& Objects.equals(this.defaultValue, other.getDefaultValue());
43+
}
44+
45+
}

0 commit comments

Comments
 (0)