Skip to content

Commit d0d43f4

Browse files
committed
Modified propagate to take (effectively) a method ref to run
1 parent 2546cfc commit d0d43f4

File tree

4 files changed

+11
-27
lines changed

4 files changed

+11
-27
lines changed

RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.technototes.library.hardware.motor.Motor;
44
import java.util.Arrays;
55
import java.util.List;
6+
import java.util.function.Consumer;
67

78
/**
89
* Interface for hardware device groups
@@ -38,9 +39,13 @@ default List<T> getAllDeviceList() {
3839
/**
3940
* Propagate actions across the followers
4041
*
41-
* @param value the value to propagate
42+
* @param func the action to propagate
4243
*/
43-
default void propagate(double value) {}
44+
default void propagate(Consumer<? super T> func) {
45+
for (T obj : getFollowers()) {
46+
func.accept(obj);
47+
}
48+
}
4449

4550
T getDeviceNum(int i);
4651

RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
@SuppressWarnings("unused")
1212
public class EncodedMotorGroup<T extends DcMotorSimple>
1313
extends EncodedMotor<T>
14-
implements HardwareDeviceGroup<Motor<T>> {
14+
implements HardwareDeviceGroup<EncodedMotor<T>> {
1515

1616
private final EncodedMotor<T>[] followers;
1717

@@ -39,17 +39,10 @@ public EncodedMotor<T>[] getAllDevices() {
3939
return m;
4040
}
4141

42-
@Override
43-
public void propagate(double value) {
44-
for (EncodedMotor<T> m : followers) {
45-
m.setSpeed(value);
46-
}
47-
}
48-
4942
@Override
5043
public void setVelocity(double tps) {
5144
super.setVelocity(tps);
52-
propagate(super.getSpeed());
45+
propagate(obj -> obj.setVelocity(tps));
5346
}
5447

5548
public void setVelocities(double... tps) {

RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,10 @@ public Motor<T>[] getAllDevices() {
3838
return m;
3939
}
4040

41-
@Override
42-
public void propagate(double value) {
43-
for (Motor m : followers) {
44-
m.setSpeed(value);
45-
}
46-
}
47-
4841
@Override
4942
public void setSpeed(double speed) {
5043
super.setSpeed(speed);
51-
propagate(speed);
44+
propagate(obj -> obj.setSpeed(speed));
5245
}
5346

5447
public void setSpeeds(double... speeds) {

RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,6 @@ public Servo[] getAllDevices() {
3838
return m;
3939
}
4040

41-
@Override
42-
public void propagate(double value) {
43-
for (Servo s : followers) {
44-
s.setPosition(value);
45-
}
46-
}
47-
4841
@Override
4942
public Servo getDeviceNum(int i) {
5043
return (i == 0) ? this : followers[i - 1];
@@ -53,7 +46,7 @@ public Servo getDeviceNum(int i) {
5346
@Override
5447
public void setPosition(double position) {
5548
super.setPosition(position);
56-
propagate(position);
49+
propagate(obj -> obj.setPosition(position));
5750
}
5851

5952
public void setPositions(double... positions) {

0 commit comments

Comments
 (0)