if((aStartTime == 0) && ((subStrings[VERB_INDEX].equals(Constants.Verb.WITHDRAW)) || (subStrings[VERB_INDEX].equals(Constants.Verb.SUPPLY)))) { logger.warn("A 0 start time in the withdraw task UID:" + subStrings[UID_INDEX].trim() + ".  Setting the start time to " + "a moment before end time.   This is harmless, " + "but why is there 0 start time in the society?"); aStartTime = anEndTime-1; }
    public static InventoryAR createFromCSV(String csvString) {	String[] subStrings = csvString.split(SPLIT_REGEX);		double aQty = (new Double(subStrings[AR_QTY_INDEX])).doubleValue();	long aStartTime = -1;	long anEndTime = -1;	String startTimeStr = subStrings[AR_START_TIME_INDEX].trim();	if(!(startTimeStr.equals(""))) {	    aStartTime = (new Long(startTimeStr)).longValue();	}	String endTimeStr = subStrings[AR_END_TIME_INDEX].trim();	if(!(endTimeStr.equals(""))) {	    anEndTime= (new Long(endTimeStr)).longValue();	    if(aStartTime == -1) {		aStartTime = anEndTime-1;	    }	}	else if(aStartTime == -1) {	    throw new RuntimeException("Both Start time and end time have no value cannot process!!");	}	else {	    anEndTime = aStartTime + 1;	}	int aResultType = AR_ESTIMATED;	if(subStrings[AR_TYPE_INDEX].trim().equals(AR_REPORTED_STR)) {	    aResultType = AR_REPORTED;	}	boolean isSuccess = (subStrings[AR_SUCCESS_INDEX].trim().equals(AR_SUCCESS_STR));		InventoryAR newAR = new InventoryAR(subStrings[PARENT_UID_INDEX].trim(),					    subStrings[UID_INDEX].trim(),					    subStrings[VERB_INDEX].trim(),					    subStrings[FOR_INDEX].trim(),					    aResultType,isSuccess,					    aQty,aStartTime,anEndTime);	return newAR;    }