ProtocolWriter : modèle pour règles protocoles d'écriture terminé
This commit is contained in:
parent
8201d3db91
commit
0ae4880679
@ -1,23 +1,45 @@
|
|||||||
package lightcontainer.protocol;
|
package lightcontainer.protocol;
|
||||||
|
|
||||||
|
import java.util.StringJoiner;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public abstract class ProtocolWriter {
|
public abstract class ProtocolWriter {
|
||||||
|
|
||||||
private final Pattern rulePattern;
|
private final Pattern rulePattern;
|
||||||
|
private final String cmdName;
|
||||||
|
|
||||||
protected ProtocolWriter(String pattern) {
|
|
||||||
|
protected ProtocolWriter(String cmdName, String pattern) {
|
||||||
this.rulePattern = Pattern.compile(pattern);
|
this.rulePattern = Pattern.compile(pattern);
|
||||||
|
this.cmdName = cmdName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String execute(String data) {
|
/**
|
||||||
Matcher ruleMatcher = this.rulePattern.matcher(data);
|
* Permet de récupérer le nom du protocol
|
||||||
|
* @return
|
||||||
if (ruleMatcher.matches()) {
|
*/
|
||||||
|
public String getCmdName() {
|
||||||
|
return cmdName;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
/**
|
||||||
|
* Permet de contruire une commande selon une règle établie.
|
||||||
|
* @param datas Les données à ajouter dans la commande; L'ordre défini leur position dans la commande
|
||||||
|
* @return La commande construite
|
||||||
|
*/
|
||||||
|
public String execute(String... datas) {
|
||||||
|
// Concatatène le nom de la commande avec les données (trim), avec un espace entre chaque
|
||||||
|
String command = null;
|
||||||
|
StringJoiner builder = new StringJoiner(" ", this.cmdName, "");
|
||||||
|
|
||||||
|
for (String data : datas)
|
||||||
|
builder.add(data);
|
||||||
|
|
||||||
|
command = builder.toString();
|
||||||
|
|
||||||
|
// Vérifie que tout match (cf. Matcher). Si match alors on retourne la commande build, sinon on retourne NULL
|
||||||
|
Matcher ruleMatcher = this.rulePattern.matcher(command);
|
||||||
|
return ruleMatcher.matches() ? command : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user