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

View File

@ -15,7 +15,16 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
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);
this.builder = builder;
this.parentBuilder = null;
@ -23,8 +32,8 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
this.builders = new ArrayList<>();
}
public ActivityBuilder(StrolchElementBuilder builder, ActivityBuilder parentBuilder, String id, String name, String type,
TimeOrdering timeOrdering) {
public ActivityBuilder(StrolchElementBuilder builder, ActivityBuilder parentBuilder, String id, String name,
String type, TimeOrdering timeOrdering) {
super(id, name, type);
this.builder = builder;
this.parentBuilder = parentBuilder;
@ -50,6 +59,7 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
}
public StrolchElementBuilder endActivity() {
DBC.PRE.assertNotNull("Can not end, as not part of a builder context!", 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.State;
import li.strolch.utils.dbc.DBC;
import li.strolch.utils.iso8601.ISO8601;
public class OrderBuilder extends RootElementBuilder<OrderBuilder> {
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) {
super(id, name, type);
this.builder = builder;
}
public StrolchElementBuilder endOrder() {
DBC.PRE.assertNotNull("Can not end, as not part of a builder context!", this.builder);
return this.builder;
}

View File

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