public void fillArguments ( @ Nonnull @ MustNotContainNull final List < ExpressionTree > arguments ) { assertNotEmptySlot ( ) ; if ( arguments == null ) { throw new PreprocessorException ( "[Expression]Argument list is null" , this . sourceString , this . includeStack , null ) ; } if ( childElements . length != arguments . size ( ) ) { throw new PreprocessorException ( "Wrong argument list size" , this . sourceString , this . includeStack , null ) ; } int i = 0 ; for ( ExpressionTree arg : arguments ) { if ( arg == null ) { throw new PreprocessorException ( "[Expression]Argument [" + ( i + 1 ) + "] is null" , this . sourceString , this . includeStack , null ) ; } if ( ! childElements [ i ] . isEmptySlot ( ) ) { throw new PreprocessorException ( "[Expression]Non-empty slot detected, it is possible that there is a program error, contact a developer please" , this . sourceString , this . includeStack , null ) ; } final ExpressionTreeElement root = arg . getRoot ( ) ; if ( root . isEmptySlot ( ) ) { throw new PreprocessorException ( "[Expression]Empty argument [" + ( i + 1 ) + "] detected" , this . sourceString , this . includeStack , null ) ; } childElements [ i ] = root ; root . parentTreeElement = this ; i ++ ; } }
It fills children slots from a list containing expression trees