int matchingSegments = getRuntime().getDesignRoot().getFullPath().matchingFirstSegments(getLocal().getFullPath());
return getLocal().getFullPath().removeFirstSegments(matchingSegments).makeRelative().toString();
} else {
if (_localState != null && _localState.isDirLink()) {
String linkName = _localState.getDirLinkName();
IContainer linkTarget = _localState.getDirLinkTarget();
int matchingSegments = linkTarget.getFullPath().matchingFirstSegments(getLocal().getFullPath());
return new Path(linkName).append(getLocal().getFullPath().removeFirstSegments(matchingSegments)).makeRelative().toString();
} else if (getRemote() != null) {
FSDesignResourceState remoteState = ((WGAFSDesignResourceVariant)getRemote()).getState();
if (remoteState != null) {
return remoteState.getPath();