alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/*
 * Copyright 2001-2004 The Apache Software Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.commons.net.ftp;
import java.io.Serializable;
import java.util.Calendar;

/***
 * The FTPFile class is used to represent information about files stored
 * on an FTP server.  Because there is no standard representation for
 * file information on FTP servers, it may not always be possible to
 * extract all the information that can be represented by FTPFile, or
 * it may even be possible to extract more information.  In cases where
 * more information can be extracted, you will want to subclass FTPFile
 * and implement your own 
 * FTPFileListParser  to extract the information.
 * However, most FTP servers return file information in a format that
 * can be completely parsed by
 * 
 * DefaultFTPFileListParser  and stored in FTPFile.
 * 

*

* @author Daniel F. Savarese * @see FTPFileListParser * @see DefaultFTPFileListParser * @see FTPClient#listFiles ***/ public class FTPFile implements Serializable { /** A constant indicating an FTPFile is a file. ***/ public static final int FILE_TYPE = 0; /** A constant indicating an FTPFile is a directory. ***/ public static final int DIRECTORY_TYPE = 1; /** A constant indicating an FTPFile is a symbolic link. ***/ public static final int SYMBOLIC_LINK_TYPE = 2; /** A constant indicating an FTPFile is of unknown type. ***/ public static final int UNKNOWN_TYPE = 3; /** A constant indicating user access permissions. ***/ public static final int USER_ACCESS = 0; /** A constant indicating group access permissions. ***/ public static final int GROUP_ACCESS = 1; /** A constant indicating world access permissions. ***/ public static final int WORLD_ACCESS = 2; /** A constant indicating file/directory read permission. ***/ public static final int READ_PERMISSION = 0; /** A constant indicating file/directory write permission. ***/ public static final int WRITE_PERMISSION = 1; /** * A constant indicating file execute permission or directory listing * permission. ***/ public static final int EXECUTE_PERMISSION = 2; int _type, _hardLinkCount; long _size; String _rawListing, _user, _group, _name, _link; Calendar _date; boolean[] _permissions[]; /*** Creates an empty FTPFile. ***/ public FTPFile() { _permissions = new boolean[3][3]; _rawListing = null; _type = UNKNOWN_TYPE; _hardLinkCount = 0; _size = 0; _user = null; _group = null; _date = null; _name = null; } /*** * Set the original FTP server raw listing from which the FTPFile was * created. *

* @param rawListing The raw FTP server listing. ***/ public void setRawListing(String rawListing) { _rawListing = rawListing; } /*** * Get the original FTP server raw listing used to initialize the FTPFile. *

* @return The original FTP server raw listing used to initialize the * FTPFile. ***/ public String getRawListing() { return _rawListing; } /*** * Determine if the file is a directory. *

* @return True if the file is of type DIRECTORY_TYPE, false if * not. ***/ public boolean isDirectory() { return (_type == DIRECTORY_TYPE); } /*** * Determine if the file is a regular file. *

* @return True if the file is of type FILE_TYPE, false if * not. ***/ public boolean isFile() { return (_type == FILE_TYPE); } /*** * Determine if the file is a symbolic link. *

* @return True if the file is of type UNKNOWN_TYPE, false if * not. ***/ public boolean isSymbolicLink() { return (_type == SYMBOLIC_LINK_TYPE); } /*** * Determine if the type of the file is unknown. *

* @return True if the file is of type UNKNOWN_TYPE, false if * not. ***/ public boolean isUnknown() { return (_type == UNKNOWN_TYPE); } /*** * Set the type of the file (DIRECTORY_TYPE, * FILE_TYPE, etc.). *

* @param type The integer code representing the type of the file. ***/ public void setType(int type) { _type = type; } /*** * Return the type of the file (one of the _TYPE constants), * e.g., if it is a directory, a regular file, or a symbolic link. *

* @return The type of the file. ***/ public int getType() { return _type; } /*** * Set the name of the file. *

* @param name The name of the file. ***/ public void setName(String name) { _name = name; } /*** * Return the name of the file. *

* @return The name of the file. ***/ public String getName() { return _name; } /** * Set the file size in bytes. * @param size The file size in bytes. */ public void setSize(long size) { _size = size; } /*** * Return the file size in bytes. *

* @return The file size in bytes. ***/ public long getSize() { return _size; } /*** * Set the number of hard links to this file. This is not to be * confused with symbolic links. *

* @param links The number of hard links to this file. ***/ public void setHardLinkCount(int links) { _hardLinkCount = links; } /*** * Return the number of hard links to this file. This is not to be * confused with symbolic links. *

* @return The number of hard links to this file. ***/ public int getHardLinkCount() { return _hardLinkCount; } /*** * Set the name of the group owning the file. This may be * a string representation of the group number. *

* @param group The name of the group owning the file. ***/ public void setGroup(String group) { _group = group; } /*** * Returns the name of the group owning the file. Sometimes this will be * a string representation of the group number. *

* @return The name of the group owning the file. ***/ public String getGroup() { return _group; } /*** * Set the name of the user owning the file. This may be * a string representation of the user number; *

* @param user The name of the user owning the file. ***/ public void setUser(String user) { _user = user; } /*** * Returns the name of the user owning the file. Sometimes this will be * a string representation of the user number. *

* @return The name of the user owning the file. ***/ public String getUser() { return _user; } /*** * If the FTPFile is a symbolic link, use this method to set the name of the * file being pointed to by the symbolic link. *

* @param link The file pointed to by the symbolic link. ***/ public void setLink(String link) { _link = link; } /*** * If the FTPFile is a symbolic link, this method returns the name of the * file being pointed to by the symbolic link. Otherwise it returns null. *

* @return The file pointed to by the symbolic link (null if the FTPFile * is not a symbolic link). ***/ public String getLink() { return _link; } /*** * Set the file timestamp. This usually the last modification time. * The parameter is not cloned, so do not alter its value after calling * this method. *

* @param date A Calendar instance representing the file timestamp. ***/ public void setTimestamp(Calendar date) { _date = date; } /*** * Returns the file timestamp. This usually the last modification time. *

* @return A Calendar instance representing the file timestamp. ***/ public Calendar getTimestamp() { return _date; } /*** * Set if the given access group (one of the _ACCESS * constants) has the given access permission (one of the * _PERMISSION constants) to the file. *

* @param access The access group (one of the _ACCESS * constants) * @param permission The access permission (one of the * _PERMISSION constants) * @param value True if permission is allowed, false if not. ***/ public void setPermission(int access, int permission, boolean value) { _permissions[access][permission] = value; } /*** * Determines if the given access group (one of the _ACCESS * constants) has the given access permission (one of the * _PERMISSION constants) to the file. *

* @param access The access group (one of the _ACCESS * constants) * @param permission The access permission (one of the * _PERMISSION constants) ***/ public boolean hasPermission(int access, int permission) { return _permissions[access][permission]; } /*** * Returns a string representation of the FTPFile information. This * will be the raw FTP server listing that was used to initialize the * FTPFile instance. *

* @return A string representation of the FTPFile information. ***/ public String toString() { return _rawListing; } }

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.