Skip to content

Commit

Permalink
fix 45771 Exception is thrown out when using parameter value as The
Browse files Browse the repository at this point in the history
first N.
  • Loading branch information
pshi authored and mwu committed Dec 7, 2011
1 parent 04f0f2f commit a8a192c
Showing 1 changed file with 31 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -629,9 +629,11 @@ else if ( IBuildInBaseTimeFunction.NEXT_N_PERIODS.equals( calculateType ) )
*
* @param periodHandle
* @return
* @throws BirtException
* @throws DataException
*/
private ITimePeriod populateRelativeTimePeriod(
ComputedColumnHandle periodHandle )
ComputedColumnHandle periodHandle ) throws DataException, BirtException
{
String calculateType = periodHandle.getCalculationType( );
TimePeriod relativeTimePeriod = null;
Expand All @@ -651,11 +653,7 @@ private ITimePeriod populateRelativeTimePeriod(
break;
}
}
if ( n == null || n.trim( ).equals( "" ) )
{
n = "1";
}
relativeTimePeriod = new TimePeriod( 0 - Integer.valueOf( n ),
relativeTimePeriod = new TimePeriod( 0 - evaluatePeriodsN( n ),
TimePeriodType.YEAR );
}
else if ( IBuildInBaseTimeFunction.PREVIOUS_WEEK_TO_DATE.equals( calculateType ) )
Expand All @@ -671,11 +669,7 @@ else if ( IBuildInBaseTimeFunction.PREVIOUS_WEEK_TO_DATE.equals( calculateType )
break;
}
}
if ( n == null || n.trim( ).equals( "" ) )
{
n = "1";
}
relativeTimePeriod = new TimePeriod( 0 - Integer.valueOf( n ),
relativeTimePeriod = new TimePeriod( 0 - evaluatePeriodsN( n ),
TimePeriodType.WEEK );
}
else if ( IBuildInBaseTimeFunction.PREVIOUS_MONTH_TO_DATE.equals( calculateType )
Expand All @@ -692,11 +686,7 @@ else if ( IBuildInBaseTimeFunction.PREVIOUS_MONTH_TO_DATE.equals( calculateType
break;
}
}
if ( n == null || n.trim( ).equals( "" ) )
{
n = "1";
}
relativeTimePeriod = new TimePeriod( 0 - Integer.valueOf( n ),
relativeTimePeriod = new TimePeriod( 0 - evaluatePeriodsN( n ),
TimePeriodType.MONTH );
}
else if ( IBuildInBaseTimeFunction.PREVIOUS_QUARTER_TO_DATE.equals( calculateType )
Expand All @@ -713,11 +703,7 @@ else if ( IBuildInBaseTimeFunction.PREVIOUS_QUARTER_TO_DATE.equals( calculateTyp
break;
}
}
if ( n == null || n.trim( ).equals( "" ) )
{
n = "1";
}
relativeTimePeriod = new TimePeriod( 0 - Integer.valueOf( n ),
relativeTimePeriod = new TimePeriod( 0 - evaluatePeriodsN( n ),
TimePeriodType.QUARTER );
}
else if ( IBuildInBaseTimeFunction.PREVIOUS_YEAR_TO_DATE.equals( calculateType )
Expand All @@ -734,11 +720,7 @@ else if ( IBuildInBaseTimeFunction.PREVIOUS_YEAR_TO_DATE.equals( calculateType )
break;
}
}
if ( n == null || n.trim( ).equals( "" ) )
{
n = "1";
}
relativeTimePeriod = new TimePeriod( 0 - Integer.valueOf( n ),
relativeTimePeriod = new TimePeriod( 0 - evaluatePeriodsN( n ),
TimePeriodType.YEAR );
}
else if ( IBuildInBaseTimeFunction.CURRENT_PERIOD_FROM_N_PERIOD_AGO.equals( calculateType )
Expand All @@ -759,12 +741,34 @@ else if ( IBuildInBaseTimeFunction.CURRENT_PERIOD_FROM_N_PERIOD_AGO.equals( calc
n = argument.getValue( ).getStringExpression( );
}
}
relativeTimePeriod = new TimePeriod( 0 - Integer.valueOf( n ),
relativeTimePeriod = new TimePeriod( 0 - evaluatePeriodsN( n ),
DataAdapterUtil.toTimePeriodType( period2 ) );
}
return relativeTimePeriod;
}

private int evaluatePeriodsN( String n ) throws DataException,
BirtException
{
int num = 0;
if ( n == null || n.trim( ).equals( "" ) )
{
n = "1";
}
try
{
num = Integer.valueOf( n );
}
catch ( Exception e )
{
num = (Integer) ScriptEvalUtil.evalExpr( new ScriptExpression( n ),
this.context.getDataEngineContext( ).getScriptContext( ),
"",
0 );
}
return num;
}

/**
*
* @param handle
Expand Down

0 comments on commit a8a192c

Please sign in to comment.