[New] Allowing builders to be used without StrolchElementBuilder

This commit is contained in:
Robert von Burg 2020-08-28 16:19:03 +02:00
parent cfe6c932f8
commit c1fde56136
4 changed files with 31 additions and 3 deletions

View File

@ -2,6 +2,7 @@ package li.strolch.model.builder;
import li.strolch.model.PolicyContainer; import li.strolch.model.PolicyContainer;
import li.strolch.model.activity.Action; import li.strolch.model.activity.Action;
import li.strolch.utils.dbc.DBC;
public class ActionBuilder extends PolicyContainerBuilder<ActionBuilder> implements ActivityElementBuilder { public class ActionBuilder extends PolicyContainerBuilder<ActionBuilder> implements ActivityElementBuilder {
@ -14,12 +15,14 @@ public class ActionBuilder extends PolicyContainerBuilder<ActionBuilder> impleme
super(id, name, type); super(id, name, type);
this.builder = null; this.builder = null;
} }
public ActionBuilder(ActivityBuilder builder, String id, String name, String type) { public ActionBuilder(ActivityBuilder builder, String id, String name, String type) {
super(id, name, type); super(id, name, type);
this.builder = builder; this.builder = builder;
} }
public ActivityBuilder endAction() { public ActivityBuilder endAction() {
DBC.PRE.assertNotNull("Can not end, as not part of a builder context!", this.builder);
return this.builder; return this.builder;
} }

View File

@ -15,7 +15,16 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
private final List<ActivityElementBuilder> builders; private final List<ActivityElementBuilder> builders;
public ActivityBuilder(StrolchElementBuilder builder, String id, String name, String type, TimeOrdering timeOrdering) { public ActivityBuilder(String id, String name, String type, TimeOrdering timeOrdering) {
super(id, name, type);
this.builder = null;
this.parentBuilder = null;
this.timeOrdering = timeOrdering;
this.builders = new ArrayList<>();
}
public ActivityBuilder(StrolchElementBuilder builder, String id, String name, String type,
TimeOrdering timeOrdering) {
super(id, name, type); super(id, name, type);
this.builder = builder; this.builder = builder;
this.parentBuilder = null; this.parentBuilder = null;
@ -23,8 +32,8 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
this.builders = new ArrayList<>(); this.builders = new ArrayList<>();
} }
public ActivityBuilder(StrolchElementBuilder builder, ActivityBuilder parentBuilder, String id, String name, String type, public ActivityBuilder(StrolchElementBuilder builder, ActivityBuilder parentBuilder, String id, String name,
TimeOrdering timeOrdering) { String type, TimeOrdering timeOrdering) {
super(id, name, type); super(id, name, type);
this.builder = builder; this.builder = builder;
this.parentBuilder = parentBuilder; this.parentBuilder = parentBuilder;
@ -50,6 +59,7 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
} }
public StrolchElementBuilder endActivity() { public StrolchElementBuilder endActivity() {
DBC.PRE.assertNotNull("Can not end, as not part of a builder context!", this.builder);
return this.builder; return this.builder;
} }

View File

@ -2,18 +2,25 @@ package li.strolch.model.builder;
import li.strolch.model.Order; import li.strolch.model.Order;
import li.strolch.model.State; import li.strolch.model.State;
import li.strolch.utils.dbc.DBC;
import li.strolch.utils.iso8601.ISO8601; import li.strolch.utils.iso8601.ISO8601;
public class OrderBuilder extends RootElementBuilder<OrderBuilder> { public class OrderBuilder extends RootElementBuilder<OrderBuilder> {
private final StrolchElementBuilder builder; private final StrolchElementBuilder builder;
public OrderBuilder(String id, String name, String type) {
super(id, name, type);
this.builder = null;
}
public OrderBuilder(StrolchElementBuilder builder, String id, String name, String type) { public OrderBuilder(StrolchElementBuilder builder, String id, String name, String type) {
super(id, name, type); super(id, name, type);
this.builder = builder; this.builder = builder;
} }
public StrolchElementBuilder endOrder() { public StrolchElementBuilder endOrder() {
DBC.PRE.assertNotNull("Can not end, as not part of a builder context!", this.builder);
return this.builder; return this.builder;
} }

View File

@ -5,12 +5,19 @@ import java.util.List;
import li.strolch.model.Resource; import li.strolch.model.Resource;
import li.strolch.model.builder.states.*; import li.strolch.model.builder.states.*;
import li.strolch.utils.dbc.DBC;
public class ResourceBuilder extends RootElementBuilder<ResourceBuilder> { public class ResourceBuilder extends RootElementBuilder<ResourceBuilder> {
private final StrolchElementBuilder builder; private final StrolchElementBuilder builder;
private final List<TimedStateBuilder<?>> timedStates; private final List<TimedStateBuilder<?>> timedStates;
public ResourceBuilder(String id, String name, String type) {
super(id, name, type);
this.builder = null;
this.timedStates = new ArrayList<>();
}
public ResourceBuilder(StrolchElementBuilder builder, String id, String name, String type) { public ResourceBuilder(StrolchElementBuilder builder, String id, String name, String type) {
super(id, name, type); super(id, name, type);
this.builder = builder; this.builder = builder;
@ -54,6 +61,7 @@ public class ResourceBuilder extends RootElementBuilder<ResourceBuilder> {
} }
public StrolchElementBuilder endResource() { public StrolchElementBuilder endResource() {
DBC.PRE.assertNotNull("Can not end, as not part of a builder context!", this.builder);
return this.builder; return this.builder;
} }