initInferredMask();
}
public void setDeclarations(Map<String, Declaration> decls) {
if ( rule.getSalience() instanceof MVELSalienceExpression ) {
MVELSalienceExpression expr = ( MVELSalienceExpression ) rule.getSalience();
Declaration[] declrs = expr.getMVELCompilationUnit().getPreviousDeclarations();
this.salienceDeclarations = new Declaration[declrs.length];
int i = 0;
for ( Declaration declr : declrs ) {
this.salienceDeclarations[i++] = decls.get( declr.getIdentifier() );
}
Arrays.sort( this.salienceDeclarations, SortDeclarations.instance );
}
if ( rule.getEnabled() instanceof MVELEnabledExpression ) {
MVELEnabledExpression expr = ( MVELEnabledExpression ) rule.getEnabled();
Declaration[] declrs = expr.getMVELCompilationUnit().getPreviousDeclarations();
this.enabledDeclarations = new Declaration[declrs.length];
int i = 0;
for ( Declaration declr : declrs ) {
this.enabledDeclarations[i++] = decls.get( declr.getIdentifier() );
}
Arrays.sort( this.enabledDeclarations, SortDeclarations.instance );
}
if ( rule.getTimer() instanceof ExpressionIntervalTimer ) {
ExpressionIntervalTimer expr = ( ExpressionIntervalTimer ) rule.getTimer();
Declaration[] declrs = expr.getDelayMVELCompilationUnit().getPreviousDeclarations();
this.timerDelayDeclarations = new Declaration[declrs.length];
int i = 0;
for ( Declaration declr : declrs ) {
this.timerDelayDeclarations[i++] = decls.get( declr.getIdentifier() );
}
Arrays.sort( this.timerDelayDeclarations, SortDeclarations.instance );
declrs = expr.getPeriodMVELCompilationUnit().getPreviousDeclarations();
this.timerPeriodDeclarations = new Declaration[declrs.length];
i = 0;
for ( Declaration declr : declrs ) {
this.timerPeriodDeclarations[i++] = decls.get( declr.getIdentifier() );
}