Version bump:

first functional version of new function mapping.
This commit is contained in:
Stephan Richter
2021-06-18 00:48:33 +02:00
parent 6d761005eb
commit ebaadd2a2d
9 changed files with 122 additions and 32 deletions

View File

@@ -49,6 +49,10 @@ public abstract class Function extends BaseClass{
return null;
}
public boolean enabled() {
return enabled;
}
public boolean enabled(Decoder decoder) {
return enabled;
}
@@ -101,8 +105,9 @@ public abstract class Function extends BaseClass{
return selector;
}
public void setState(boolean enabled) {
public Function setState(boolean enabled) {
this.enabled = enabled;
return this;
}
@Override

View File

@@ -44,4 +44,13 @@ public class FunctionList extends HashSet<Function> implements Constants{
stream().filter(fun -> name.equals(fun.name())).forEach(fun -> fun.setState(enabled));
return this;
}
public HashSet<Function> with(String name) {
HashSet<Function> subset = new HashSet<>();
for (Function f: this) {
if (f.name().equals(name)) subset.add(f);
}
return subset;
}
}

View File

@@ -1,5 +1,14 @@
package de.srsoftware.web4rail.functions;
public class HeadLight extends DirectedFunction {
import de.srsoftware.web4rail.devices.Decoder;
import de.srsoftware.web4rail.moving.Locomotive;
public class HeadLight extends DirectedFunction {
@Override
public boolean enabled(Decoder decoder) {
Locomotive loco = decoder.parent();
if (isNull(loco) || !loco.isFirst()) return false;
boolean result = isSet(loco) && loco.isFirst() && super.enabled(decoder);
return result;
}
}

View File

@@ -1,5 +1,13 @@
package de.srsoftware.web4rail.functions;
public class TailLight extends DirectedFunction {
import de.srsoftware.web4rail.devices.Decoder;
import de.srsoftware.web4rail.moving.Locomotive;
public class TailLight extends DirectedFunction {
@Override
public boolean enabled(Decoder decoder) {
Locomotive loco = decoder.parent();
if (isNull(loco) || !loco.isLast()) return false;
return super.enabled(decoder);
}
}