package org.smoothbuild.lang.function.base;
import java.util.Objects;
import java.util.regex.Pattern;
public class Name {
private static final Pattern PATTERN = Pattern.compile("[a-zA-Z_][a-zA-Z_\\-0-9\\.]*");
private final String value;
public static Name name(String value) {
if (!isLegalName(value)) {
throw new IllegalArgumentException("Illegal function name: '" + value + "'");
}
return new Name(value);
}
public static boolean isLegalName(String simple) {
return PATTERN.matcher(simple).matches();
}
private Name(String value) {
this.value = value;
}
public String value() {
return value;
}
public boolean equals(Object object) {
return object instanceof Name && equals((Name) object);
}
private boolean equals(Name name) {
return Objects.equals(value, name.value);
}
public int hashCode() {
return value.hashCode();
}
public String toString() {
return "'" + value + "'";
}
}