FunctionImpl extends AbstractProcedureImpl implements Function { @Override public boolean isNullOnNull( final UnitOfWork transaction ) throws KException { final String option = OptionContainerUtils.getOption( transaction, this, StandardOption.NULL_ON_NULL.getName() ); if (option == null) { return Function.DEFAULT_NULL_ON_NULL; } return Boolean.parseBoolean( option ); } protected  FunctionImpl( final UnitOfWork uow,
                            final Repository repository,
                            final String workspacePath ); @Override StatementOption[] getCustomOptions( final UnitOfWork transaction ); @Override Determinism getDeterminism( final UnitOfWork transaction ); @Override Map< String, String > getStandardOptions(); @Override boolean isAggregate( final UnitOfWork transaction ); @Override boolean isAllowsDistinct( final UnitOfWork transaction ); @Override boolean isAllowsOrderBy( final UnitOfWork transaction ); @Override boolean isAnalytic( final UnitOfWork transaction ); @Override boolean isDecomposable( final UnitOfWork transaction ); @Override boolean isNullOnNull( final UnitOfWork transaction ); @Override boolean isStandardOption( final String name ); @Override boolean isUsesDistinctRows( final UnitOfWork transaction ); @Override boolean isVarArgs( final UnitOfWork transaction ); @Override void setAggregate( final UnitOfWork transaction,
                              final boolean newAggregate ); @Override void setAllowsDistinct( final UnitOfWork transaction,
                                   final boolean newAllowsDistinct ); @Override void setAllowsOrderBy( final UnitOfWork transaction,
                                  final boolean newAllowsOrderBy ); @Override void setAnalytic( final UnitOfWork transaction,
                             final boolean newIsAnalytic ); @Override void setDecomposable( final UnitOfWork transaction,
                                 final boolean newDecomposable ); @Override void setDeterminism( final UnitOfWork transaction,
                                final Determinism newDeterminism ); @Override void setNullOnNull( final UnitOfWork transaction,
                               final boolean newNullOnNull ); @Override void setUsesDistinctRows( final UnitOfWork transaction,
                                     final boolean newUsesDistinctRows ); @Override void setVarArgs( final UnitOfWork transaction,
                            final boolean newVarArgs );  }
@Test public void shouldHaveDefaultNullOnNullAfterConstruction() throws Exception { assertThat( this.function.isNullOnNull( getTransaction() ), is( Function.DEFAULT_NULL_ON_NULL ) ); }