com.tensegrity.palojava.http
Class ConnectionHttp

java.lang.Object
  extended by com.tensegrity.palojava.http.ConnectionHttp
All Implemented Interfaces:
IConnection

public class ConnectionHttp
extends java.lang.Object
implements IConnection

ConnectionHttp Implementation of the IConnection interface based on the new palo server which uses the http protocol for communication

Version:
$Id$
Author:
ArndHouben

Field Summary
 
Fields inherited from interface com.tensegrity.palojava.IConnection
ADDORUPDATE_MODE_ADD, ADDORUPDATE_MODE_ADD_OR_UPDATE, ADDORUPDATE_MODE_FORCE_ADD, ADDORUPDATE_MODE_UPDATE, ELEMENTINDEX_OUTOFBOUNDS, NOT_CONNECTED, SPLASH_MODE_BASE_ADD, SPLASH_MODE_BASE_SET, SPLASH_MODE_DEFAULT, SPLASH_MODE_DISABLED, SPLASH_MODE_UNKNOWN
 
Constructor Summary
ConnectionHttp(java.lang.String server, java.lang.String service, java.lang.String username, java.lang.String password)
          Creates a new Connection instance
 
Method Summary
 void addDatabase(java.lang.String database)
          Adds the given database.
 void clearDimension(java.lang.String database, java.lang.String dimension)
          Clears the specified dimension.
 void cubeCommitLog(java.lang.String database, java.lang.String cube)
          Commits the cube log.
 java.lang.String[] cubeListDimensions(java.lang.String database, java.lang.String cube)
          Receives the dimension names of the specified cube.
 void cubeLoad(java.lang.String database, java.lang.String cube)
          Loads the cube data into memory.
 void databaseAddCube(java.lang.String database, java.lang.String cube, java.lang.String[] dimensions)
          Adds a new cube with the given name and the specified dimensions
 void databaseAddDimension(java.lang.String database, java.lang.String dimension)
          Adds a new dimension to the database
 java.lang.String[] databaseListCubes(java.lang.String database)
          Receives the cube names of the specified database
 java.lang.String[] databaseListDimensions(java.lang.String database)
          Receives the dimension names of the specified database
 void databaseLoad(java.lang.String database)
          Loads the given database.
 void databaseRenameDimension(java.lang.String database, java.lang.String dimensionOldname, java.lang.String dimensionNewname)
          Renames a dimension
 void databaseSave(java.lang.String database)
          Saves the specified database.
 void deleteCube(java.lang.String database, java.lang.String cube)
          Deletes the given cube.
 void deleteDatabase(java.lang.String database)
          Deletes the given database.
 void deleteDimension(java.lang.String database, java.lang.String dimension)
          Deletes the specified dimension
 void dimElementDelete(java.lang.String database, java.lang.String dimension, java.lang.String element)
          Deletes the specified element from its dimension
 ConsolidationInfo[] dimElementListConsolidated(java.lang.String database, java.lang.String dimension, java.lang.String element)
          Receives the conoslidation informations about the specified element.
 void dimElementMove(java.lang.String database, java.lang.String dimension, java.lang.String element, int newPosition)
          Moves the given element to the specified position within its dimension.
 void dimElementRename(java.lang.String database, java.lang.String dimension, java.lang.String element, java.lang.String newName)
          Renames the given element
 void dimensionAddOrUpdateDimElement(java.lang.String database, java.lang.String dimension, java.lang.String element, int addOrUpdateMode, int dimElementType, ConsolidationInfo[] ci, boolean append)
          Adds or update the given element.
 void dimensionCommitLog(java.lang.String database, java.lang.String dimension)
          Commits the dimension log.
 java.lang.String[] dimensionListCubes(java.lang.String database, java.lang.String dimension)
          Receives the cube names of the specified dimension.
 DimElementInfo[] dimensionListDimElements(java.lang.String database, java.lang.String dimension)
          Receives the dimension elements of the specified dimension.
 void dimensionProcess(java.lang.String database, java.lang.String dimension)
          (Re)loads the given dimension.
 void disconnect()
          Disconnects from the palo server
 int elementChildCount(java.lang.String database, java.lang.String dimension, java.lang.String element)
          Returns the number of children for the specified element.
 int elementCount(java.lang.String database, java.lang.String dimension)
          Returns the number of elements for the specified dimension.
 int elementIndent(java.lang.String database, java.lang.String dimension, java.lang.String element)
          Returns the indent of the given element.
 int elementIndex(java.lang.String database, java.lang.String dimension, java.lang.String element)
          Returns the index of the specified element within its dimension.
 int elementIsChild(java.lang.String database, java.lang.String dimension, java.lang.String parent, java.lang.String child)
           
 int elementLevel(java.lang.String database, java.lang.String dimension, java.lang.String element)
           
 java.lang.String elementName(java.lang.String database, java.lang.String dimension, int n)
          Returns the name of the element at the given position within the specified dimension
 int elementParentCount(java.lang.String database, java.lang.String dimension, java.lang.String element)
          Returns the number of parents for the specified element.
 int elementTopLevel(java.lang.String database, java.lang.String dimension)
           
 int elementType(java.lang.String database, java.lang.String dimension, int n)
          Returns the type of the element at the given position within the specified dimension
 java.lang.Object getData(java.lang.String database, java.lang.String cube, int nCoordinates, java.lang.String[] coordinates)
          Returns the value of the cell which is determined by the given coordinates.
 java.lang.Object[] getDataArea(java.lang.String database, java.lang.String cube, java.lang.String[][] elements)
          Convenient method to receive multiple cell values at one time.
 java.lang.String getErrorMessage()
          Returns the current error message
 java.lang.String getPassword()
          Returns the password md5 encrypted
 java.lang.String getServer()
          Returns the server name which hosts the palo server, e.g. localhost
 java.lang.String getService()
          Returns the port number
 java.lang.String getUsername()
          Returns the login name
 boolean isConnected()
          Returns true if a connection to the server is established, false otherwise
 void ping()
          Tests if the palo server is still reachable
 java.lang.String[] rootListDatabases()
          Returns the names of the databases of the palo server
 void rootSave()
          Saves the server data, i.e. its database names
 void setDataBulk(java.lang.String database, java.lang.String cube, java.lang.String[][] coordinates, java.lang.Object[] values, int splashMode)
          Convenient method to set multiple cell values at one time.
 void setDataNumeric(java.lang.String database, java.lang.String cube, int nCoordinates, java.lang.String[] coordinates, double value)
          Sets the given double value at the specified cell IConnection.getData(String, String, int, String[])
 void setDataNumericSplashed(java.lang.String database, java.lang.String cube, int nCoordinates, java.lang.String[] coordinates, double value, int splashMode)
          Sets the given double value at the specified cell.
 void setDataString(java.lang.String database, java.lang.String cube, int nCoordinates, java.lang.String[] coordinates, java.lang.String value)
          Sets the given String value at the specified cell IConnection.getData(String, String, int, String[])
 void setErrorMessage(java.lang.String errorMessage)
          Sets the specified message as new error message
 void unloadCube(java.lang.String database, java.lang.String cube)
          Unloads the cube data from memory.
 void unloadDatabase(java.lang.String database)
          Unloads the specified database from memory.
 void unloadDimension(java.lang.String database, java.lang.String dimension)
          Unloads the specified dimension from memory.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConnectionHttp

public ConnectionHttp(java.lang.String server,
                      java.lang.String service,
                      java.lang.String username,
                      java.lang.String password)
               throws PaloException
Creates a new Connection instance

Parameters:
server - the host name of the palo server
service - the port number of the palo server
username - the login name
password - the login password
Throws:
PaloException - if login failed
Method Detail

getServer

public java.lang.String getServer()
Description copied from interface: IConnection
Returns the server name which hosts the palo server, e.g. localhost

Specified by:
getServer in interface IConnection
Returns:
the name of the palo server host

getService

public java.lang.String getService()
Description copied from interface: IConnection
Returns the port number

Specified by:
getService in interface IConnection
Returns:
port number

getUsername

public java.lang.String getUsername()
Description copied from interface: IConnection
Returns the login name

Specified by:
getUsername in interface IConnection
Returns:
login name

getPassword

public java.lang.String getPassword()
Returns the password md5 encrypted

Specified by:
getPassword in interface IConnection
Returns:
login password

isConnected

public boolean isConnected()
Description copied from interface: IConnection
Returns true if a connection to the server is established, false otherwise

Specified by:
isConnected in interface IConnection
Returns:
true if a connection is established, false otherwise

getErrorMessage

public java.lang.String getErrorMessage()
Returns the current error message

Returns:
the error message

setErrorMessage

public void setErrorMessage(java.lang.String errorMessage)
Sets the specified message as new error message

Parameters:
errorMessage - the new error message

disconnect

public void disconnect()
                throws PaloException
Description copied from interface: IConnection
Disconnects from the palo server

Specified by:
disconnect in interface IConnection
Throws:
PaloException - if an communication exception occurs

ping

public void ping()
          throws PaloException
Description copied from interface: IConnection
Tests if the palo server is still reachable

Specified by:
ping in interface IConnection
Throws:
PaloException - if palo server is not reachable anymore

rootListDatabases

public java.lang.String[] rootListDatabases()
Description copied from interface: IConnection
Returns the names of the databases of the palo server

Specified by:
rootListDatabases in interface IConnection
Returns:
the database names

databaseListCubes

public java.lang.String[] databaseListCubes(java.lang.String database)
Description copied from interface: IConnection
Receives the cube names of the specified database

Specified by:
databaseListCubes in interface IConnection
Parameters:
database - a database name
Returns:
its cube names

databaseListDimensions

public java.lang.String[] databaseListDimensions(java.lang.String database)
Description copied from interface: IConnection
Receives the dimension names of the specified database

Specified by:
databaseListDimensions in interface IConnection
Parameters:
database - a database name
Returns:
its dimension names

cubeListDimensions

public java.lang.String[] cubeListDimensions(java.lang.String database,
                                             java.lang.String cube)
Description copied from interface: IConnection
Receives the dimension names of the specified cube.

Specified by:
cubeListDimensions in interface IConnection
Parameters:
database - the name of a database which contains the cube
cube - a cube name
Returns:
the dimension names the specified cube consists of

dimensionListCubes

public java.lang.String[] dimensionListCubes(java.lang.String database,
                                             java.lang.String dimension)
Description copied from interface: IConnection
Receives the cube names of the specified dimension.

Specified by:
dimensionListCubes in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - a dimension name
Returns:
the names of cubes which use the specified dimension

dimensionListDimElements

public DimElementInfo[] dimensionListDimElements(java.lang.String database,
                                                 java.lang.String dimension)
Description copied from interface: IConnection
Receives the dimension elements of the specified dimension.

Specified by:
dimensionListDimElements in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the dimension name
Returns:
the dimension elements as an DimElementInfo array

dimElementListConsolidated

public ConsolidationInfo[] dimElementListConsolidated(java.lang.String database,
                                                      java.lang.String dimension,
                                                      java.lang.String element)
Description copied from interface: IConnection
Receives the conoslidation informations about the specified element.

Specified by:
dimElementListConsolidated in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the dimension name which contains the element
element - the name of an element
Returns:
the consolidation infos as ConsolidationInfo array

elementChildCount

public int elementChildCount(java.lang.String database,
                             java.lang.String dimension,
                             java.lang.String element)
Description copied from interface: IConnection
Returns the number of children for the specified element.

Specified by:
elementChildCount in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the dimension name which contains the element
element - the name of an element
Returns:
the number of children the specified element has

elementParentCount

public int elementParentCount(java.lang.String database,
                              java.lang.String dimension,
                              java.lang.String element)
Description copied from interface: IConnection
Returns the number of parents for the specified element.

Specified by:
elementParentCount in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the dimension name which contains the element
element - the name of an element
Returns:
the number of parents the specified element has

elementCount

public int elementCount(java.lang.String database,
                        java.lang.String dimension)
Description copied from interface: IConnection
Returns the number of elements for the specified dimension.

Specified by:
elementCount in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - a dimension name
Returns:
the number of elements the specified dimension has

elementIndex

public int elementIndex(java.lang.String database,
                        java.lang.String dimension,
                        java.lang.String element)
Description copied from interface: IConnection
Returns the index of the specified element within its dimension.

Specified by:
elementIndex in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the dimension name which contains the element
element - the name of an element
Returns:
the number of parents the specified element has

elementIsChild

public int elementIsChild(java.lang.String database,
                          java.lang.String dimension,
                          java.lang.String parent,
                          java.lang.String child)
Specified by:
elementIsChild in interface IConnection
Returns:

elementLevel

public int elementLevel(java.lang.String database,
                        java.lang.String dimension,
                        java.lang.String element)
Specified by:
elementLevel in interface IConnection
Returns:

elementIndent

public int elementIndent(java.lang.String database,
                         java.lang.String dimension,
                         java.lang.String element)
Description copied from interface: IConnection
Returns the indent of the given element. Note: parents have a lower indent as their children. The indent is usefull to arrange element representations within a gui.

Specified by:
elementIndent in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the name of the dimension which contains the element
element - the element name
Returns:
the element indent

elementTopLevel

public int elementTopLevel(java.lang.String database,
                           java.lang.String dimension)
Specified by:
elementTopLevel in interface IConnection
Returns:

elementName

public java.lang.String elementName(java.lang.String database,
                                    java.lang.String dimension,
                                    int n)
Description copied from interface: IConnection
Returns the name of the element at the given position within the specified dimension

Specified by:
elementName in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the dimension name which contains the element
n - the element position
Returns:
the name of the element

elementType

public int elementType(java.lang.String database,
                       java.lang.String dimension,
                       int n)
Description copied from interface: IConnection
Returns the type of the element at the given position within the specified dimension

Specified by:
elementType in interface IConnection
Parameters:
database - the name of a database which contains the dimension
dimension - the dimension name which contains the element
n - the element position
Returns:
the type of the element

getData

public java.lang.Object getData(java.lang.String database,
                                java.lang.String cube,
                                int nCoordinates,
                                java.lang.String[] coordinates)
                         throws PaloException
Description copied from interface: IConnection
Returns the value of the cell which is determined by the given coordinates. The coordinates consists of Element names from the Dimensions which made up the cube. It is important to specifiy the elements in the same order as the dimensions are within the cube.

Specified by:
getData in interface IConnection
Parameters:
database - the name of a database which contains the cube
cube - a cube name
nCoordinates - number of coordinates
coordinates - the element names
Returns:
the cell value
Throws:
PaloException - if an exception occurs during the communication with the palo server

getDataArea

public java.lang.Object[] getDataArea(java.lang.String database,
                                      java.lang.String cube,
                                      java.lang.String[][] elements)
                               throws PaloException
Description copied from interface: IConnection
Convenient method to receive multiple cell values at one time. IConnection.getData(String, String, int, String[])

Specified by:
getDataArea in interface IConnection
Parameters:
database - the name of a database which contains the cube
cube - a cube name
elements - two dimensional array of element coordinates
Returns:
the values of the cells which correspond to the given coordinates
Throws:
PaloException - if an exception occurs during the communication with the palo server

setDataString

public void setDataString(java.lang.String database,
                          java.lang.String cube,
                          int nCoordinates,
                          java.lang.String[] coordinates,
                          java.lang.String value)
                   throws PaloException
Description copied from interface: IConnection
Sets the given String value at the specified cell IConnection.getData(String, String, int, String[])

Specified by:
setDataString in interface IConnection
Parameters:
database - the name of a database which contains the cube
cube - a cube name
nCoordinates - number of coordinates
coordinates - the element names
value - the new value
Throws:
PaloException - if an exception occurs during the communication with the palo server

setDataNumeric

public void setDataNumeric(java.lang.String database,
                           java.lang.String cube,
                           int nCoordinates,
                           java.lang.String[] coordinates,
                           double value)
                    throws PaloException
Description copied from interface: IConnection
Sets the given double value at the specified cell IConnection.getData(String, String, int, String[])

Specified by:
setDataNumeric in interface IConnection
Parameters:
database - the name of a database which contains the cube
cube - a cube name
nCoordinates - number of coordinates
coordinates - the element names
value - the new value
Throws:
PaloException - if an exception occurs during the communication with the palo server

setDataBulk

public void setDataBulk(java.lang.String database,
                        java.lang.String cube,
                        java.lang.String[][] coordinates,
                        java.lang.Object[] values,
                        int splashMode)
                 throws PaloException
Description copied from interface: IConnection
Convenient method to set multiple cell values at one time. IConnection.setDataNumericSplashed(String, String, int, String[], double, int)

Specified by:
setDataBulk in interface IConnection
Parameters:
database - the name of a database which contains the cube
cube - a cube name
coordinates - the coordinates of the cells
splashMode - the splash mode, use defined class constants
Throws:
PaloException - if an exception occurs during the communication with the palo server

addDatabase

public void addDatabase(java.lang.String database)
Description copied from interface: IConnection
Adds the given database. Note: the database name has to be unique

Specified by:
addDatabase in interface IConnection
Parameters:
database - name of the new database.

unloadDatabase

public void unloadDatabase(java.lang.String database)
Description copied from interface: IConnection
Unloads the specified database from memory.

Specified by:
unloadDatabase in interface IConnection
Parameters:
database - name of the database

deleteDatabase

public void deleteDatabase(java.lang.String database)
Description copied from interface: IConnection
Deletes the given database.

Specified by:
deleteDatabase in interface IConnection
Parameters:
database - name of the database.

unloadDimension

public void unloadDimension(java.lang.String database,
                            java.lang.String dimension)
Description copied from interface: IConnection
Unloads the specified dimension from memory.

Specified by:
unloadDimension in interface IConnection
Parameters:
database - the database name which contains the dimenions
dimension - the dimension name

deleteDimension

public void deleteDimension(java.lang.String database,
                            java.lang.String dimension)
Description copied from interface: IConnection
Deletes the specified dimension

Specified by:
deleteDimension in interface IConnection
Parameters:
database - the database name which contains the dimenions
dimension - the dimension name

clearDimension

public void clearDimension(java.lang.String database,
                           java.lang.String dimension)
Description copied from interface: IConnection
Clears the specified dimension. This means that all its elements are removed and that all associated cubes are cleared too.

Specified by:
clearDimension in interface IConnection
Parameters:
database - the database name which contains the dimenions
dimension - the dimension name

databaseAddCube

public void databaseAddCube(java.lang.String database,
                            java.lang.String cube,
                            java.lang.String[] dimensions)
Description copied from interface: IConnection
Adds a new cube with the given name and the specified dimensions

Specified by:
databaseAddCube in interface IConnection
Parameters:
database - name of the database to add the cube to
cube - the cube name
dimensions - the dimension names

databaseAddDimension

public void databaseAddDimension(java.lang.String database,
                                 java.lang.String dimension)
Description copied from interface: IConnection
Adds a new dimension to the database

Specified by:
databaseAddDimension in interface IConnection
Parameters:
database - name of the database to add the dimension to

databaseRenameDimension

public void databaseRenameDimension(java.lang.String database,
                                    java.lang.String dimensionOldname,
                                    java.lang.String dimensionNewname)
Description copied from interface: IConnection
Renames a dimension

Specified by:
databaseRenameDimension in interface IConnection
Parameters:
database - name of the database which contains the dimension
dimensionOldname - old dimension name
dimensionNewname - new dimension name

dimensionAddOrUpdateDimElement

public void dimensionAddOrUpdateDimElement(java.lang.String database,
                                           java.lang.String dimension,
                                           java.lang.String element,
                                           int addOrUpdateMode,
                                           int dimElementType,
                                           ConsolidationInfo[] ci,
                                           boolean append)
Description copied from interface: IConnection
Adds or update the given element.

Specified by:
dimensionAddOrUpdateDimElement in interface IConnection
Parameters:
database - name of the database which contains the dimension
dimension - name of the dimension which contains the element
element - the element name
addOrUpdateMode - one of the defined add or update mode constants
dimElementType - a valid element type
ci - ConsolidatioInfos if any

dimElementRename

public void dimElementRename(java.lang.String database,
                             java.lang.String dimension,
                             java.lang.String element,
                             java.lang.String newName)
Description copied from interface: IConnection
Renames the given element

Specified by:
dimElementRename in interface IConnection
Parameters:
database - name of the database which contains the dimension
dimension - name of the dimension which contains the element
element - old element name
newName - new element name

dimElementMove

public void dimElementMove(java.lang.String database,
                           java.lang.String dimension,
                           java.lang.String element,
                           int newPosition)
Description copied from interface: IConnection
Moves the given element to the specified position within its dimension.

Specified by:
dimElementMove in interface IConnection
Parameters:
database - name of the database which contains the dimension
dimension - name of the dimension which contains the element
element - name of the element which should be moved
newPosition - the new element position

dimElementDelete

public void dimElementDelete(java.lang.String database,
                             java.lang.String dimension,
                             java.lang.String element)
Description copied from interface: IConnection
Deletes the specified element from its dimension

Specified by:
dimElementDelete in interface IConnection
Parameters:
database - name of the database which contains the dimension
dimension - name of the dimension which contains the element
element - name of the element which should be deleted

cubeLoad

public void cubeLoad(java.lang.String database,
                     java.lang.String cube)
Description copied from interface: IConnection
Loads the cube data into memory.

Specified by:
cubeLoad in interface IConnection
Parameters:
database - name of the database which contains the cube
cube - the cube name

databaseLoad

public void databaseLoad(java.lang.String database)
Description copied from interface: IConnection
Loads the given database. For loading a cube please use IConnection.cubeLoad(String, String)

Specified by:
databaseLoad in interface IConnection
Parameters:
database - name of the database to load

cubeCommitLog

public void cubeCommitLog(java.lang.String database,
                          java.lang.String cube)
Description copied from interface: IConnection
Commits the cube log.

Specified by:
cubeCommitLog in interface IConnection
Parameters:
database - name of the database which contains the cube
cube - the cube name

databaseSave

public void databaseSave(java.lang.String database)
Description copied from interface: IConnection
Saves the specified database.

Specified by:
databaseSave in interface IConnection
Parameters:
database - name of the database to save

rootSave

public void rootSave()
Description copied from interface: IConnection
Saves the server data, i.e. its database names

Specified by:
rootSave in interface IConnection

dimensionProcess

public void dimensionProcess(java.lang.String database,
                             java.lang.String dimension)
Description copied from interface: IConnection
(Re)loads the given dimension.

Specified by:
dimensionProcess in interface IConnection
Parameters:
database - name of the database which contains the dimension
dimension - the dimension name

unloadCube

public void unloadCube(java.lang.String database,
                       java.lang.String cube)
Description copied from interface: IConnection
Unloads the cube data from memory.

Specified by:
unloadCube in interface IConnection
Parameters:
database - name of the database which contains the cube
cube - the cube name

deleteCube

public void deleteCube(java.lang.String database,
                       java.lang.String cube)
Description copied from interface: IConnection
Deletes the given cube.

Specified by:
deleteCube in interface IConnection
Parameters:
database - name of the database which contains the cube
cube - the cube name

dimensionCommitLog

public void dimensionCommitLog(java.lang.String database,
                               java.lang.String dimension)
Description copied from interface: IConnection
Commits the dimension log.

Specified by:
dimensionCommitLog in interface IConnection
Parameters:
database - name of the database which contains the dimension
dimension - the dimension name

setDataNumericSplashed

public void setDataNumericSplashed(java.lang.String database,
                                   java.lang.String cube,
                                   int nCoordinates,
                                   java.lang.String[] coordinates,
                                   double value,
                                   int splashMode)
                            throws PaloException
Description copied from interface: IConnection
Sets the given double value at the specified cell. The splashMode paramater is only important for consolidated cells and determines how the value is scattered among the consolidated elements. Please use the defined class constants for valid values. Although more modes are currently defined only three are supported, namely: SPLASH_MODE_DEFAULT, SPLASH_MODE_BASE_SET and SPLASH_MODE_BASE_ADD

Specified by:
setDataNumericSplashed in interface IConnection
Parameters:
database - the name of a database which contains the cube
cube - a cube name
nCoordinates - number of coordinates
coordinates - the element names
value - the new value
splashMode - the splash mode, use defined class constants
Throws:
PaloException - if an exception occurs during the communication with the palo server