mirror of https://github.com/balkian/SOJA.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.0 KiB
Java
84 lines
2.0 KiB
Java
package es.upm.dit.gsi.jason.utils;
|
|
|
|
|
|
/**
|
|
* This Utils class is used to validate string according to the Jason atom
|
|
* notation criteria, and transform an invalid notation into a valid one
|
|
* and vice versa.
|
|
*
|
|
* This is useful in some context where the agents need to interact with an
|
|
* uncontrollable environment such as the Web.
|
|
*
|
|
* In Jason notation, white-spaces are not allowed, neither, words that starts
|
|
* with capital letter.
|
|
*
|
|
* @author gsi.dit.upm.es
|
|
*
|
|
*/
|
|
public class NotationUtils {
|
|
|
|
/**
|
|
* @param toCheck
|
|
* @return
|
|
*/
|
|
public static boolean isValidAtom (String toCheck) {
|
|
String lowerCase = toCheck.toLowerCase();
|
|
return !toCheck.contains(" ") && !toCheck.contains(",") && toCheck.equals(lowerCase);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param toCheck
|
|
* @return
|
|
*/
|
|
public static boolean isCompactable (String toCheck) {
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param str
|
|
* @return
|
|
*/
|
|
public static String compact(String str) {
|
|
|
|
if (isValidAtom (str)) {return str;}
|
|
if (!isCompactable(str)) {return null;}
|
|
|
|
str = str.replace("_", "___");
|
|
str = str.replace(" ", "_");
|
|
str = str.replace("ñ", "n");
|
|
return str.toLowerCase();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param str
|
|
* @return
|
|
*/
|
|
public static String uncompact(String str) {
|
|
str = str.replace("___", "#");
|
|
str = str.replace("_", " ");
|
|
str = str.replace("#", " ");
|
|
return str;
|
|
}
|
|
|
|
/**
|
|
* <p>This removes the quotation mark from the string given. If that
|
|
* string has no quotation marks it returned trimmed.</p>
|
|
*
|
|
* <p>The quotation marks are only removed from the beginning and the
|
|
* end of the string, so any quotation mark inserted in the middle of
|
|
* the string will be kept.</p>
|
|
*
|
|
* @return the string without the quotation marks
|
|
*/
|
|
public static String removeQuotation (String str) {
|
|
String message = str.trim();
|
|
if(message.startsWith("\"")) message = message.substring(1);
|
|
if(message.endsWith("\"")) message = message.substring(0, message.length()-1);
|
|
return message;
|
|
}
|
|
|
|
}
|