test_class.declarator: testBaseDir = new File("target/repos/CndExporterTest")
test_class.modifier: final
test_class.original_string: final File testBaseDir = new File("target/repos/CndExporterTest");
test_class.type: File
test_class.var_name: testBaseDir
test_class.file: webster/src/test/java/net/adamcin/oakpal/webster/CndExporterTest.java
test_class.identifier: CndExporterTest
test_case.body: @Test(expected = IllegalStateException.class)
      public void testCombineCauseMessages_reflectiveError() throws NoStringConstructorException {
          CndExporter.combineCauseMessages(
                  Stream.of(
                          Result.failure(new Exception("one")),
                          Result.failure(new Exception("two"))),
                  Exception.class,
                  NoStringConstructorException.class);
      }
test_case.class_method_signature: CndExporterTest.testCombineCauseMessages_reflectiveError()
test_case.full_signature: @Test(expected = IllegalStateException.class) public void testCombineCauseMessages_reflectiveError()
test_case.identifier: testCombineCauseMessages_reflectiveError
test_case.invocations: combineCauseMessages of failure failure
test_case.modifiers: @Test(expected = IllegalStateException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCombineCauseMessages_reflectiveError()
focal_class.declarator: scopeExportNames
focal_class.modifier: private final
focal_class.original_string: private final List<Rule> scopeExportNames;
focal_class.type: List<Rule>
focal_class.var_name: scopeExportNames
focal_class.declarator: scopeReplaceNames
focal_class.modifier: private final
focal_class.original_string: private final List<Rule> scopeReplaceNames;
focal_class.type: List<Rule>
focal_class.var_name: scopeReplaceNames
focal_class.declarator: includeBuiltins
focal_class.modifier: private final
focal_class.original_string: private final boolean includeBuiltins;
focal_class.type: boolean
focal_class.var_name: includeBuiltins
focal_class.declarator: BUILTIN_NODETYPES = JsonCnd.BUILTIN_NODETYPES
focal_class.modifier: public static final
focal_class.original_string: public static final List<String> BUILTIN_NODETYPES = JsonCnd.BUILTIN_NODETYPES;
focal_class.type: List<String>
focal_class.var_name: BUILTIN_NODETYPES
focal_class.file: webster/src/main/java/net/adamcin/oakpal/webster/CndExporter.java
focal_class.identifier: CndExporter
focal_class.class_method_signature: CndExporter.CndExporter(final List<Rule> scopeExportNames,
                          final List<Rule> scopeReplaceNames,
                          final boolean includeBuiltins)
focal_class.full_signature: private  CndExporter(final List<Rule> scopeExportNames,
                          final List<Rule> scopeReplaceNames,
                          final boolean includeBuiltins)
focal_class.identifier: CndExporter
focal_class.modifiers: private
focal_class.parameters: (final List<Rule> scopeExportNames,
                          final List<Rule> scopeReplaceNames,
                          final boolean includeBuiltins)
focal_class.signature:  CndExporter(final List<Rule> scopeExportNames,
                          final List<Rule> scopeReplaceNames,
                          final boolean includeBuiltins)
focal_class.class_method_signature: CndExporter.writeNodetypes(final @NotNull File cndFile,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames)
focal_class.full_signature: public void writeNodetypes(final @NotNull File cndFile,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames)
focal_class.identifier: writeNodetypes
focal_class.modifiers: public
focal_class.parameters: (final @NotNull File cndFile,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames)
focal_class.return: void
focal_class.signature: void writeNodetypes(final @NotNull File cndFile,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames)
focal_class.class_method_signature: CndExporter.writeNodetypes(final @NotNull WriterOpener writerOpener,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames,
                                 final @Nullable File initialCnd)
focal_class.full_signature: public void writeNodetypes(final @NotNull WriterOpener writerOpener,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames,
                                 final @Nullable File initialCnd)
focal_class.identifier: writeNodetypes
focal_class.modifiers: public
focal_class.parameters: (final @NotNull WriterOpener writerOpener,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames,
                                 final @Nullable File initialCnd)
focal_class.return: void
focal_class.signature: void writeNodetypes(final @NotNull WriterOpener writerOpener,
                                 final @NotNull Session session,
                                 final @NotNull List<String> desiredTypeNames,
                                 final @Nullable File initialCnd)
focal_class.class_method_signature: CndExporter.retrieveNodeTypes(final @NotNull Session session,
                                                                    final @NotNull Collection<Name> desiredTypeNames)
focal_class.full_signature: public static Map<Name, NodeTypeDefinition> retrieveNodeTypes(final @NotNull Session session,
                                                                    final @NotNull Collection<Name> desiredTypeNames)
focal_class.identifier: retrieveNodeTypes
focal_class.modifiers: public static
focal_class.parameters: (final @NotNull Session session,
                                                                    final @NotNull Collection<Name> desiredTypeNames)
focal_class.return: Map<Name, NodeTypeDefinition>
focal_class.signature: Map<Name, NodeTypeDefinition> retrieveNodeTypes(final @NotNull Session session,
                                                                    final @NotNull Collection<Name> desiredTypeNames)
focal_class.class_method_signature: CndExporter.retrieveNodeTypes(final @NotNull Session session,
                        final @NotNull Collection<Name> desiredTypeNames,
                        final @Nullable BiPredicate<NamePathResolver, NodeType> nodeTypeSelector)
focal_class.full_signature: public static Map<Name, NodeTypeDefinition> retrieveNodeTypes(final @NotNull Session session,
                        final @NotNull Collection<Name> desiredTypeNames,
                        final @Nullable BiPredicate<NamePathResolver, NodeType> nodeTypeSelector)
focal_class.identifier: retrieveNodeTypes
focal_class.modifiers: public static
focal_class.parameters: (final @NotNull Session session,
                        final @NotNull Collection<Name> desiredTypeNames,
                        final @Nullable BiPredicate<NamePathResolver, NodeType> nodeTypeSelector)
focal_class.return: Map<Name, NodeTypeDefinition>
focal_class.signature: Map<Name, NodeTypeDefinition> retrieveNodeTypes(final @NotNull Session session,
                        final @NotNull Collection<Name> desiredTypeNames,
                        final @Nullable BiPredicate<NamePathResolver, NodeType> nodeTypeSelector)
focal_class.class_method_signature: CndExporter.combineCauseMessages(final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)
focal_class.full_signature: static void combineCauseMessages(final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)
focal_class.identifier: combineCauseMessages
focal_class.modifiers: static
focal_class.parameters: (final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)
focal_class.return: void
focal_class.signature: void combineCauseMessages(final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)
focal_class.class_method_signature: CndExporter.optStream(final T element)
focal_class.full_signature: static Stream<T> optStream(final T element)
focal_class.identifier: optStream
focal_class.modifiers: static
focal_class.parameters: (final T element)
focal_class.return: Stream<T>
focal_class.signature: Stream<T> optStream(final T element)
focal_class.class_method_signature: CndExporter.ntDepStream(final NodeTypeTemplate ntDef)
focal_class.full_signature: @SuppressWarnings("unchecked") static Stream<String> ntDepStream(final NodeTypeTemplate ntDef)
focal_class.identifier: ntDepStream
focal_class.modifiers: @SuppressWarnings("unchecked") static
focal_class.parameters: (final NodeTypeTemplate ntDef)
focal_class.return: Stream<String>
focal_class.signature: Stream<String> ntDepStream(final NodeTypeTemplate ntDef)
focal_class.class_method_signature: CndExporter.addType(final @NotNull NamePathResolver resolver,
                          final @NotNull Map<Name, NodeTypeDefinition> typeSet,
                          final @NotNull NodeType def)
focal_class.full_signature: static void addType(final @NotNull NamePathResolver resolver,
                          final @NotNull Map<Name, NodeTypeDefinition> typeSet,
                          final @NotNull NodeType def)
focal_class.identifier: addType
focal_class.modifiers: static
focal_class.parameters: (final @NotNull NamePathResolver resolver,
                          final @NotNull Map<Name, NodeTypeDefinition> typeSet,
                          final @NotNull NodeType def)
focal_class.return: void
focal_class.signature: void addType(final @NotNull NamePathResolver resolver,
                          final @NotNull Map<Name, NodeTypeDefinition> typeSet,
                          final @NotNull NodeType def)
focal_method.body: static <T, E extends Throwable> void combineCauseMessages(final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow) throws E {
          final String combined = results.filter(Result::isFailure)
                  .map(result -> result.findCause(causeType))
                  .filter(Optional::isPresent)
                  .map(Optional::get)
                  .map(Throwable::getMessage)
                  .collect(Collectors.joining(", "));
          if (!combined.isEmpty()) {
              E rethrow;
              try {
                  rethrow = andThrow.getConstructor(String.class).newInstance(combined);
              } catch (final ReflectiveOperationException e) {
                  throw new IllegalStateException(combined, e);
              }
              throw rethrow;
          }
      }
focal_method.class_method_signature: CndExporter.combineCauseMessages(final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)
focal_method.full_signature: static void combineCauseMessages(final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)
focal_method.identifier: combineCauseMessages
focal_method.invocations: collect map map filter map filter findCause joining isEmpty newInstance getConstructor
focal_method.modifiers: static
focal_method.parameters: (final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)
focal_method.return: void
focal_method.signature: void combineCauseMessages(final @NotNull Stream<Result<T>> results,
                                                                final @NotNull Class<? extends Throwable> causeType,
                                                                final @NotNull Class<E> andThrow)