RobotCore
1.0
WPILib port to raspberry Pi
Toggle main menu visibility
Loading...
Searching...
No Matches
SequentialGroup.java
1
// Copyright (c) FIRST and other WPILib contributors.
2
// Open Source Software; you can modify and/or share it under the terms of
3
// the WPILib BSD license file in the root directory of this project.
4
5
package
org.wpilib.command3;
6
7
import
static
org.wpilib.util.ErrorMessages.requireNonNullParam;
8
9
import
java.util.ArrayList;
10
import
java.util.HashSet;
11
import
java.util.List;
12
import
java.util.Set;
13
24
public
final
class
SequentialGroup
implements
Command
{
25
private
final
String m_name;
26
private
final
List<Command> m_commands =
new
ArrayList<>();
27
private
final
Set<Mechanism> m_requirements =
new
HashSet<>();
28
private
final
int
m_priority;
29
36
SequentialGroup(String
name
, List<Command> commands) {
37
requireNonNullParam(
name
,
"name"
,
"SequentialGroup"
);
38
requireNonNullParam(commands,
"commands"
,
"SequentialGroup"
);
39
for
(
int
i = 0; i < commands.size(); i++) {
40
requireNonNullParam(commands.get(i),
"commands["
+ i +
"]"
,
"SequentialGroup"
);
41
}
42
43
m_name =
name
;
44
m_commands.addAll(commands);
45
46
for
(var command : commands) {
47
m_requirements.addAll(command.requirements());
48
}
49
50
m_priority =
51
commands.stream().mapToInt(
Command::priority
).max().orElse(
Command
.
DEFAULT_PRIORITY
);
52
}
53
54
@Override
55
public
void
run
(
Coroutine
coroutine) {
56
for
(var command : m_commands) {
57
coroutine.
await
(command);
58
}
59
}
60
61
@Override
62
public
String
name
() {
63
return
m_name;
64
}
65
66
@Override
67
public
Set<Mechanism>
requirements
() {
68
return
m_requirements;
69
}
70
71
@Override
72
public
int
priority
() {
73
return
m_priority;
74
}
75
76
@Override
77
public
String toString() {
78
return
"SequentialGroup[name="
+ m_name +
"]"
;
79
}
80
81
// package-private for testing
82
List<Command> getCommands() {
83
return
m_commands;
84
}
85
}
org.wpilib.command3.Coroutine
Definition
Coroutine.java:35
org.wpilib.command3.Coroutine.await
ForkResult await(Command command)
Definition
Coroutine.java:450
org.wpilib.command3.SequentialGroup.priority
int priority()
Definition
SequentialGroup.java:72
org.wpilib.command3.SequentialGroup.requirements
Set< Mechanism > requirements()
Definition
SequentialGroup.java:67
org.wpilib.command3.SequentialGroup.run
void run(Coroutine coroutine)
Definition
SequentialGroup.java:55
org.wpilib.command3.SequentialGroup.name
String name()
Definition
SequentialGroup.java:62
org.wpilib.command3.Command
Definition
Command.java:98
org.wpilib.command3.Command.DEFAULT_PRIORITY
int DEFAULT_PRIORITY
Definition
Command.java:100
org.wpilib.command3.Command.priority
default int priority()
Definition
Command.java:174
org
wpilib
command3
SequentialGroup.java
Generated by
1.18.0