public static ProjectIdentifier parseProjectIdentifier()

in grails-forge-core/src/main/java/org/grails/forge/util/NameUtils.java [41:66]


    public static ProjectIdentifier parseProjectIdentifier(String name) throws IllegalArgumentException {
        if (!isValidAppName(name)) {
            throw new IllegalArgumentException("\"" + name + "\" is not a valid app name");
        }
        String packageName;
        String appName;
        String[] parts = name.split("\\.");
        if (parts.length == 1) {
            appName = parts[0];
            packageName = createPackageName(appName);
        } else {
            if (parts.length == 0) {
                throw new IllegalArgumentException("Cannot create a valid package name for [" + name + "]. Please specify a name that is also a valid Java package.");
            }
            int lastIdx = parts.length - 1;
            appName = parts[lastIdx];
            packageName = Arrays.stream(parts).limit(lastIdx).collect(Collectors.joining("."));
        }
        if (!isValidJavaPackage(packageName)) {
            throw new IllegalArgumentException("Cannot create a valid package name for [" + packageName + "]. Please specify a name that is also a valid Java package.");
        }
        if (!isValidAppName(appName)) {
            throw new IllegalArgumentException("\"" + appName + "\" is not a valid app name");
        }
        return new ProjectIdentifier(packageName, appName);
    }