logger.warn("Hey we have an allocation Result");
    protected void logAllocationResult(Task aTask, boolean expandTimestamp) {	if(aTask == null) {return;}	PlanElement pe = aTask.getPlanElement();	if(pe == null) { return; }	String resultType=AR_REPORTED_STR;	AllocationResult ar = pe.getReportedResult();	if(ar == null) {	    resultType = AR_ESTIMATED_STR;	    ar = pe.getEstimatedResult();	}	if(ar != null) {	    logger.warn("Hey we have an allocation Result");	    String taskStr = buildTaskPrefixString(aTask);	    taskStr = taskStr + resultType + ",";	    if(ar.isSuccess()) {		taskStr = taskStr + AR_SUCCESS_STR + ",";	    }	    else {		taskStr = taskStr + AR_FAILURE_STR + ",";	    }	    if(!ar.isPhased()) {		String outputStr = taskStr + getDateString(TaskUtils.getStartTime(ar),expandTimestamp) + ",";		outputStr = outputStr + getDateString(TaskUtils.getEndTime(ar),expandTimestamp) + ",";		outputStr = outputStr + TaskUtils.getQuantity(ar);		writeln(outputStr);	    }	    else {		int[] ats = ar.getAspectTypes();		int qtyInd = getIndexForType(ats,AspectType.QUANTITY);		int startInd = getIndexForType(ats,AspectType.START_TIME);		int endInd = getIndexForType(ats,AspectType.END_TIME);		Enumeration phasedResults = ar.getPhasedResults();		while(phasedResults.hasMoreElements()) {		    double[] results = (double[])phasedResults.nextElement();		    String outputStr = taskStr;		    if(startInd == -1) {			outputStr += ",,";		    } 		    else {			outputStr += getDateString(results[startInd],expandTimestamp) + ",";		    }		    outputStr += getDateString(results[endInd],expandTimestamp) + ",";		    if((qtyInd >= results.length) ||		       (qtyInd < 0)){			logger.error("qtyInd is " + qtyInd + " - No Qty in this phase of allocation results: " + outputStr);		    }		    else {			outputStr += results[qtyInd];			writeln(outputStr);		    }		}	    }	}    }    