package com.github.marschall.memoryfilesystem; import java.nio.file.attribute.BasicFileAttributeView; class MemorySymbolicLink extends MemoryEntry { private AbstractPath target; MemorySymbolicLink(String originalName, AbstractPath target) { this(originalName, target, EntryCreationContext.empty()); } MemorySymbolicLink(String originalName, AbstractPath target, EntryCreationContext context) { super(originalName, context); this.target = target; } @Override MemoryEntryAttributes newMemoryEntryAttributes(EntryCreationContext context) { return new MemorySymbolicLAttributes(context); } AbstractPath getTarget() { return this.target; } void setTarget(AbstractPath target) { this.target = target; } @Override public String toString() { return "symlink(" + this.getOriginalName() + ") -> " + this.target; } static final class MemorySymbolicLAttributes extends MemoryEntryAttributes { MemorySymbolicLAttributes(EntryCreationContext context) { super(context); } @Override BasicFileAttributeView newBasicFileAttributeView() { return new MemorySymbolicLinkAttributesView(); } @Override long size() { return -1; } } }