Пример #1
0
  /** {@inheritDoc} */
  @Override
  @MethodLog
  public long registerMethodIdent(
      long platformId,
      String packageName,
      String className,
      String methodName,
      List<String> parameterTypes,
      String returnType,
      int modifiers) {
    MethodIdent methodIdent = new MethodIdent();
    methodIdent.setPackageName(packageName);
    methodIdent.setClassName(className);
    methodIdent.setMethodName(methodName);
    if (null == parameterTypes) {
      parameterTypes = Collections.emptyList();
    }
    methodIdent.setParameters(parameterTypes);
    methodIdent.setReturnType(returnType);
    methodIdent.setModifiers(modifiers);

    List<MethodIdent> methodIdents =
        methodIdentDao.findForPlatformIdAndExample(platformId, methodIdent);
    if (1 == methodIdents.size()) {
      methodIdent = methodIdents.get(0);
    } else {
      PlatformIdent platformIdent = platformIdentDao.load(platformId);
      methodIdent.setPlatformIdent(platformIdent);
    }

    // always update the time stamp, no matter if this is an old or new
    // record.
    methodIdent.setTimeStamp(new Timestamp(GregorianCalendar.getInstance().getTimeInMillis()));

    methodIdentDao.saveOrUpdate(methodIdent);

    return methodIdent.getId();
  }