String[] packageNames = fullRequirementName.split(DOT_REGEX);
String currentPath = "";
for (int level = 0; level < packageNames.length; level++) {
currentPath = (currentPath.isEmpty()) ? packageNames[level] : Joiner.on(".").join(currentPath, packageNames[level]);
String defaultRequirementType = getDefaultType(level);
Requirement currentRequirement;
if (!requirementsByPath.containsKey(currentPath)) {
if (level < packageNames.length - 1) {
currentRequirement = newParentRequirement(currentPath, packageNames[level], level, defaultRequirementType);
requirementsByPath.put(currentPath, currentRequirement);
} else {