Search in sources :

Example 1 with MantaObjectException

use of com.joyent.manta.exception.MantaObjectException in project cyberduck by iterate-ch.

the class MantaListService method list.

@Override
public AttributedList<Path> list(final Path directory, final ListProgressListener listener) throws BackgroundException {
    if (directory.isRoot()) {
        return new AttributedList<Path>(Collections.singletonList(new MantaAccountHomeInfo(session.getHost().getCredentials().getUsername(), session.getHost().getDefaultPath()).getNormalizedHomePath()));
    }
    final AttributedList<Path> children = new AttributedList<>();
    final Iterator<MantaObject> objectsIter;
    try {
        objectsIter = session.getClient().listObjects(directory.getAbsolute()).iterator();
    } catch (MantaObjectException e) {
        throw new MantaExceptionMappingService().map("Listing directory {0} failed", e, directory);
    } catch (MantaClientHttpResponseException e) {
        throw new MantaHttpExceptionMappingService().map("Listing directory {0} failed", e, directory);
    } catch (IOException e) {
        throw new DefaultIOExceptionMappingService().map("Listing directory {0} failed", e);
    }
    final MantaObjectAttributeAdapter adapter = new MantaObjectAttributeAdapter(session);
    while (objectsIter.hasNext()) {
        MantaObject o = objectsIter.next();
        final Path file = new Path(directory, PathNormalizer.name(o.getPath()), EnumSet.of(o.isDirectory() ? Path.Type.directory : Path.Type.file), adapter.toAttributes(o));
        children.add(file);
        listener.chunk(directory, children);
    }
    return children;
}
Also used : Path(ch.cyberduck.core.Path) MantaObject(com.joyent.manta.client.MantaObject) IOException(java.io.IOException) MantaClientHttpResponseException(com.joyent.manta.exception.MantaClientHttpResponseException) AttributedList(ch.cyberduck.core.AttributedList) DefaultIOExceptionMappingService(ch.cyberduck.core.DefaultIOExceptionMappingService) MantaObjectException(com.joyent.manta.exception.MantaObjectException)

Aggregations

AttributedList (ch.cyberduck.core.AttributedList)1 DefaultIOExceptionMappingService (ch.cyberduck.core.DefaultIOExceptionMappingService)1 Path (ch.cyberduck.core.Path)1 MantaObject (com.joyent.manta.client.MantaObject)1 MantaClientHttpResponseException (com.joyent.manta.exception.MantaClientHttpResponseException)1 MantaObjectException (com.joyent.manta.exception.MantaObjectException)1 IOException (java.io.IOException)1