[New] Extended builder pattern
This commit is contained in:
parent
a9067bf161
commit
7b9f2f867f
|
@ -84,6 +84,7 @@ public class StrolchModelConstants {
|
|||
public static final String TYPE_OBJECTIVES = "Objectives";
|
||||
public static final String TYPE_METRIC = "Metric";
|
||||
public static final String TYPE_NOTIFICATION = "Notification";
|
||||
public static final String TYPE_VISIBILITY = "Visibility";
|
||||
public static final String TYPE_TEXT = "Text";
|
||||
|
||||
public static final String RES_CONFIGURATION = "configuration";
|
||||
|
@ -106,6 +107,7 @@ public class StrolchModelConstants {
|
|||
public static final String PARAM_VISIBLE_TO = "visibleTo";
|
||||
public static final String PARAM_FOR_ALL = "forAll";
|
||||
public static final String PARAM_ROLES = "roles";
|
||||
public static final String PARAM_LOCATIONS = "locations";
|
||||
public static final String PARAM_GROUPS = "groups";
|
||||
|
||||
public static class PolicyConstants {
|
||||
|
|
|
@ -4,6 +4,8 @@ import li.strolch.model.PolicyContainer;
|
|||
import li.strolch.model.activity.Action;
|
||||
import li.strolch.utils.dbc.DBC;
|
||||
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamName;
|
||||
|
||||
public class ActionBuilder extends PolicyContainerBuilder<ActionBuilder> implements ActivityElementBuilder {
|
||||
|
||||
private final ActivityBuilder builder;
|
||||
|
@ -11,11 +13,19 @@ public class ActionBuilder extends PolicyContainerBuilder<ActionBuilder> impleme
|
|||
private String resourceId;
|
||||
private String resourceType;
|
||||
|
||||
public ActionBuilder(String id, String type) {
|
||||
this(id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public ActionBuilder(String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
this.builder = null;
|
||||
}
|
||||
|
||||
public ActionBuilder(ActivityBuilder builder, String id, String type) {
|
||||
this(builder, id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public ActionBuilder(ActivityBuilder builder, String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
this.builder = builder;
|
||||
|
|
|
@ -7,6 +7,8 @@ import li.strolch.model.activity.Activity;
|
|||
import li.strolch.model.activity.TimeOrdering;
|
||||
import li.strolch.utils.dbc.DBC;
|
||||
|
||||
import static li.strolch.model.builder.BuilderHelper.*;
|
||||
|
||||
public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> implements ActivityElementBuilder {
|
||||
|
||||
private final StrolchElementBuilder builder;
|
||||
|
@ -15,6 +17,10 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
|
|||
|
||||
private final List<ActivityElementBuilder> builders;
|
||||
|
||||
public ActivityBuilder(String id, String type, TimeOrdering timeOrdering) {
|
||||
this(id, buildParamName(id), type, timeOrdering);
|
||||
}
|
||||
|
||||
public ActivityBuilder(String id, String name, String type, TimeOrdering timeOrdering) {
|
||||
super(id, name, type);
|
||||
this.builder = null;
|
||||
|
@ -23,6 +29,10 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
|
|||
this.builders = new ArrayList<>();
|
||||
}
|
||||
|
||||
public ActivityBuilder(StrolchElementBuilder builder, String id, String type, TimeOrdering timeOrdering) {
|
||||
this(builder, id, buildParamName(id), type, timeOrdering);
|
||||
}
|
||||
|
||||
public ActivityBuilder(StrolchElementBuilder builder, String id, String name, String type,
|
||||
TimeOrdering timeOrdering) {
|
||||
super(id, name, type);
|
||||
|
@ -32,6 +42,11 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
|
|||
this.builders = new ArrayList<>();
|
||||
}
|
||||
|
||||
public ActivityBuilder(StrolchElementBuilder builder, ActivityBuilder parentBuilder, String id, String type,
|
||||
TimeOrdering timeOrdering) {
|
||||
this(builder, parentBuilder, id, buildParamName(id), type, timeOrdering);
|
||||
}
|
||||
|
||||
public ActivityBuilder(StrolchElementBuilder builder, ActivityBuilder parentBuilder, String id, String name,
|
||||
String type, TimeOrdering timeOrdering) {
|
||||
super(id, name, type);
|
||||
|
@ -41,12 +56,20 @@ public class ActivityBuilder extends RootElementBuilder<ActivityBuilder> impleme
|
|||
this.builders = new ArrayList<>();
|
||||
}
|
||||
|
||||
public ActivityBuilder subActivity(String id, String type, TimeOrdering timeOrdering) {
|
||||
return subActivity(id, buildParamName(id), type, timeOrdering);
|
||||
}
|
||||
|
||||
public ActivityBuilder subActivity(String id, String name, String type, TimeOrdering timeOrdering) {
|
||||
ActivityBuilder builder = new ActivityBuilder(this.builder, this, id, name, type, timeOrdering);
|
||||
this.builders.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public ActionBuilder action(String id, String type) {
|
||||
return action(id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public ActionBuilder action(String id, String name, String type) {
|
||||
ActionBuilder builder = new ActionBuilder(this, id, name, type);
|
||||
this.builders.add(builder);
|
||||
|
|
|
@ -7,6 +7,8 @@ import li.strolch.model.ParameterBag;
|
|||
import li.strolch.model.ParameterBagContainer;
|
||||
import li.strolch.model.builder.params.*;
|
||||
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamName;
|
||||
|
||||
public class BagBuilder<T extends ParameterBagContainerBuilder<T>> {
|
||||
|
||||
private final T builder;
|
||||
|
@ -15,6 +17,10 @@ public class BagBuilder<T extends ParameterBagContainerBuilder<T>> {
|
|||
private final String type;
|
||||
private final List<ParameterBuilder<?, ?, ?>> parameters;
|
||||
|
||||
public BagBuilder(T builder, String id, String type) {
|
||||
this(builder, id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public BagBuilder(T builder, String id, String name, String type) {
|
||||
this.builder = builder;
|
||||
this.id = id;
|
||||
|
@ -23,72 +29,120 @@ public class BagBuilder<T extends ParameterBagContainerBuilder<T>> {
|
|||
this.parameters = new ArrayList<>();
|
||||
}
|
||||
|
||||
public StringParamBuilder<T> string(String id) {
|
||||
return string(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public StringParamBuilder<T> string(String id, String name) {
|
||||
StringParamBuilder<T> builder = new StringParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public TextParamBuilder<T> text(String id) {
|
||||
return text(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public TextParamBuilder<T> text(String id, String name) {
|
||||
TextParamBuilder<T> builder = new TextParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public BooleanParamBuilder<T> booleanB(String id) {
|
||||
return booleanB(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public BooleanParamBuilder<T> booleanB(String id, String name) {
|
||||
BooleanParamBuilder<T> builder = new BooleanParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public IntegerParamBuilder<T> integer(String id) {
|
||||
return integer(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public IntegerParamBuilder<T> integer(String id, String name) {
|
||||
IntegerParamBuilder<T> builder = new IntegerParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public LongParamBuilder<T> longB(String id) {
|
||||
return longB(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public LongParamBuilder<T> longB(String id, String name) {
|
||||
LongParamBuilder<T> builder = new LongParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public FloatParamBuilder<T> floatB(String id) {
|
||||
return floatB(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public FloatParamBuilder<T> floatB(String id, String name) {
|
||||
FloatParamBuilder<T> builder = new FloatParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public DateParamBuilder<T> date(String id) {
|
||||
return date(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public DateParamBuilder<T> date(String id, String name) {
|
||||
DateParamBuilder<T> builder = new DateParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public DurationParamBuilder<T> duration(String id) {
|
||||
return duration(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public DurationParamBuilder<T> duration(String id, String name) {
|
||||
DurationParamBuilder<T> builder = new DurationParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public StringListParamBuilder<T> stringList(String id) {
|
||||
return stringList(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public StringListParamBuilder<T> stringList(String id, String name) {
|
||||
StringListParamBuilder<T> builder = new StringListParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public IntegerListParamBuilder<T> integerList(String id) {
|
||||
return integerList(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public IntegerListParamBuilder<T> integerList(String id, String name) {
|
||||
IntegerListParamBuilder<T> builder = new IntegerListParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public LongListParamBuilder<T> longList(String id) {
|
||||
return longList(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public LongListParamBuilder<T> longList(String id, String name) {
|
||||
LongListParamBuilder<T> builder = new LongListParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public FloatListParamBuilder<T> floatList(String id) {
|
||||
return floatList(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public FloatListParamBuilder<T> floatList(String id, String name) {
|
||||
FloatListParamBuilder<T> builder = new FloatListParamBuilder<>(this, id, name);
|
||||
this.parameters.add(builder);
|
||||
|
|
|
@ -5,15 +5,25 @@ import li.strolch.model.State;
|
|||
import li.strolch.utils.dbc.DBC;
|
||||
import li.strolch.utils.iso8601.ISO8601;
|
||||
|
||||
import static li.strolch.model.builder.BuilderHelper.*;
|
||||
|
||||
public class OrderBuilder extends RootElementBuilder<OrderBuilder> {
|
||||
|
||||
private final StrolchElementBuilder builder;
|
||||
|
||||
public OrderBuilder(String id, String type) {
|
||||
this(id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public OrderBuilder(String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
this.builder = null;
|
||||
}
|
||||
|
||||
public OrderBuilder(StrolchElementBuilder builder, String id, String type) {
|
||||
this(builder, id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public OrderBuilder(StrolchElementBuilder builder, String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
this.builder = builder;
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
package li.strolch.model.builder;
|
||||
|
||||
import static java.util.Collections.emptyList;
|
||||
import static li.strolch.model.StrolchModelConstants.*;
|
||||
import static li.strolch.model.StrolchModelConstants.PolicyConstants.BAG_OBJECTIVES;
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamId;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import li.strolch.model.ParameterBag;
|
||||
import li.strolch.model.ParameterBagContainer;
|
||||
import li.strolch.model.Tags;
|
||||
import li.strolch.model.parameter.StringListParameter;
|
||||
import li.strolch.model.parameter.StringParameter;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.util.Collections.emptyList;
|
||||
import static li.strolch.model.StrolchModelConstants.*;
|
||||
import static li.strolch.model.StrolchModelConstants.PolicyConstants.BAG_OBJECTIVES;
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamId;
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamName;
|
||||
|
||||
public abstract class ParameterBagContainerBuilder<T extends ParameterBagContainerBuilder<T>> {
|
||||
|
||||
private final String id;
|
||||
|
@ -24,6 +25,10 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
private final Map<String, String[]> singleRelations;
|
||||
private final Map<String, String[]> multiRelations;
|
||||
|
||||
public ParameterBagContainerBuilder(String id, String type) {
|
||||
this(id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public ParameterBagContainerBuilder(String id, String name, String type) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
|
@ -58,9 +63,12 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
return bag(BAG_RELATIONS, TYPE_RELATIONS, TYPE_RELATIONS);
|
||||
}
|
||||
|
||||
public BagBuilder<T> bag(String id, String type) {
|
||||
return bag(id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public BagBuilder<T> bag(String id, String name, String type) {
|
||||
@SuppressWarnings("unchecked")
|
||||
BagBuilder<T> bagBuilder = new BagBuilder<>((T) this, id, name, type);
|
||||
@SuppressWarnings("unchecked") BagBuilder<T> bagBuilder = new BagBuilder<>((T) this, id, name, type);
|
||||
if (this.parametersBags.put(id, bagBuilder) != null)
|
||||
throw new IllegalArgumentException("Bag builder for " + id + " already exists!");
|
||||
return bagBuilder;
|
||||
|
@ -70,11 +78,14 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
return resourceRelation(buildParamId(type), type, type);
|
||||
}
|
||||
|
||||
public T resourceRelation(String paramId, String type) {
|
||||
return resourceRelation(paramId, buildParamName(paramId), type);
|
||||
}
|
||||
|
||||
public T resourceRelation(String paramId, String paramName, String type) {
|
||||
assertNotMapped(paramId);
|
||||
this.singleRelations.put(paramId, new String[] { paramName, type, Tags.RESOURCE });
|
||||
@SuppressWarnings("unchecked")
|
||||
T t = (T) this;
|
||||
this.singleRelations.put(paramId, new String[]{paramName, type, Tags.RESOURCE});
|
||||
@SuppressWarnings("unchecked") T t = (T) this;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -82,11 +93,14 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
return resourceRelations(buildParamId(type), type + "s", type);
|
||||
}
|
||||
|
||||
public T resourceRelations(String paramId, String type) {
|
||||
return resourceRelations(paramId, buildParamName(paramId), type);
|
||||
}
|
||||
|
||||
public T resourceRelations(String paramId, String paramName, String type) {
|
||||
assertNotMapped(paramId);
|
||||
this.multiRelations.put(paramId, new String[] { paramName, type, Tags.RESOURCE });
|
||||
@SuppressWarnings("unchecked")
|
||||
T t = (T) this;
|
||||
this.multiRelations.put(paramId, new String[]{paramName, type, Tags.RESOURCE});
|
||||
@SuppressWarnings("unchecked") T t = (T) this;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -94,11 +108,14 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
return orderRelation(buildParamId(type), type, type);
|
||||
}
|
||||
|
||||
public T orderRelation(String paramId, String type) {
|
||||
return orderRelation(paramId, buildParamName(paramId), type);
|
||||
}
|
||||
|
||||
public T orderRelation(String paramId, String paramName, String type) {
|
||||
assertNotMapped(paramId);
|
||||
this.singleRelations.put(paramId, new String[] { paramName, type, Tags.ORDER });
|
||||
@SuppressWarnings("unchecked")
|
||||
T t = (T) this;
|
||||
this.singleRelations.put(paramId, new String[]{paramName, type, Tags.ORDER});
|
||||
@SuppressWarnings("unchecked") T t = (T) this;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -106,11 +123,14 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
return orderRelations(buildParamId(type), type + "s", type);
|
||||
}
|
||||
|
||||
public T orderRelations(String paramId, String type) {
|
||||
return orderRelations(paramId, buildParamName(paramId), type);
|
||||
}
|
||||
|
||||
public T orderRelations(String paramId, String paramName, String type) {
|
||||
assertNotMapped(paramId);
|
||||
this.multiRelations.put(paramId, new String[] { paramName, type, Tags.ORDER });
|
||||
@SuppressWarnings("unchecked")
|
||||
T t = (T) this;
|
||||
this.multiRelations.put(paramId, new String[]{paramName, type, Tags.ORDER});
|
||||
@SuppressWarnings("unchecked") T t = (T) this;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -118,11 +138,14 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
return activityRelation(buildParamId(type), type, type);
|
||||
}
|
||||
|
||||
public T activityRelation(String paramId, String type) {
|
||||
return activityRelation(paramId, buildParamName(paramId), type);
|
||||
}
|
||||
|
||||
public T activityRelation(String paramId, String paramName, String type) {
|
||||
assertNotMapped(paramId);
|
||||
this.singleRelations.put(paramId, new String[] { paramName, type, Tags.ACTIVITY });
|
||||
@SuppressWarnings("unchecked")
|
||||
T t = (T) this;
|
||||
this.singleRelations.put(paramId, new String[]{paramName, type, Tags.ACTIVITY});
|
||||
@SuppressWarnings("unchecked") T t = (T) this;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -130,11 +153,14 @@ public abstract class ParameterBagContainerBuilder<T extends ParameterBagContain
|
|||
return activityRelations(buildParamId(type), type + "s", type);
|
||||
}
|
||||
|
||||
public T activityRelations(String paramId, String type) {
|
||||
return activityRelations(paramId, buildParamName(paramId), type);
|
||||
}
|
||||
|
||||
public T activityRelations(String paramId, String paramName, String type) {
|
||||
assertNotMapped(paramId);
|
||||
this.multiRelations.put(paramId, new String[] { paramName, type, Tags.ACTIVITY });
|
||||
@SuppressWarnings("unchecked")
|
||||
T t = (T) this;
|
||||
this.multiRelations.put(paramId, new String[]{paramName, type, Tags.ACTIVITY});
|
||||
@SuppressWarnings("unchecked") T t = (T) this;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,18 +3,23 @@ package li.strolch.model.builder;
|
|||
import li.strolch.model.ParameterBagContainer;
|
||||
import li.strolch.model.PolicyContainer;
|
||||
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamName;
|
||||
|
||||
public class PolicyContainerBuilder<T extends ParameterBagContainerBuilder<T>> extends ParameterBagContainerBuilder<T> {
|
||||
|
||||
private PoliciesBuilder<T> policies;
|
||||
|
||||
public PolicyContainerBuilder(String id, String type) {
|
||||
super(id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public PolicyContainerBuilder(String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
}
|
||||
|
||||
public PoliciesBuilder<T> policies() {
|
||||
if (this.policies == null) {
|
||||
@SuppressWarnings("unchecked")
|
||||
T t = (T) this;
|
||||
@SuppressWarnings("unchecked") T t = (T) this;
|
||||
this.policies = new PoliciesBuilder<>(t);
|
||||
}
|
||||
return policies;
|
||||
|
|
|
@ -1,65 +1,104 @@
|
|||
package li.strolch.model.builder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import li.strolch.model.Resource;
|
||||
import li.strolch.model.builder.states.*;
|
||||
import li.strolch.utils.dbc.DBC;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamName;
|
||||
import static li.strolch.utils.helper.StringHelper.getUniqueId;
|
||||
|
||||
public class ResourceBuilder extends RootElementBuilder<ResourceBuilder> {
|
||||
|
||||
private final StrolchElementBuilder builder;
|
||||
private final List<TimedStateBuilder<?>> timedStates;
|
||||
|
||||
public ResourceBuilder(String name, String type) {
|
||||
this(getUniqueId(), name, type);
|
||||
}
|
||||
|
||||
public ResourceBuilder(String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
this.builder = null;
|
||||
this.timedStates = new ArrayList<>();
|
||||
}
|
||||
|
||||
public ResourceBuilder(StrolchElementBuilder builder, String name, String type) {
|
||||
this(builder, getUniqueId(), name, type);
|
||||
}
|
||||
|
||||
public ResourceBuilder(StrolchElementBuilder builder, String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
this.builder = builder;
|
||||
this.timedStates = new ArrayList<>();
|
||||
}
|
||||
|
||||
public BooleanStateBuilder booleanState(String id) {
|
||||
return booleanState(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public BooleanStateBuilder booleanState(String id, String name) {
|
||||
BooleanStateBuilder builder = new BooleanStateBuilder(this, id, name);
|
||||
this.timedStates.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public FloatStateBuilder floatState(String id) {
|
||||
return floatState(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public FloatStateBuilder floatState(String id, String name) {
|
||||
FloatStateBuilder builder = new FloatStateBuilder(this, id, name);
|
||||
this.timedStates.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public IntegerStateBuilder integerState(String id) {
|
||||
return integerState(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public IntegerStateBuilder integerState(String id, String name) {
|
||||
IntegerStateBuilder builder = new IntegerStateBuilder(this, id, name);
|
||||
this.timedStates.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public LongStateBuilder longState(String id) {
|
||||
return longState(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public LongStateBuilder longState(String id, String name) {
|
||||
LongStateBuilder builder = new LongStateBuilder(this, id, name);
|
||||
this.timedStates.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public FloatListStateBuilder floatListState(String id) {
|
||||
return floatListState(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public FloatListStateBuilder floatListState(String id, String name) {
|
||||
FloatListStateBuilder builder = new FloatListStateBuilder(this, id, name);
|
||||
this.timedStates.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public IntegerListStateBuilder integerListState(String id) {
|
||||
return integerListState(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public IntegerListStateBuilder integerListState(String id, String name) {
|
||||
IntegerListStateBuilder builder = new IntegerListStateBuilder(this, id, name);
|
||||
this.timedStates.add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public StringSetStateBuilder stringSetState(String id) {
|
||||
return stringSetState(id, buildParamName(id));
|
||||
}
|
||||
|
||||
public StringSetStateBuilder stringSetState(String id, String name) {
|
||||
StringSetStateBuilder builder = new StringSetStateBuilder(this, id, name);
|
||||
this.timedStates.add(builder);
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
package li.strolch.model.builder;
|
||||
|
||||
import li.strolch.model.PolicyContainer;
|
||||
import li.strolch.model.StrolchRootElement;
|
||||
|
||||
import static li.strolch.model.builder.BuilderHelper.buildParamName;
|
||||
|
||||
public abstract class RootElementBuilder<T extends ParameterBagContainerBuilder<T>> extends PolicyContainerBuilder<T> {
|
||||
|
||||
public RootElementBuilder(String id, String type) {
|
||||
super(id, buildParamName(id), type);
|
||||
}
|
||||
|
||||
public RootElementBuilder(String id, String name, String type) {
|
||||
super(id, name, type);
|
||||
}
|
||||
|
|
|
@ -27,19 +27,19 @@ public class StrolchElementBuilder {
|
|||
this.activityBuilders = new HashMap<>();
|
||||
}
|
||||
|
||||
public ResourceBuilder resource(String name, String type) {
|
||||
public ResourceBuilder resourceTemplate(String name, String type) {
|
||||
ResourceBuilder builder = new ResourceBuilder(this, type, name, TEMPLATE);
|
||||
this.resourceBuilders.put(type, builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public OrderBuilder order(String name, String type) {
|
||||
public OrderBuilder orderTemplate(String name, String type) {
|
||||
OrderBuilder builder = new OrderBuilder(this, type, name, TEMPLATE);
|
||||
this.orderBuilders.put(type, builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public ActivityBuilder activity(String name, String type, TimeOrdering timeOrdering) {
|
||||
public ActivityBuilder activityTemplate(String name, String type, TimeOrdering timeOrdering) {
|
||||
ActivityBuilder builder = new ActivityBuilder(this, type, name, TEMPLATE, timeOrdering);
|
||||
this.activityBuilders.put(type, builder);
|
||||
return builder;
|
||||
|
@ -62,7 +62,7 @@ public class StrolchElementBuilder {
|
|||
|
||||
public List<StrolchRootElement> buildTemplates() {
|
||||
return concat(concat(this.resourceBuilders.values().stream(), //
|
||||
this.orderBuilders.values().stream()), //
|
||||
this.orderBuilders.values().stream()), //
|
||||
this.activityBuilders.values().stream()) //
|
||||
.map(RootElementBuilder::build).collect(toList());
|
||||
}
|
||||
|
@ -71,24 +71,24 @@ public class StrolchElementBuilder {
|
|||
ResourceBuilder builder = this.resourceBuilders.get(type);
|
||||
if (builder == null)
|
||||
throw new IllegalArgumentException("No resource template defined for type " + type);
|
||||
return updateFields(type, newName, builder.build());
|
||||
return setInitialFields(type, newName, builder.build());
|
||||
}
|
||||
|
||||
public Order newOrder(String type, String newName) {
|
||||
OrderBuilder builder = this.orderBuilders.get(type);
|
||||
if (builder == null)
|
||||
throw new IllegalArgumentException("No resource template defined for type " + type);
|
||||
return updateFields(type, newName, builder.build());
|
||||
return setInitialFields(type, newName, builder.build());
|
||||
}
|
||||
|
||||
public Activity newActivity(String type, String newName) {
|
||||
ActivityBuilder builder = this.activityBuilders.get(type);
|
||||
if (builder == null)
|
||||
throw new IllegalArgumentException("No resource template defined for type " + type);
|
||||
return updateFields(type, newName, builder.build());
|
||||
return setInitialFields(type, newName, builder.build());
|
||||
}
|
||||
|
||||
private <T extends StrolchRootElement> T updateFields(String type, String newName, T element) {
|
||||
private <T extends StrolchRootElement> T setInitialFields(String type, String newName, T element) {
|
||||
element.setId(StringHelper.getUniqueId());
|
||||
element.setName(newName);
|
||||
element.setType(type);
|
||||
|
|
|
@ -33,7 +33,7 @@ public class StrolchElementBuilderTest {
|
|||
*/
|
||||
|
||||
// person
|
||||
.resource("Person Template", "Person") //
|
||||
.resourceTemplate("Person Template", "Person") //
|
||||
.defaultBag() //
|
||||
.date("birthdate", "Birthdate").value(ZonedDateTime.now()).end() //
|
||||
.string("case", "Case").interpretation("Case").uom("Simple").end() //
|
||||
|
@ -47,7 +47,7 @@ public class StrolchElementBuilderTest {
|
|||
.endResource() //
|
||||
|
||||
// cars
|
||||
.resource("Car Template", "Car") //
|
||||
.resourceTemplate("Car Template", "Car") //
|
||||
.defaultBag() //
|
||||
.string("color", "Color").value("white").end() //
|
||||
.endBag() //
|
||||
|
@ -56,7 +56,7 @@ public class StrolchElementBuilderTest {
|
|||
.endResource() //
|
||||
|
||||
// machines
|
||||
.resource("Machine Template", "Machine") //
|
||||
.resourceTemplate("Machine Template", "Machine") //
|
||||
.defaultBag() //
|
||||
.string("color", "Color").end() //
|
||||
.endBag() //
|
||||
|
@ -68,7 +68,7 @@ public class StrolchElementBuilderTest {
|
|||
*/
|
||||
|
||||
// orders
|
||||
.order("Order Template", "Order") //
|
||||
.orderTemplate("Order Template", "Order") //
|
||||
.defaultBag() //
|
||||
.string("description", "Description").end() //
|
||||
.endBag() //
|
||||
|
@ -83,7 +83,7 @@ public class StrolchElementBuilderTest {
|
|||
*/
|
||||
|
||||
// ToStock
|
||||
.activity("ToStock Template", "ToStock", TimeOrdering.SERIES) //
|
||||
.activityTemplate("ToStock Template", "ToStock", TimeOrdering.SERIES) //
|
||||
.defaultBag() //
|
||||
.string("description", "Description").end() //
|
||||
.endBag() //
|
||||
|
@ -211,7 +211,7 @@ public class StrolchElementBuilderTest {
|
|||
|
||||
Resource car1 = new StrolchElementBuilder() //
|
||||
|
||||
.resource("Car Template", "Car") //
|
||||
.resourceTemplate("Car Template", "Car") //
|
||||
.defaultBag() //
|
||||
.string("color", "Color").value("white").end() //
|
||||
.endBag() //
|
||||
|
|
Loading…
Reference in New Issue