Modification système de ProtocolReader.java qui permet de lire/ecrire un fichier sur le réseau.
This commit is contained in:
parent
f0461537f6
commit
a1b3463d3b
@ -1,5 +1,7 @@
|
|||||||
package lightcontainer.protocol;
|
package lightcontainer.protocol;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@ -17,12 +19,41 @@ public abstract class ProtocolReader {
|
|||||||
STOREBACKEND
|
STOREBACKEND
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum FileOptions {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ne lire/ecrire aucun fichier
|
||||||
|
*/
|
||||||
|
NONE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lire un fichier : Implementer la méthode 'read'
|
||||||
|
*/
|
||||||
|
READ,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ecrire un fichier : Implementer la méthode 'write'
|
||||||
|
*/
|
||||||
|
WRITE
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modèle utilisé par tout les résultats des règles de protocol.
|
||||||
|
* Lorsqu'il retourne son résultat, on vérifie si il y a une demande de lecture/écriture de fichier depuis le réseau. Si oui on appel ces méthodes, sinon on ne fait rien.
|
||||||
|
* Ensuite on regarde après l'exécution de ces méthode ou non si il y a une commande de retour ou non et l'envoyons au receiver spécifié par la commande.
|
||||||
|
*/
|
||||||
public abstract class ProtocolResult {
|
public abstract class ProtocolResult {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permet de déterminer si la class souhaite lire ou écrire un fichier.
|
||||||
|
*/
|
||||||
|
private final FileOptions option;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Command qui sera renvoyée par exemple au client
|
* Command qui sera renvoyée par exemple au client
|
||||||
*/
|
*/
|
||||||
private String resultCommand;
|
private String resultCommand;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Désigne vers ou cette commande est envoyée.
|
* Désigne vers ou cette commande est envoyée.
|
||||||
* ResultCmdReceiver.CLIENT : Signifie que cette commande va être directement revoyée au client.
|
* ResultCmdReceiver.CLIENT : Signifie que cette commande va être directement revoyée au client.
|
||||||
@ -31,18 +62,60 @@ public abstract class ProtocolReader {
|
|||||||
private ResultCmdReceiver receiver;
|
private ResultCmdReceiver receiver;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Spécifier une option correct afin de permettre au système de détecter ce qu'il doit exécuter.
|
||||||
|
* @param option Option
|
||||||
|
*/
|
||||||
|
public ProtocolResult(FileOptions option) {
|
||||||
|
this.option = option;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public ResultCmdReceiver getReceiver() {
|
public ResultCmdReceiver getReceiver() {
|
||||||
return receiver;
|
return receiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Récupérer la commande à envoyer
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public String getResultCommand() {
|
public String getResultCommand() {
|
||||||
return resultCommand;
|
return resultCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mettre la commande à envoyer
|
||||||
|
* @param resultCommand Commande à envoyer
|
||||||
|
* @param receiver Le receveur de cette commande
|
||||||
|
*/
|
||||||
public void setResultCommand(String resultCommand, ResultCmdReceiver receiver) {
|
public void setResultCommand(String resultCommand, ResultCmdReceiver receiver) {
|
||||||
this.resultCommand = resultCommand;
|
this.resultCommand = resultCommand;
|
||||||
this.receiver = receiver;
|
this.receiver = receiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permet de récupérer l'option associée au protocol.
|
||||||
|
* @return L'option associée
|
||||||
|
*/
|
||||||
|
public FileOptions getOption() {
|
||||||
|
return option;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permet de lire un fichier. Cad reçevoir le contenu d'un fichier provenant du réseau.
|
||||||
|
* Redéfinissez cette méthode pour l'utiliser
|
||||||
|
* @param reader Buffer rempli du fichier
|
||||||
|
*/
|
||||||
|
public void read(BufferedReader reader) {}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permet d'écrire un fichier. Cad reçevoir le contenu d'un fichier provenant du réseau
|
||||||
|
* @param writer Buffer à remplir, et qui sera envoyer au destinataire
|
||||||
|
*/
|
||||||
|
public void write(BufferedWriter writer) {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,6 +2,7 @@ package lightcontainer.protocol.rules.reader;
|
|||||||
|
|
||||||
import lightcontainer.protocol.ProtocolReader;
|
import lightcontainer.protocol.ProtocolReader;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -26,6 +27,7 @@ public class HelloRule extends ProtocolReader {
|
|||||||
private final int port;
|
private final int port;
|
||||||
|
|
||||||
public Result(String domain, int port) {
|
public Result(String domain, int port) {
|
||||||
|
super(FileOptions.NONE);
|
||||||
this.domain = domain;
|
this.domain = domain;
|
||||||
this.port = port;
|
this.port = port;
|
||||||
}
|
}
|
||||||
@ -37,6 +39,8 @@ public class HelloRule extends ProtocolReader {
|
|||||||
public int getPort() {
|
public int getPort() {
|
||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public class SigninRule extends ProtocolReader {
|
|||||||
private final String password;
|
private final String password;
|
||||||
|
|
||||||
public Result(String login, String password) {
|
public Result(String login, String password) {
|
||||||
|
super(FileOptions.NONE);
|
||||||
this.login = login;
|
this.login = login;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user