import org.wamblee.system.core.RequiredInterface;
import org.wamblee.test.EventTracker;
-public class Environment extends AbstractComponent {
+public class Environment extends AbstractComponent<Object> {
- private static final ProvidedInterface[] provided() {
+ private static final ProvidedInterface[] provided(String aPrefix) {
return new ProvidedInterface[] {
- new DefaultProvidedInterface("datasource", String.class),
- new DefaultProvidedInterface("integer", Integer.class) };
+ new DefaultProvidedInterface(aPrefix + "datasource", String.class),
+ new DefaultProvidedInterface(aPrefix + "integer", Integer.class) };
}
+
+ private static int COUNT = 0;
private EventTracker<String> _tracker;
private double _random;
+ private int _integer;
public Environment() {
- super("environment", provided(), new RequiredInterface[0]);
- _random = Math.random();
+ this("environment");
}
+
+ public Environment(String aName) {
+ this(aName, "");
+ }
+
+ public Environment(String aName, String aPrefix) {
+ super(aName, provided(aPrefix), new RequiredInterface[0]);
+ _random = Math.random();
+ _integer = COUNT++;
+ }
+
+
public Environment(EventTracker aTracker) {
this();
}
public Integer getInteger() {
- return 2;
+ return _integer;
}
public String getString() {
- return "Hello";
+ return getName() + ".hello";
}
@Override
protected Object doStart(Scope aScope) {
- addInterface(getProvidedInterfaces()[0], getString(), aScope);
- addInterface(getProvidedInterfaces()[1], getInteger(), aScope);
+ addInterface(getProvidedInterfaces().get(0), getString(), aScope);
+ addInterface(getProvidedInterfaces().get(1), getInteger(), aScope);
track("start." + getName());
return _random;
}