Merge remote-tracking branch 'origin/maximilien' into maximilien

# Conflicts:
#	.idea/misc.xml
This commit is contained in:
Jérémi N ‘EndMove’ 2022-02-26 11:51:20 +01:00
commit a252eaa965
Signed by: EndMove
GPG Key ID: 65C4A02E1F5371A4
13 changed files with 194 additions and 49 deletions

View File

@ -0,0 +1,12 @@
package lightcontainer.protocol;
public class ClientFileList extends Protocol{
protected ClientFileList() {
super("FILELIST", "^FILELIST\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,12 @@
package lightcontainer.protocol;
public class ClientGetFile extends Protocol{
protected ClientGetFile() {
super("GETFILE","^GETFILE ([^ !]{1,20})\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,13 @@
package lightcontainer.protocol;
public class ClientRemoveFile extends Protocol{
protected ClientRemoveFile() {
super("REMOVEFILE", "^REMOVEFILE ([^ !]{1,20})\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,12 @@
package lightcontainer.protocol;
public class ClientSaveFile extends Protocol {
protected ClientSaveFile() {
super("SAVEFILE", "^SAVE_FILE ([^ !]{1,20}) ([0-9]{1,10})\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,13 @@
package lightcontainer.protocol;
public class ClientSignIn extends Protocol {
protected ClientSignIn() {
super("SIGNIN", "^(SIGNIN) ([A-Za-z0-9]{2,20}) ([^ !]{5,50})\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,12 @@
package lightcontainer.protocol;
public class ClientSignOut extends Protocol {
protected ClientSignOut() {
super("SIGNOUT", "^SIGNOUT\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,12 @@
package lightcontainer.protocol;
public class ClientSignUp extends Protocol{
protected ClientSignUp() {
super("SIGNUP","^(SIGNUP) ([A-Za-z0-9]{2,20}) ([^ !]{5,50})\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -7,15 +7,14 @@ import java.util.regex.Pattern;
/**
* Protocol
*
* <p>
* Class allowing to define new rules for the LightContainer protocol,
* also provides utility functions to work with regexes and the command to compare.
*
* @version 1.0
* @since 1.0
*
* @see Pattern
* @author Jérémi NIHART <j.nihart@student.helmo.be>
* @version 1.0
* @see Pattern
* @since 1.0
*/
public abstract class Protocol {
// Variables
@ -25,6 +24,7 @@ public abstract class Protocol {
/**
* Protocol constructor
*
* @param rule Command (e.g: LOGIN).
* @param regex Regex to compile and use for this command (e.g: LOGIN ([A-Z0-9a-z]{1,20})).
* Do not forget to define the groups in the regex.
@ -38,7 +38,6 @@ public abstract class Protocol {
* Retrieve, the name of the Rule.
*
* @return Name of this rule.
*
* @since 1.0
*/
public String getRule() {
@ -48,10 +47,9 @@ public abstract class Protocol {
/**
* Check if a command matches the rule with the rule matcher.
*
* @param cmd Command to verify with the rule matcher.
* @return True : if the command match with the rule.
* False though.
* @param cmd Command to verify with the rule matcher.
*
* @since 1.0
*/
protected boolean matcherCheck(String cmd) {
@ -70,10 +68,8 @@ public abstract class Protocol {
* <b>Requires to have run {@link #matcherCheck(String)}</b>
*
* @return String list containing all the groups extrapolated from the command.
*
* @since 1.0
*
* @see Protocol#matcherCheck(String)
* @since 1.0
*/
protected List<String> matcherGetGroups() {
return this.groups;
@ -81,17 +77,15 @@ public abstract class Protocol {
/**
* Execute the rule on a command.
*
* <p>
* This function allows you to check a command and process those groups (parameters)
* use the utility functions of {@link Protocol} to facilitate processing, see @see.
*
* @param cmd Command on which to execute the rule.
*
* @since 1.0
*
* @see Protocol#execute(String)
* @see #matcherCheck(String)
* @see #matcherGetGroups()
* @since 1.0
*/
public abstract void execute(String cmd);
@ -99,7 +93,6 @@ public abstract class Protocol {
* Retrieve, the hashcode of the rule.
*
* @return Rule hashcode.
*
* @since 1.0
*/
@Override
@ -112,7 +105,6 @@ public abstract class Protocol {
*
* @return True : if the rules are equals
* False if not.
*
* @since 1.0
*/
@Override

View File

@ -0,0 +1,12 @@
package lightcontainer.protocol;
public class SbeEraseResult extends Protocol {
protected SbeEraseResult() {
super("ERASERESULT", "^(ERASE_OK|ERASE_ERROR)\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,16 @@
package lightcontainer.protocol;
public class SbeHello extends Protocol {
protected SbeHello() {
super("HELLO", "^(HELLO) ([A-Za-z0-9.]{5,20}) ([\\d]{0,5})\r\n$");
}
@Override
public void execute(String cmd) {
if (matcherCheck(cmd)) {
}
}
}

View File

@ -0,0 +1,12 @@
package lightcontainer.protocol;
public class SbeRetrieveResult extends Protocol {
protected SbeRetrieveResult() {
super("RETTRIEVERESULT", "^((RETRIEVE_OK) ([A-Za-z0-9.]{50,200} [0-9]{1,10} [A-Za-z0-9.]{50,200})\r\n)|((RETRIEVE_ERROR)\r\n)$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -0,0 +1,13 @@
package lightcontainer.protocol;
public class SbeSendResult extends Protocol {
protected SbeSendResult() {
super("SENDRESULT", "^(SEND_OK|SEND_ERROR)\r\n$");
}
@Override
public void execute(String cmd) {
}
}

View File

@ -4,26 +4,40 @@ port = (6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9
size = [0-9]{1,10}
line = \r\n
visiblechar = \p{Print}
passchar = [^\s!]
passchar = [^ !]
binary = .
password = [^\s!]{5,50}
bl = \s
password = [^ !]{5,50}
bl = //espace
letter = [A-Za-z]
digit_letter = [A-Za-z0-9]
filename = [^\s!]{1,20}
filename = [^ !]{1,20}
domain = [A-Za-z0-9.]{5,20}
hash_filename = [A-Za-z0-9.]{50,200}
hash_filecontent = [A-Za-z0-9.]{50,200}
file_info = [A-Za-z0-9.]{50,200}\s[0-9]{1,10}\s[A-Za-z0-9.]{50,200}
file_info = [A-Za-z0-9.]{50,200} [0-9]{1,10} [A-Za-z0-9.]{50,200}
login = [A-Za-z0-9]{2,20}
//StorBackEnd to FileFrontEnd
sbe_hello = ^(HELLO)\s([A-Za-z0-9.]{5,20})\s((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([0-5][0-9]{4})|([0-9]{1,4}))\r\n$ //TODO \r\n -> à tester pour voir si déjà dans le flux ou doit être construit
sbe_hello = ^HELLO ([A-Za-z0-9.]{5,20}) ([\d]{0,5})\r\n$ //TODO \r\n -> à tester pour voir si déjà dans le flux ou doit être construit
//FileFrontEnd to StorBackEnd
ffe_sendfile = ^(SENDFILE)\s([A-Za-z0-9.]{50,200}\s[0-9]{1,10}\s[A-Za-z0-9.]{50,200})\r\n(.*)$
ffe_sendfile = ^SENDFILE ([A-Za-z0-9.]{50,200} [0-9]{1,10} [A-Za-z0-9.]{50,200})\r\n$
sbe_sendresult = ^(SEND_OK|SEND_ERROR)\r\n$
ffe_erasefile = ^(ERASEFILE)\s([A-Za-z0-9.]{50,200})\r\n$
ffe_erasefile = ^ERASEFILE ([A-Za-z0-9.]{50,200})\r\n$
sbe_eraseresult = ^(ERASE_OK|ERASE_ERROR)\r\n$
ffe_retrievefile = ^(RETRIEVEFILE)\s([A-Za-z0-9.]{50,200})\r\n$
sbe_retrieveresult = ^(RETRIEVE_OK)\s([A-Za-z0-9.]{50,200}\s[0-9]{1,10}\s[A-Za-z0-9.]{50,200})\r\n(.*)|(RETRIEVE_ERROR)$
ffe_retrievefile = ^RETRIEVEFILE ([A-Za-z0-9.]{50,200})\r\n$
sbe_retrieveresult = ^(RETRIEVE_OK ([A-Za-z0-9.]{50,200} [0-9]{1,10} [A-Za-z0-9.]{50,200})\r\n)|(RETRIEVE_ERROR\r\n)$
//Client to FileFrontEnd
client_signin = ^SIGNIN ([A-Za-z0-9]{2,20}) ([^ !]{5,50})\r\n$
client_signup = ^SIGNUP ([A-Za-z0-9]{2,20}) ([^ !]{5,50})\r\n$
ffe_signresult = ^(SIGN_OK|SIGN_ERROR)\r\n$
client_filelist = ^FILELIST\r\n$
ffe_filelistresult = ^FILES(( [^ !]{1,20})!([0-9]{1,10})){0,50}$
client_savefile = ^SAVE_FILE ([^ !]{1,20}) ([0-9]{1,10})\r\n$
ffe_savefileresult = ^(SAVEFILE_OK|SAVEFILE_ERROR)\r\n$
client_getfile = ^GETFILE ([^ !]{1,20})\r\n$
ffe_getfileresult = ^(GETFILE_OK (^ !]{1,20}) ([0-9]{1,10})\r\n)|(GETFILE_ERROR\r\n)$
client_removefile = ^REMOVEFILE ([^ !]{1,20})\r\n$
ffe_removefileresult = ^(REMOVEFILE_OK|REMOVEFILE_ERROR)\r\n$
client_signout = ^SIGNOUT\r\n$