func ParseQualifiedName()

in utils/qualifiedname.go [46:82]


func ParseQualifiedName(name string, defaultNamespace string) (QualifiedName, error) {
	var qualifiedName QualifiedName

	// If name has a preceding delimiter (/), it contains a namespace. Otherwise the name does not specify a namespace,
	// so default the namespace to the namespace value set in the properties file; if that is not set, use "_"
	if strings.HasPrefix(name, "/") {
		parts := strings.Split(name, "/")
		qualifiedName.Namespace = parts[1]

		if len(parts) < 2 || len(parts) > 4 {
			err := errors.New("A valid qualified name was not detected")
			return qualifiedName, err
		}

		for i := 1; i < len(parts); i++ {
			if len(parts[i]) == 0 || parts[i] == "." {
				err := errors.New("A valid qualified name was not detected")
				return qualifiedName, err
			}
		}

		qualifiedName.EntityName = strings.Join(parts[2:], "/")
	} else {
		if len(name) == 0 || name == "." {
			err := errors.New("A valid qualified name was not detected")
			return qualifiedName, err
		}

		qualifiedName.EntityName = name
		if defaultNamespace == "" {
			defaultNamespace = "_"
		}
		qualifiedName.Namespace = defaultNamespace
	}

	return qualifiedName, nil
}