@SuppressWarnings("unchecked") public <T extends SingleValueKnowledgeBuilderOption> T getOption(Class<T> option) { if ( DefaultDialectOption.class.equals( option ) ) { return (T) this.defaultDialect; } else if ( DumpDirOption.class.equals( option ) ) { return (T) DumpDirOption.get( this.dumpDirectory ); } else if ( ProcessStringEscapesOption.class.equals( option ) ) { return (T) (this.processStringEscapes ? ProcessStringEscapesOption.YES : ProcessStringEscapesOption.NO); } else if ( DefaultPackageNameOption.class.equals( option ) ) { return (T) DefaultPackageNameOption.get( this.defaultPackageName ); } else if ( ClassLoaderCacheOption.class.equals( option ) ) { return (T) (this.classLoaderCache ? ClassLoaderCacheOption.ENABLED : ClassLoaderCacheOption.DISABLED); } else if ( PropertySpecificOption.class.equals( option ) ) { return (T)propertySpecificOption; } return null; }