code: public static HashMap<String, String> createEvent(HashMap data, String typeStr, String dap, HashMap<String, String> info, boolean isStrictID) {
          HashMap newEvent = new HashMap<String, String>();
  
          EventType type;
          try {
              type = EventType.valueOf(typeStr.toUpperCase());
              typeStr = type.toString().toLowerCase();
          } catch (IllegalArgumentException e) {
              LOG.error("{} event is not recognized, please try other event name", typeStr);
              return new HashMap<String, String>();
          } catch (Exception e) {
              LOG.error(getStackTrace(e));
              return new HashMap<String, String>();
          }
          newEvent.put("event", typeStr);
  
          String pdate = getFstPdate(data, "");
          if (!pdate.equals("")) {
              String date = dateOffset(pdate, dap);
              if (date != null) {
                  newEvent.put("date", date);
              } else {
                  LOG.error("Given days after planting has a invalid value {}", dap);
                  return new HashMap<String, String>();
              }
          } else {
              LOG.error("Planting date is not available in the given data set");
              return new HashMap<String, String>();
          }
  
          if (isStrictID) {
              String[] ids = info.keySet().toArray(new String[0]);
              for (String id : ids) {
                  String path = AcePathfinder.INSTANCE.getPath(id);
                  if (path == null || !path.contains(typeStr)) {
                      LOG.warn("{} is not belong to {} event, please check if it is a typo");
  //                    info.remove(id);
                  }
              }
          }
          newEvent.putAll(info);
          return newEvent;
      }
docs: Generate {@code event} data with given information
  
  @param data experiment data holder
  @param typeStr The event type
  @param dap The days after planting to operate the event
  @param info The given event information
  @param isStrictID The flag for if check the id is only belong the given event type
  @return The generated {@code event}