| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| part of file.src.backends.chroot; |
| |
| class _ChrootLink extends _ChrootFileSystemEntity<Link, io.Link> |
| with ForwardingLink { |
| _ChrootLink(ChrootFileSystem fs, String path) : super(fs, path); |
| |
| factory _ChrootLink.wrapped( |
| ChrootFileSystem fs, |
| io.Link delegate, { |
| bool relative: false, |
| }) { |
| String localPath = fs._local(delegate.path, relative: relative); |
| return new _ChrootLink(fs, localPath); |
| } |
| |
| @override |
| Future<bool> exists() => delegate.exists(); |
| |
| @override |
| bool existsSync() => delegate.existsSync(); |
| |
| @override |
| Future<Link> rename(String newPath) async { |
| return wrap(await delegate.rename(fileSystem._real(newPath))); |
| } |
| |
| @override |
| Link renameSync(String newPath) { |
| return wrap(delegate.renameSync(fileSystem._real(newPath))); |
| } |
| |
| @override |
| FileSystemEntityType get expectedType => FileSystemEntityType.LINK; |
| |
| @override |
| io.Link _rawDelegate(String path) => fileSystem.delegate.link(path); |
| |
| @override |
| Link get absolute => new _ChrootLink(fileSystem, _absolutePath); |
| } |