public static QualifiedName of(char[][] compoundTypeName) { switch (compoundTypeName.length) { case 0: return new QualifiedName(PackageName.nullValue(), new String(compoundTypeName[0])); default: int packageLength = compoundTypeName.length - 1; char[][] packageName = new char[compoundTypeName.length - 1][]; System.arraycopy(compoundTypeName, 0, packageName, 0, packageLength); return PackageName.of(packageName).toQualifiedName(compoundTypeName[packageLength]); } }