@Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    }

    if (!(obj instanceof Module)) {
      return false;
    }

    Module module = (Module) obj;

    long primaryKey = module.getPrimaryKey();

    if (getPrimaryKey() == primaryKey) {
      return true;
    } else {
      return false;
    }
  }
  @Override
  public int compareTo(Module module) {
    long primaryKey = module.getPrimaryKey();

    if (getPrimaryKey() < primaryKey) {
      return -1;
    } else if (getPrimaryKey() > primaryKey) {
      return 1;
    } else {
      return 0;
    }
  }
  @Override
  public Module addModule(
      long userId, long appId, String bundleSymbolicName, String bundleVersion, String contextName)
      throws PortalException {

    Module module = fetchModule(appId, bundleSymbolicName, bundleVersion, contextName);

    if (module != null) {
      return module;
    }

    validate(bundleSymbolicName, contextName);

    long moduleId = counterLocalService.increment();

    module = modulePersistence.create(moduleId);

    module.setModuleId(moduleId);
    module.setAppId(appId);
    module.setBundleSymbolicName(bundleSymbolicName);
    module.setBundleVersion(bundleVersion);
    module.setContextName(contextName);

    modulePersistence.update(module);

    return module;
  }
 @Override
 public Long get(Module module) {
   return module.getModuleId();
 }