GUACAMOLE-36: Define REST API transfer mechanism for translatable messages.
This commit is contained in:
1 parent
30179c405f
commit
0671f18d40
5 files changed
+240
-2
No files matched your search
@@ -25,6 +25,8 @@ import org.apache.guacamole.GuacamoleException;
|
||||
import org.apache.guacamole.GuacamoleResourceNotFoundException;
|
||||
import org.apache.guacamole.GuacamoleSecurityException;
|
||||
import org.apache.guacamole.form.Field;
|
||||
import org.apache.guacamole.language.Translatable;
|
||||
import org.apache.guacamole.language.TranslatableMessage;
|
||||
import org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException;
|
||||
import org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException;
|
||||
import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException;
|
||||
@@ -39,10 +41,15 @@ import org.apache.guacamole.tunnel.GuacamoleStreamException;
|
||||
public class APIError {
|
||||
|
||||
/**
|
||||
* The error message.
|
||||
* The human-readable error message.
|
||||
*/
|
||||
private final String message;
|
||||
|
||||
/**
|
||||
* A translatable message representing the error that occurred.
|
||||
*/
|
||||
private final TranslatableMessage translatableMessage;
|
||||
|
||||
/**
|
||||
* The associated Guacamole protocol status code.
|
||||
*/
|
||||
@@ -148,7 +155,9 @@ public class APIError {
|
||||
|
||||
/**
|
||||
* Creates a new APIError which exposes the details of the given
|
||||
* GuacamoleException.
|
||||
* GuacamoleException. If the given GuacamoleException implements
|
||||
* Translatable, then its translation string and values will be exposed as
|
||||
* well.
|
||||
*
|
||||
* @param exception
|
||||
* The GuacamoleException from which the details of the new APIError
|
||||
@@ -176,6 +185,14 @@ public class APIError {
|
||||
else
|
||||
this.statusCode = null;
|
||||
|
||||
// Pull translatable message and values if available
|
||||
if (exception instanceof Translatable) {
|
||||
Translatable translatable = (Translatable) exception;
|
||||
this.translatableMessage = translatable.getTranslatableMessage();
|
||||
}
|
||||
else
|
||||
this.translatableMessage = new TranslatableMessage(this.message);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -223,4 +240,16 @@ public class APIError {
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a translatable message describing the error that occurred. If no
|
||||
* translatable message is associated with the error, this will be null.
|
||||
*
|
||||
* @return
|
||||
* A translatable message describing the error that occurred, or null
|
||||
* if there is no such message defined.
|
||||
*/
|
||||
public TranslatableMessage getTranslatableMessage() {
|
||||
return translatableMessage;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user