public void addPackage(String jarName, String name) {
    if (null == jarPackageMap.get(jarName)) {
      jarPackageMap.put(jarName, new LinkedHashSet<Model>());
    }
    if (name.contains(Model.PACKAGE_SEP)) {
      String[] pathItems = name.split(Model.PACKAGE_SEP);
      if (pathItems.length > 1) {
        Model[] packPath = createPackPath(pathItems);
        Model rootModel = getPackageRoot(jarName, pathItems[0]);
        if (null != rootModel && null != packPath) {
          try {
            addLastModel(
                rootModel,
                packPath[packPath.length - 1],
                Arrays.copyOfRange(packPath, 0, packPath.length - 1));
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      }

    } else {
      Model rootModel = new Model(name);
      rootModel.setPackage(true);
      jarPackageMap.get(jarName).add(rootModel);
    }
  }