class AnalyticsUtils {

    public static Object getIntegerOrValue( Object value, DimensionalItemObject item )
    {
        boolean doubleValue = item != null && value != null && ( value instanceof Double );

        if ( doubleValue )
        {
            if ( DimensionItemType.DATA_ELEMENT == item.getDimensionItemType() && ((DataElement) item).getValueType().isInteger() )
            {
                value = ((Double) value).intValue();
            }
            else if ( DimensionItemType.DATA_ELEMENT_OPERAND == item.getDimensionItemType() && ((DataElementOperand) item).getDataElement().getValueType().isInteger() )
            {
                value = ((Double) value).intValue();
            }
            else if ( DimensionItemType.INDICATOR == item.getDimensionItemType() && ((Indicator) item).hasZeroDecimals() )
            {
                value = ((Double) value).intValue();
            }
            else if ( DimensionItemType.PROGRAM_INDICATOR == item.getDimensionItemType() && ((ProgramIndicator) item).hasZeroDecimals() )
            {
                value = ((Double) value).intValue();
            }
        }

        return value;
    }

}