View Javadoc

1   /*
2    * Copyright (c) 2003 Peter Antman, Teknik i Media  <peter.antman@tim.se>
3    *
4    * $Id: NetFTPFile.java,v 1.1.1.1 2004/05/19 12:26:42 pra Exp $
5    *
6    * This library is free software; you can redistribute it and/or
7    * modify it under the terms of the GNU Lesser General Public
8    * License as published by the Free Software Foundation; either
9    * version 2 of the License, or (at your option) any later version
10   * 
11   * This library is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   * Lesser General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Lesser General Public
17   * License along with this library; if not, write to the Free Software
18   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19   */
20  package org.backsource.adaptor.ftp;
21  import java.io.File;
22  /***
23   * Wrapper for Net FTPFile.
24   *
25   * FIXME: permissions not working.
26   *
27   * @author <a href="mailto:pra@tim.se">Peter Antman</a>
28   * @version $Revision: 1.1.1.1 $
29   */
30  
31  public class NetFTPFile extends org.apache.commons.net.ftp.FTPFile implements FTPFile {
32     private String url;
33     
34     public NetFTPFile (org.apache.commons.net.ftp.FTPFile f,String url){
35        super();
36        setRawListing(f.getRawListing());
37        setType( f.getType());
38        setName( f.getName());
39        setSize( f.getSize());
40        setHardLinkCount( f.getHardLinkCount() );
41        setGroup( f.getGroup() );
42        setUser( f.getUser() );
43        setLink( f.getLink() );
44        setTimestamp( f.getTimestamp() );
45        this.url = url;
46     }
47     public String getName() {
48        // We do this because list of xx/yy will return xx/yy
49        return new File( super.getName()).getName();
50     }
51     
52     public String getPath() {
53        return createPath().getPath();
54     }
55     
56     public String getParent(){
57        return createPath().getParent();
58     }
59  
60     private File createPath() {
61        String name = getName();
62        if ( name== null || url == null) {
63           throw new IllegalStateException("name or url was null (name="+name+" url="+url);
64        } // end of if ()
65        
66        if ( url.equals( super.getName() ) ) {
67           return new File( super.getName() );
68        } // end of if ()
69        
70        // else url was probably a dir
71        return new File(url+java.io.File.separator+name);
72             
73        
74     }
75  
76  }// NetFTPFile