Changeset 6030

Show
Ignore:
Timestamp:
02/02/10 09:12:40 (7 months ago)
Author:
cblackburn
Message:

List methods now return partially populated OriginalFiles? for client testing.

Location:
trunk/components/blitz
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/components/blitz/resources/omero/Repositories.ice

    r5965 r6030  
    3939             */ 
    4040 
    41             // TODO should we return OriginalFiles here for acmTime, etc. 
    42             omero::api::StringSet list(string path) throws ServerError; 
    43             omero::api::StringSet listDirs(string path) throws ServerError; 
    44             omero::api::StringSet listFiles(string path) throws ServerError; 
     41            // These list methods provide all files, registered or not. 
     42            omero::api::OriginalFileList list(string path) throws ServerError; 
     43            omero::api::OriginalFileList listDirs(string path) throws ServerError; 
     44            omero::api::OriginalFileList listFiles(string path) throws ServerError; 
    4545 
    4646            // These list methods provide only registered files 
  • trunk/components/blitz/src/ome/services/blitz/repo/PublicRepositoryI.java

    r5966 r6030  
    2929import omero.grid._RepositoryDisp; 
    3030import omero.model.Format; 
     31import omero.model.FormatI; 
    3132import omero.model.OriginalFile; 
    3233import omero.model.OriginalFileI; 
     
    124125 
    125126    @SuppressWarnings("unchecked") 
    126     public List<String> list(String path, Current __current) throws ServerError { 
     127     
     128    public List<OriginalFile> list(String path, Current __current) throws ServerError { 
    127129        File file = checkPath(path); 
    128130        List<File> files = Arrays.asList(file.listFiles()); 
    129         return filesToPaths(files); 
    130     } 
    131  
    132     public List<String> listDirs(String path, Current __current) 
     131        return filesToOriginalFiles(files); 
     132    } 
     133 
     134    public List<OriginalFile> listDirs(String path, Current __current) 
    133135            throws ServerError { 
    134136        File file = checkPath(path); 
    135137        List<File> files = Arrays.asList(file.listFiles((FileFilter)FileFilterUtils.directoryFileFilter())); 
    136         return filesToPaths(files); 
    137     } 
    138  
    139     public List<String> listFiles(String path, Current __current) 
     138        return filesToOriginalFiles(files); 
     139    } 
     140 
     141    public List<OriginalFile> listFiles(String path, Current __current) 
    140142            throws ServerError { 
    141143        File file = checkPath(path); 
    142144        List<File> files = Arrays.asList(file.listFiles((FileFilter)FileFilterUtils.fileFileFilter())); 
    143         return filesToPaths(files); 
     145        return filesToOriginalFiles(files); 
    144146    } 
    145147 
     
    192194    public List<OriginalFile> listKnown(String path, Current __current) 
    193195            throws ServerError { 
    194         // TODO Auto-generated method stub 
    195         return null; 
     196        File file = checkPath(path); 
     197        List<File> files = Arrays.asList(file.listFiles()); 
     198        return knownOriginalFiles(files); 
    196199    } 
    197200 
    198201    public List<OriginalFile> listKnownDirs(String path, Current __current) 
    199202            throws ServerError { 
    200         // TODO Auto-generated method stub 
    201         return null; 
     203        File file = checkPath(path); 
     204        List<File> files = Arrays.asList(file.listFiles((FileFilter)FileFilterUtils.directoryFileFilter())); 
     205        return knownOriginalFiles(files); 
    202206    } 
    203207 
    204208    public List<OriginalFile> listKnownFiles(String path, Current __current) 
    205209            throws ServerError { 
    206         // TODO Auto-generated method stub 
    207         return null; 
     210        File file = checkPath(path); 
     211        List<File> files = Arrays.asList(file.listFiles((FileFilter)FileFilterUtils.fileFileFilter())); 
     212        return knownOriginalFiles(files); 
    208213    } 
    209214 
    210215    public Format format(String path, Current __current) throws ServerError { 
    211         // TODO Auto-generated method stub 
    212         return null; 
     216        return getFileFormat(path); 
    213217    } 
    214218 
     
    244248    } 
    245249     
     250    // Just return a dummy format for testing purposes. 
     251    private Format getFileFormat(String path) { 
     252        Format dummy = new FormatI(); 
     253        dummy.setValue(rstring("DUMMY-FORMAT")); 
     254        return dummy; 
     255    } 
    246256 
    247257    private List<String> filesToPaths(Collection<File> files) { 
     
    252262        return rv; 
    253263    } 
     264     
     265    private List<OriginalFile> filesToOriginalFiles(Collection<File> files) { 
     266        List rv = new ArrayList<OriginalFile>(); 
     267        for (File f : files) { 
     268            rv.add(createOriginalFile(f)); 
     269        } 
     270        return rv; 
     271    } 
     272     
     273    private List<OriginalFile> knownOriginalFiles(Collection<File> files) { 
     274        List rv = new ArrayList<OriginalFile>(); 
     275/*        for (File f : files) { 
     276            OriginalFile file = getOriginalFileOrNull(f.getAbsolutePath()); 
     277            if (file != null) { 
     278                rv.add(file); 
     279            } 
     280        } */ 
     281        return rv; 
     282    } 
     283     
     284 
     285    private OriginalFile createOriginalFile(File f) { 
     286        // How do I confirm if an OriginalFle is already registered? 
     287        // Is that necessary here? 
     288        OriginalFile file = new OriginalFileI(); 
     289        file.setPath(rstring(f.getAbsolutePath())); 
     290        file.setSize(rlong(f.length())); 
     291        file.setSha1(rstring("UNKNOWN")); 
     292        // What more do I need to set here, times, details? 
     293         
     294        // This needs to be unique - see # 
     295        file.setName(rstring(f.getAbsolutePath())); 
     296         
     297        // How should I get the format of a file? 
     298        file.setFormat(getFileFormat(f.getAbsolutePath())); 
     299         
     300        return file; 
     301    } 
     302     
     303    // THIS FAILS AT PRESENT. NEED TO SORT OUT THE RETURN TYPE FROM THE QUERY  
     304    //     ome.model.core.OriginalFile vs omero.model.OriginalFile 
     305    // Very weak at present, returns one file. 
     306    // No checking further for uniqueness 
     307    private OriginalFile getOriginalFileOrNull(String path) { 
     308        try { 
     309            final String queryString = "from OriginalFile as o where o.path = '" 
     310                    + path + "'"; 
     311            OriginalFile file = (OriginalFile) executor.execute( 
     312                    principal, new Executor.SimpleWork(this, 
     313                            "getOriginalFileOrNull") { 
     314 
     315                        @Transactional(readOnly = true) 
     316                        public Object doWork(Session session, ServiceFactory sf) { 
     317                            return sf.getQueryService().findByQuery( 
     318                                    queryString, null); 
     319                        } 
     320                    }); 
     321            return file; 
     322        } catch (RuntimeException re) { 
     323            return null; 
     324        } 
     325    } 
     326 
     327 
     328 
    254329} 

1.2.1-PRO © 2008-2009 agile42 all rights reserved (this page was served in: 0.100107 sec.)