|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.myjavaworld.ftp.DefaultFTPClient
public class DefaultFTPClient
The default implementation of FTPClient. Works well with most of
the UNIX type FTP servers.
| Field Summary | |
|---|---|
protected int |
bufferSize
Buffer size for transferring data over the network. |
protected boolean |
connected
A flag that tells we are still connected to the remote host. |
protected ControlConnection |
controlConnection
A Control Connection object for sending commands and receiving replies. |
protected boolean |
dataChannelUnencrypted
A flag to determine if the data channel will be encrypted or not. |
protected DataConnection |
dataConnection
A DataConnection object used for transferring data to/from the remote system. |
protected String |
explicitSSLProtocol
The SSL protocol to use for negotiating Explicit SSL connections. |
protected EventListenerList |
listenerList
List of registered listeners. |
protected ListParser |
listParser
A ListParser object used to parse the directory listing produced by the remote host. |
protected boolean |
loggedIn
A flag that tells if we are logged in to the remote host. |
protected int |
mode
Data transfer mode. |
protected boolean |
passive
Whether or not to open data connections in passive mode. |
protected boolean |
passiveIPSubstitutionEnabled
Flag that determines if passive connections IP address should be substituted with the original server's IP address. |
protected Proxy |
proxy
The proxy server to use when connecting to the FTP server |
protected String |
reply
Stores that last reply received from the remote host. |
protected SSLContext |
sslContext
SSL context |
protected int |
sslUsage
SSL usage of this ftp client. |
protected int |
structure
Structure. |
protected int |
timeout
Timeout for this FTPClient. |
protected int |
type
Data representation type. |
protected RemoteFile |
workingDirectory
Keep track of the current working directory on the remote host. |
| Fields inherited from interface com.myjavaworld.ftp.FTPConstants |
|---|
DEFAULT_BUFFER_SIZE, DEFAULT_IMPLICIT_SSL_PORT, DEFAULT_MODE, DEFAULT_PORT, DEFAULT_STRUCTURE, DEFAULT_TIMEOUT, DEFAULT_TYPE, EOL, MODE_BLOCK, MODE_COMPRESSED, MODE_STREAM, STRUCTURE_FILE, STRUCTURE_PAGE, STRUCTURE_RECORD, TYPE_ASCII, TYPE_BINARY, TYPE_EBCDIC, TYPE_IMAGE, TYPE_LOCAL, USE_EXPLICIT_SSL, USE_IMPLICIT_SSL, USE_NO_SSL, USE_SSL_IF_AVAILABLE |
| Constructor Summary | |
|---|---|
DefaultFTPClient()
Constructs an DefaultFTPClient object that is not connected
to any host. |
|
| Method Summary | |
|---|---|
void |
abort()
Sends an abort command to the remote host. |
void |
addControlConnectionListener(ControlConnectionListener l)
Adds a listener that will be notified about the activities of ControlConnection associated with this FTPClient
. |
void |
addDataConnectionListener(DataConnectionListener l)
Adds a DataConnection Listener to this FTPClient. |
void |
addFTPConnectionListener(FTPConnectionListener l)
Adds the given FTPConnectionListener to the list of registered listeners. |
void |
allocate(long bytes)
Allocates the specified number of bytes on the remote system. |
void |
close()
Closes the control and data connections associated with this FTPClient. |
void |
connect(FTPHost ftpHost)
Connects and logs in to the FTP host. |
void |
connect(String host)
Connects to the specified remote host host on the default
FTP port. |
void |
connect(String host,
int port)
Connects to the specfied remote host host, on the specified
port number port. |
void |
createDirectory(RemoteFile dir)
Creates the specified remote directory dir on the remote
host. |
void |
createFile(RemoteFile file)
Creates an empty file with the given name on the remote host. |
void |
delete(RemoteFile path)
Deletes the specified path from the remote system. |
void |
deleteDirectory(RemoteFile dir)
Deletes the specified directory dir on the remote system. |
void |
deleteFile(RemoteFile file)
Deletes the specified file, file from the remote system. |
void |
disconnect()
Sends a quit command to the remote system and closes the control connection and data connection associated with this FTPClient. |
void |
download(RemoteFile source,
File destination,
int type,
boolean append)
Copies the contents of the source to the local file
destination. |
String |
executeCommand(String command)
Executes the given command returns the response back. |
protected void |
fireConnectionClosed(FTPConnectionEvent evt)
Fires the connection closed event to all registered listeners. |
protected void |
fireConnectionOpened(FTPConnectionEvent evt)
Fires the ConnectionOpened event to all registered listeners. |
int |
getBufferSize()
Returns the current buffer size being used by this FTPClient
. |
String |
getExplicitSSLProtocol()
Returns the SSL protocol that is in use for negotiating Explicit SSL connections. |
String |
getHelp()
Executes the HELP command on the remote host and returns the
response back. |
EventListenerList |
getListenerList()
Returns the list of registered listeners. |
ListParser |
getListParser()
Returns the current ListParser in use by this
FTPClient. |
InetAddress |
getLocalAddress()
Returns the InetAddress of the local host. |
String |
getLocalHost()
Returns the host name or IP address of the local host. |
String |
getLocalIPAddress()
Returns the IP address of the local host in xxx.xxx.xxx.xxx format. |
int |
getLocalPort()
Returns the local port number used by the control connection. |
int |
getMode()
Returns the current mode in use. |
Proxy |
getProxy()
Returns the current proxy configuration, if any. |
InetAddress |
getRemoteAddress()
Returns the Address of the remote host. |
String |
getRemoteHost()
Returns the fully qaulified domain name of the remote host. |
String |
getRemoteIPAddress()
Returns the IP address of the remote host in xxx.xxx.xxx.xxx format. |
int |
getRemotePort()
Returns the remote port number to which the ControlConnection is established. |
SSLContext |
getSSLContext()
Gets the SSLContext of this FTPclient. |
int |
getSSLUsage()
Returns the SSL usage of this FTPClient. |
int |
getStructure()
Returns the current structure in use. |
String |
getSystemInfo()
Returns the remote host's information by executing the SYST
command. |
int |
getTimeout()
Returns the timeout setting of this FTP client. |
int |
getType()
Returns the current data representation type in use. |
RemoteFile |
getWorkingDirectory()
Returns the current working directory. |
boolean |
isConnected()
Checks whether or not this FTPClient is still connected to
to the remote host. |
boolean |
isDataChannelUnencrypted()
Tells whether or not the data channel encryption is ON. |
boolean |
isLoggedIn()
Checks wherher or not this client is logged in. |
boolean |
isPassive()
Tells whether or not the data connectons are opned in passive mode. |
boolean |
isPassiveIPSubstitutionEnabled()
Tells whether or not the substitution of passive IP address is enabled. |
boolean |
isSecured()
Tells whether this connection is secured. |
RemoteFile[] |
list()
Retrieves the contents (children) of the current working directory. |
RemoteFile[] |
list(Filter filter)
Retrieves the children of the current working directory. |
RemoteFile[] |
list(RemoteFile dir)
Returns the direct children of the specified directory. |
RemoteFile[] |
list(RemoteFile dir,
Filter filter)
Returns the direct children of the specified directory. |
void |
login(String user,
String password)
Logs in to the remote host with the specified user id and password. |
void |
login(String user,
String password,
String account)
Logs in to the remote host with the specified user ID, pasword and account. |
void |
mountStructure(String path)
Sends a SMNT command with the specified path to mount. |
void |
noop()
Sends a No-Operation command to the remote system. |
void |
reinitialize()
Sends a reinitialize command to the remote host. |
void |
removeControlConnectionListener(ControlConnectionListener l)
Removes the given listener from the list of registered listenerrs. |
void |
removeDataConnectionListener(DataConnectionListener l)
Removes the given data connection listener from the registered list of listeners. |
void |
removeFTPConnectionListener(FTPConnectionListener l)
Unregisters the given listener from the list of listeners. |
void |
rename(RemoteFile from,
RemoteFile to)
Renames a file or directory, from to to. |
void |
restart(long bytes)
Sends a RESTART command to the remote host with the specified number of bytes. |
void |
setBufferSize(int bufferSize)
Sets the buffer size to use for transferring data over the data connection. |
void |
setDataChannelUnencrypted(boolean dataChannelUnencrypted)
Sets/unsets the flag to encrypt the data channel. |
void |
setExplicitSSLProtocol(String protocol)
Sets the SSL protocol to use when negotiating an Explicit SSL connection. |
void |
setListParser(ListParser listParser)
Sets the ListParser to the specified listParser
.ListParser objects are used to parsre the contents of a
remote directory in to RemoteFile objects. |
void |
setMode(int mode)
Sets the mode in which data is transferred to the given mode
. |
void |
setPassive(boolean passive)
If true, marks that the data is to be transgerrred over a
passive data connection. |
void |
setPassiveIPSubstitutionEnabled(boolean enable)
Sets or unsets the flag that determines whether or not to ignore the response (the IP address portion) of PASV command and substitute it with the original server IP address when making a PASSIVE data connection. |
void |
setProxy(Proxy proxy)
Sets the proxy server to use when making the control/data connections. |
void |
setSiteParameter(String param)
Sends a SITE command with the specified parameter(s). |
void |
setSSLContext(SSLContext sslContext)
Sets the SSLContext of this FTPClient to the given context. |
void |
setSSLUsage(int sslUsage)
Sets the SSL usage of this client to the given value. |
void |
setStructure(int structure)
Sets the structure to the specified structure. |
void |
setTimeout(int timeout)
Sets the timeout for this FTPClient to the specified
timeout. |
RemoteFile |
setToParentDirectory()
Sets the remote working directory to the parent directory of the current working directory. |
void |
setType(int type)
Sets the data representation type to the given type. |
RemoteFile |
setWorkingDirectory(RemoteFile dir)
Sets the remote working directory to the specified directory dir. |
void |
upload(File source,
RemoteFile destination,
int type,
boolean append,
long skip)
copies the contents of local file source to the specified
remote file destination. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected int timeout
FTPClient.
protected int bufferSize
protected int type
protected int mode
protected int structure
protected boolean passive
protected boolean connected
protected boolean loggedIn
protected RemoteFile workingDirectory
protected String reply
protected ControlConnection controlConnection
protected DataConnection dataConnection
protected ListParser listParser
protected int sslUsage
protected SSLContext sslContext
protected boolean dataChannelUnencrypted
protected String explicitSSLProtocol
protected EventListenerList listenerList
protected boolean passiveIPSubstitutionEnabled
protected Proxy proxy
| Constructor Detail |
|---|
public DefaultFTPClient()
DefaultFTPClient object that is not connected
to any host.
| Method Detail |
|---|
public void setTimeout(int timeout)
FTPClientFTPClient to the specified
timeout. Timeout is the amount of time an FTPClient waits
for a server's reponse. If the server does not respond with in the
timeout period, Implementations should close the connection. The timeout
must be set before calling the connect methods. If an FTP
client is already connected to a remote host, the new time out may be
ignored by implementation classes.
setTimeout in interface FTPClienttimeout - Timeout in milli seconds.public int getTimeout()
FTPClient
getTimeout in interface FTPClientFTPClient.public void setBufferSize(int bufferSize)
FTPClient
setBufferSize in interface FTPClientbufferSize - Buffer size to use for transferring data over the data
connection.public int getBufferSize()
FTPClientFTPClient
.
getBufferSize in interface FTPClientpublic void setListParser(ListParser listParser)
FTPClientListParser to the specified listParser
.ListParser objects are used to parsre the contents of a
remote directory in to RemoteFile objects.
setListParser in interface FTPClientlistParser - The ListParser to use to parse the contents of a
remote directory.public ListParser getListParser()
FTPClientListParser in use by this
FTPClient.
getListParser in interface FTPClientListParser in use.public void setSSLUsage(int sslUsage)
FTPClient
setSSLUsage in interface FTPClientsslUsage - SSL usage parameter to set.public int getSSLUsage()
FTPClient
getSSLUsage in interface FTPClientpublic void setSSLContext(SSLContext sslContext)
FTPClient
setSSLContext in interface FTPClientsslContext - SSLContextpublic SSLContext getSSLContext()
FTPClient
getSSLContext in interface FTPClientpublic void setDataChannelUnencrypted(boolean dataChannelUnencrypted)
FTPClient
setDataChannelUnencrypted in interface FTPClientdataChannelUnencrypted - whether or not to encrypt the data channel.public boolean isDataChannelUnencrypted()
FTPClient
isDataChannelUnencrypted in interface FTPClienttrue, if the data channel encryption os ON,
false, otherwise.public boolean isSecured()
FTPClient
isSecured in interface FTPClienttrue, if this connection is secured.
false, othherwise.public void setExplicitSSLProtocol(String protocol)
FTPClientprotocol string will be sent (to the FTP
server) as a parameter to the AUTH command. Valid values are
"SSL" and "TLS", however, this method does not restrict clients from
using other values.
setExplicitSSLProtocol in interface FTPClientprotocol - the security protocol to use when negotiating an Explicit SSL
connection.public String getExplicitSSLProtocol()
FTPClient
getExplicitSSLProtocol in interface FTPClientsetExplicitSSLProtocol(string protocol) method is
not called, this method returns the default value "SSL".
public void connect(String host)
throws FTPException,
ConnectionException
FTPClienthost on the default
FTP port.
connect in interface FTPClienthost - Host name or IP address of the remote host.
FTPException
ConnectionException
public void connect(String host,
int port)
throws FTPException,
ConnectionException
FTPClienthost, on the specified
port number port.
connect in interface FTPClienthost - Host name or IP address of the remote host.port - Port number to connect to.
FTPException
ConnectionException
public void connect(FTPHost ftpHost)
throws FTPException,
ConnectionException
FTPClient
connect in interface FTPClientftpHost - Remote FTP host to connect to.
FTPException
ConnectionExceptionpublic boolean isConnected()
FTPClientFTPClient is still connected to
to the remote host.
isConnected in interface FTPClienttrue, if this FTPClient is still
connected to the remote host. Otherwise, false.
public void login(String user,
String password)
throws FTPException,
ConnectionException
FTPClient
login in interface FTPClientuser - User ID.password - Password.
FTPException
ConnectionException
public void login(String user,
String password,
String account)
throws FTPException,
ConnectionException
FTPClient
login in interface FTPClientuser - User ID.password - Password.account - Account Name.
FTPException
ConnectionExceptionpublic boolean isLoggedIn()
FTPClient
isLoggedIn in interface FTPClienttrue, if this client is logged in to the remote
host. false otherwise.
public RemoteFile setWorkingDirectory(RemoteFile dir)
throws FTPException,
ConnectionException
FTPClientdir. Clients must send a PWD command after
sending the CWD command to make sure that the working
directory has changed.
setWorkingDirectory in interface FTPClientdir - New remote working directory to set.
FTPException
ConnectionException
public RemoteFile setToParentDirectory()
throws FTPException,
ConnectionException
FTPClient
setToParentDirectory in interface FTPClientFTPException
ConnectionException
public RemoteFile getWorkingDirectory()
throws FTPException,
ConnectionException
FTPClient
getWorkingDirectory in interface FTPClientFTPException
ConnectionException
public void setType(int type)
throws FTPException,
ConnectionException
FTPClienttype.
setType in interface FTPClienttype - New data representation type to set. Possible types are -
FTPConstants.TYPE_ASCIIFTPConstants.TYPE_BINARYFTPConstants.TYPE_IMAGEFTPConstants.TYPE_EBCDICFTPConstants.TYPE_LOCALFTPException
ConnectionExceptionpublic int getType()
FTPClient
getType in interface FTPClient
public void setStructure(int structure)
throws FTPException,
ConnectionException
FTPClientstructure.
setStructure in interface FTPClientstructure - New structure to set. Possible structure type are -
FTPConstants.STRUCTURE_FILEFTPConstants.STRUCTURE_RECORDFTPConstants.STRUCTURE_PAGEFTPException
ConnectionExceptionpublic int getStructure()
FTPClient
getStructure in interface FTPClient
public void setMode(int mode)
throws FTPException,
ConnectionException
FTPClientmode
.
setMode in interface FTPClientmode - The new mode to set. Possible modes are -
FTPConstants.MODE_STREAMFTPConstants.MODE_BLOCKFTPConstants.MODE_COMPRESSEDFTPException
ConnectionExceptionpublic int getMode()
FTPClient
getMode in interface FTPClientpublic void setPassive(boolean passive)
FTPClienttrue, marks that the data is to be transgerrred over a
passive data connection.
setPassive in interface FTPClientpassive - Value true marks that the data is to be
transferred over a passive data connection. Otherwise, over an
active data connection.public boolean isPassive()
FTPClient
isPassive in interface FTPClienttrue if in passive mode. Otherwise,
false.
public void createDirectory(RemoteFile dir)
throws FTPException,
ConnectionException
FTPClientdir on the remote
host.
createDirectory in interface FTPClientdir - New directory to create.
FTPException
ConnectionException
public void deleteDirectory(RemoteFile dir)
throws FTPException,
ConnectionException
FTPClientdir on the remote system.
Most FTP servers would not allow the deletion of a directory unless it is
empty. It is the responsibility of the clients to delete the children of
the directory before attempting to delete a directory.
deleteDirectory in interface FTPClientdir - Directory to delete.
FTPException
ConnectionException
public void deleteFile(RemoteFile file)
throws FTPException,
ConnectionException
FTPClientfile from the remote system.
deleteFile in interface FTPClientfile - File to be deleted.
FTPException
ConnectionException
public void delete(RemoteFile path)
throws FTPException,
ConnectionException
FTPClientpath from the remote system. If the
path is a directory (as determined by
RemoteFile.isDirectory()) , then deleteDirectory()
method will be called with path as an argument. Otherwise,
deleteFile() method will be called with path as
an argument.
delete in interface FTPClientpath - The file to delete.
FTPException
ConnectionException
public void rename(RemoteFile from,
RemoteFile to)
throws FTPException,
ConnectionException
FTPClientfrom to to.
rename in interface FTPClientfrom - The file to be renamed.to - New file name.
FTPException
ConnectionException
public void noop()
throws FTPException,
ConnectionException
FTPClient
noop in interface FTPClientFTPException
ConnectionException
public void abort()
throws FTPException,
ConnectionException
FTPClientabort command to the remote host.
abort in interface FTPClientFTPException
ConnectionException
public void reinitialize()
throws FTPException,
ConnectionException
FTPClient
reinitialize in interface FTPClientFTPException
ConnectionException
public void disconnect()
throws FTPException,
ConnectionException
FTPClientFTPClient.
disconnect in interface FTPClientFTPException
ConnectionExceptionpublic void close()
FTPClientFTPClient. This method should usually be called after a
network error ocuurs in order to clean up the resources. Under normal
conditions, the clients are recommended to call disconnect
method.
close in interface FTPClient
public void allocate(long bytes)
throws FTPException,
ConnectionException
FTPClient
allocate in interface FTPClientbytes - Number of bytes to allocate for this FTPClient.
FTPException
ConnectionException
public void restart(long bytes)
throws FTPException,
ConnectionException
FTPClient
restart in interface FTPClientbytes - number of bytes to skip in the Input/Output stream.
FTPException
ConnectionException
public String getSystemInfo()
throws FTPException,
ConnectionException
FTPClientSYST
command.
getSystemInfo in interface FTPClientFTPException
ConnectionException
public String getHelp()
throws FTPException,
ConnectionException
FTPClientHELP command on the remote host and returns the
response back.
getHelp in interface FTPClientFTPException
ConnectionException
public void setSiteParameter(String param)
throws FTPException,
ConnectionException
FTPClientSITE command with the specified parameter(s).
setSiteParameter in interface FTPClientparam - Parameters or the SITE command.
FTPException
ConnectionException
public void mountStructure(String path)
throws FTPException,
ConnectionException
FTPClient
mountStructure in interface FTPClientpath - New path structure to mount.
FTPException
ConnectionException
public String executeCommand(String command)
throws FTPException,
ConnectionException
FTPClient
executeCommand in interface FTPClientcommand - Command to execute.
FTPException
ConnectionExceptionpublic InetAddress getRemoteAddress()
FTPClient
getRemoteAddress in interface FTPClientpublic String getRemoteHost()
FTPClient
getRemoteHost in interface FTPClientpublic String getRemoteIPAddress()
FTPClient
getRemoteIPAddress in interface FTPClientpublic int getRemotePort()
FTPClient
getRemotePort in interface FTPClientpublic InetAddress getLocalAddress()
FTPClient
getLocalAddress in interface FTPClientpublic String getLocalHost()
FTPClient
getLocalHost in interface FTPClientpublic String getLocalIPAddress()
FTPClient
getLocalIPAddress in interface FTPClientpublic int getLocalPort()
FTPClient
getLocalPort in interface FTPClient
public RemoteFile[] list()
throws FTPException,
ParseException,
ConnectionException
FTPClient
list in interface FTPClientFTPException
ParseException
ConnectionException
public RemoteFile[] list(Filter filter)
throws FTPException,
ParseException,
ConnectionException
FTPClient
list in interface FTPClientfilter - the filter to use.
FTPException
ParseException
ConnectionException
public RemoteFile[] list(RemoteFile dir)
throws FTPException,
ParseException,
ConnectionException
FTPClient
list in interface FTPClientdir - directory whose children are to be retrieved
dir.
FTPException
ParseException
ConnectionException
public RemoteFile[] list(RemoteFile dir,
Filter filter)
throws FTPException,
ParseException,
ConnectionException
FTPClient
list in interface FTPClientdir - directory whose children are to be retrieved.filter - Fiter to apply.
FTPException
ParseException
ConnectionException
public void createFile(RemoteFile file)
throws FTPException,
ConnectionException
FTPClient
createFile in interface FTPClientfile - Path and name of the file.
FTPException
ConnectionException
public void download(RemoteFile source,
File destination,
int type,
boolean append)
throws FTPException,
ConnectionException
FTPClientsource to the local file
destination.
download in interface FTPClientsource - Remote file to be copied or downloaded.destination - Local file to which the contents are to be copied.type - Data representation type to use for data transfer.append - Whether or not to open the destination file in
append mode.
FTPException
ConnectionException
public void upload(File source,
RemoteFile destination,
int type,
boolean append,
long skip)
throws FTPException,
ConnectionException
FTPClientsource to the specified
remote file destination.
upload in interface FTPClientsource - Local file to be copied.destination - Destination file on the remote system.type - Data representation type to use for data transfer.append - Whether or not the destination file is to be appended with the
contents of source file.skip - Number of bytes to skip.
FTPException
ConnectionExceptionpublic void addControlConnectionListener(ControlConnectionListener l)
FTPClientControlConnection associated with this FTPClient
.
addControlConnectionListener in interface FTPClientl - Listener to register.public void removeControlConnectionListener(ControlConnectionListener l)
FTPClient
removeControlConnectionListener in interface FTPClientl - Listner to remove from the registered listener list.public void addDataConnectionListener(DataConnectionListener l)
FTPClientFTPClient.
addDataConnectionListener in interface FTPClientl - Listener to register.public void removeDataConnectionListener(DataConnectionListener l)
FTPClient
removeDataConnectionListener in interface FTPClientl - Listener to unregister.public EventListenerList getListenerList()
FTPClient
getListenerList in interface FTPClientpublic void addFTPConnectionListener(FTPConnectionListener l)
FTPClient
addFTPConnectionListener in interface FTPClientl - Listener to register.public void removeFTPConnectionListener(FTPConnectionListener l)
FTPClient
removeFTPConnectionListener in interface FTPClientl - Listener to unregister.public void setPassiveIPSubstitutionEnabled(boolean enable)
FTPClient
setPassiveIPSubstitutionEnabled in interface FTPClientenable - true to enable the IP address substitution;
false to disable it.public boolean isPassiveIPSubstitutionEnabled()
FTPClient
isPassiveIPSubstitutionEnabled in interface FTPClienttrue, if the addressed retunred by the server in
response to a PASV command will be ignored and substituted with
the original server's IP address; false, otherewise.public void setProxy(Proxy proxy)
FTPClient
setProxy in interface FTPClientproxy - the proxy server to use when making the control/data
connections. Supported proxy types are - SOCKS and DIRECT.public Proxy getProxy()
FTPClient
getProxy in interface FTPClientnull, if there is no proxy set.protected void fireConnectionOpened(FTPConnectionEvent evt)
evt - connection opened event.protected void fireConnectionClosed(FTPConnectionEvent evt)
evt - connection closed event.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||