Modification du système de ProtocolReader.java
This commit is contained in:
parent
c7af99a876
commit
c1fe6a0a96
@ -1,24 +1,40 @@
|
|||||||
package lightcontainer.protocol;
|
package lightcontainer.protocol;
|
||||||
|
|
||||||
public interface ProtocolReader {
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public abstract class ProtocolReader {
|
||||||
|
|
||||||
/**
|
private final Pattern rulePattern;
|
||||||
* Permet de récupérer le nom de la commande (ex. FILELIST, SENDRESULT)
|
|
||||||
*/
|
protected ProtocolReader(String pattern) {
|
||||||
String getCmd();
|
this.rulePattern = Pattern.compile(pattern);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permet de lancer la décomposition d'une commande pour en extraire les données
|
* Permet de lancer la décomposition d'une commande pour en extraire les données
|
||||||
* @param data Contenu de la commande
|
* @param data Contenu de la commande
|
||||||
*/
|
*/
|
||||||
void execute(String data);
|
public boolean execute(String data) {
|
||||||
|
Matcher ruleMatcher = this.rulePattern.matcher(data);
|
||||||
|
|
||||||
|
if (ruleMatcher.matches()) {
|
||||||
|
String[] groups = new String[ruleMatcher.groupCount()];
|
||||||
|
|
||||||
|
for (int i= 0; i < groups.length; ++i)
|
||||||
|
groups[i] = ruleMatcher.group(i);
|
||||||
|
|
||||||
|
onExecuted(groups);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permet de demander au protocol s'il capable de décomposer/gérer cette commande
|
* Cette méthode est appelée lors de l'exécution de la règle
|
||||||
* @param data Commande ("GETFILE" bl filename line)
|
* @param data
|
||||||
* @return TRUE si ce protocol peut gérer
|
|
||||||
*/
|
*/
|
||||||
boolean match(String data);
|
protected abstract void onExecuted(String... data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,11 @@ public class HelloRule extends ProtocolReader {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onExecuted(String[] data) {
|
protected void onExecuted(String... data) {
|
||||||
|
String domain = data[0];
|
||||||
|
String port = data[1];
|
||||||
|
|
||||||
|
System.out.printf("Règle Hello avec domain=%s et port=%s", domain, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user