package org.smoothbuild.builtin.file; import static org.smoothbuild.io.fs.base.Path.path; import org.smoothbuild.io.fs.base.IllegalPathException; import org.smoothbuild.io.fs.base.Path; import org.smoothbuild.lang.message.ErrorMessage; import org.smoothbuild.lang.value.SString; public class PathArgValidator { private static final String PROJECT_ROOT = "//"; public static Path validatedProjectPath(String name, SString stringValue) { String value = stringValue.value(); if (!value.startsWith(PROJECT_ROOT)) { throw new ErrorMessage("Param '" + name + "' has illegal value. It should start with \"" + PROJECT_ROOT + "\" which represents project's root dir."); } return validatedPath(name, stringValue.value().substring(PROJECT_ROOT.length())); } private static Path validatedPath(String name, String value) { try { return path(value); } catch (IllegalPathException e) { throw new ErrorMessage("Param '" + name + "' has illegal value. " + e.getMessage()); } } }