/*
Реализация среды исполнения языка программирования
Объектно-ориентированный продвинутый векторный транслятор
Copyright © 2021, 2024, 2026 Малик Разработчик
Это свободная программа: вы можете перераспространять ее и/или изменять
ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<https://www.gnu.org/licenses/>.
*/
package platform.independent.osservices;
import avt.io.*;
import platform.dependent.*;
import platform.independent.filesystem.*;
public abstract class FileSystemRoot(Object)
{
public static boolean isObjectPathCaseSensitive() { return PlatformServices.getInstance().isObjectPathCaseSensitive(); }
public static boolean isInternalPathFull(String internalPath) { return internalPath != null && PlatformServices.getInstance().isInternalPathFull(internalPath); }
public static FileSystemRoot[] enumerate() throws IOException { return PlatformServices.getInstance().enumerateRoots(); }
public static FileSystemRoot get(String objectPath) throws FileSystemNotFoundException, IOException {
if(objectPath == null)
{
throw new NullPointerException(String.format(avt.lang.package.getResourceString("null-pointer.argument"), new Object[] { "objectPath" }));
}
return PlatformServices.getInstance().getRoot(objectPath);
}
public static String getUserConfigDir() throws IOException { return PlatformServices.getInstance().getUserConfigDir(); }
public static String getUserCacheDir() throws IOException { return PlatformServices.getInstance().getUserCacheDir(); }
public static String getUserLocalDir() throws IOException { return PlatformServices.getInstance().getUserLocalDir(); }
public static String toInternalPath(String objectPath) {
if(objectPath == null)
{
throw new NullPointerException(String.format(avt.lang.package.getResourceString("null-pointer.argument"), new Object[] { "objectPath" }));
}
return PlatformServices.getInstance().toInternalPath(objectPath);
}
public static String toObjectPath(String internalPath) {
if(internalPath == null)
{
throw new NullPointerException(String.format(avt.lang.package.getResourceString("null-pointer.argument"), new Object[] { "internalPath" }));
}
return PlatformServices.getInstance().toObjectPath(internalPath);
}
private final String fldPath;
protected (String path) { fldPath = path; }
public abstract FileSystem fileSystem { read }
public abstract String name { read }
public final String path { read = fldPath }
}