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;
    }
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" ) ; } } } newEvent . putAll ( info ) ; return newEvent ; }
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}