class SwiftTouchFeature implements Touch<StorageObject> {

    @Override
    public Path touch(final Path file, final TransferStatus status) throws BackgroundException {
        status.setLength(0L);
        final StatusOutputStream<StorageObject> out = writer.write(file, status, new DisabledConnectionCallback());
        new DefaultStreamCloser().close(out);
        final StorageObject metadata = out.getStatus();
        return new Path(file.getParent(), file.getName(), file.getType(),
            new SwiftAttributesFinderFeature(session, regionService).toAttributes(metadata));
    }

    public  SwiftTouchFeature(final SwiftSession session, final SwiftRegionService regionService);

}