test_class.declarator: expectedEx = ExpectedException.none()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public ExpectedException expectedEx = ExpectedException.none();
test_class.type: ExpectedException
test_class.var_name: expectedEx
test_class.file: modules/dev-utils/src/test/java/org/apache/ignite/development/utils/IgniteWalConverterArgumentsTest.java
test_class.identifier: IgniteWalConverterArgumentsTest
test_class.superclass: extends GridCommonAbstractTest
test_case.body: @Test
      public void testViewHelp() throws Exception {
          final ByteArrayOutputStream out = new ByteArrayOutputStream();
  
          final IgniteWalConverterArguments parseArgs = IgniteWalConverterArguments.parse(new PrintStream(out), null);
  
          Assert.assertNull(parseArgs);
  
          final String help = out.toString();
  
          Assert.assertTrue(help.startsWith("Print WAL log data in human-readable form."));
  
          for (final Field field : IgniteWalConverterArguments.class.getDeclaredFields()) {
              if (Modifier.isStatic(field.getModifiers())
                  && Modifier.isStatic(field.getModifiers())
                  && field.getType() == String.class) {
                  field.setAccessible(true);
  
                  final String arg = (String)field.get(null);
  
                  Assert.assertTrue(help.contains("    " + arg + " "));
              }
          }
      }
test_case.class_method_signature: IgniteWalConverterArgumentsTest.testViewHelp()
test_case.full_signature: @Test public void testViewHelp()
test_case.identifier: testViewHelp
test_case.invocations: parse assertNull toString assertTrue startsWith getDeclaredFields isStatic getModifiers isStatic getModifiers getType setAccessible get assertTrue contains
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testViewHelp()
focal_class.declarator: walDir
focal_class.modifier: private final
focal_class.original_string: private final File walDir;
focal_class.type: File
focal_class.var_name: walDir
focal_class.declarator: walArchiveDir
focal_class.modifier: private final
focal_class.original_string: private final File walArchiveDir;
focal_class.type: File
focal_class.var_name: walArchiveDir
focal_class.declarator: pageSize
focal_class.modifier: private final
focal_class.original_string: private final int pageSize;
focal_class.type: int
focal_class.var_name: pageSize
focal_class.declarator: binaryMetadataDir
focal_class.modifier: private final
focal_class.original_string: private final File binaryMetadataDir;
focal_class.type: File
focal_class.var_name: binaryMetadataDir
focal_class.declarator: marshallerMappingDir
focal_class.modifier: private final
focal_class.original_string: private final File marshallerMappingDir;
focal_class.type: File
focal_class.var_name: marshallerMappingDir
focal_class.declarator: unwrapBinary
focal_class.modifier: private final
focal_class.original_string: private final boolean unwrapBinary;
focal_class.type: boolean
focal_class.var_name: unwrapBinary
focal_class.declarator: recordTypes
focal_class.modifier: private final
focal_class.original_string: private final Set<WALRecord.RecordType> recordTypes;
focal_class.type: Set<WALRecord.RecordType>
focal_class.var_name: recordTypes
focal_class.declarator: fromTime
focal_class.modifier: private final
focal_class.original_string: private final Long fromTime;
focal_class.type: Long
focal_class.var_name: fromTime
focal_class.declarator: toTime
focal_class.modifier: private final
focal_class.original_string: private final Long toTime;
focal_class.type: Long
focal_class.var_name: toTime
focal_class.declarator: hasText
focal_class.modifier: private final
focal_class.original_string: private final String hasText;
focal_class.type: String
focal_class.var_name: hasText
focal_class.declarator: includeSensitive
focal_class.modifier: private final
focal_class.original_string: private final ProcessSensitiveData includeSensitive;
focal_class.type: ProcessSensitiveData
focal_class.var_name: includeSensitive
focal_class.declarator: printStat
focal_class.modifier: private final
focal_class.original_string: private final boolean printStat;
focal_class.type: boolean
focal_class.var_name: printStat
focal_class.declarator: skipCrc
focal_class.modifier: private final
focal_class.original_string: private final boolean skipCrc;
focal_class.type: boolean
focal_class.var_name: skipCrc
focal_class.file: modules/dev-utils/src/main/java/org/apache/ignite/development/utils/IgniteWalConverterArguments.java
focal_class.identifier: IgniteWalConverterArguments
focal_class.class_method_signature: IgniteWalConverterArguments.IgniteWalConverterArguments(
          File walDir,
          File walArchiveDir,
          int pageSize,
          File binaryMetadataDir,
          File marshallerMappingDir,
          boolean unwrapBinary,
          Set<WALRecord.RecordType> recordTypes,
          Long fromTime,
          Long toTime,
          String hasText,
          ProcessSensitiveData includeSensitive,
          boolean printStat,
          boolean skipCrc
      )
focal_class.full_signature: public  IgniteWalConverterArguments(
          File walDir,
          File walArchiveDir,
          int pageSize,
          File binaryMetadataDir,
          File marshallerMappingDir,
          boolean unwrapBinary,
          Set<WALRecord.RecordType> recordTypes,
          Long fromTime,
          Long toTime,
          String hasText,
          ProcessSensitiveData includeSensitive,
          boolean printStat,
          boolean skipCrc
      )
focal_class.identifier: IgniteWalConverterArguments
focal_class.modifiers: public
focal_class.parameters: (
          File walDir,
          File walArchiveDir,
          int pageSize,
          File binaryMetadataDir,
          File marshallerMappingDir,
          boolean unwrapBinary,
          Set<WALRecord.RecordType> recordTypes,
          Long fromTime,
          Long toTime,
          String hasText,
          ProcessSensitiveData includeSensitive,
          boolean printStat,
          boolean skipCrc
      )
focal_class.signature:  IgniteWalConverterArguments(
          File walDir,
          File walArchiveDir,
          int pageSize,
          File binaryMetadataDir,
          File marshallerMappingDir,
          boolean unwrapBinary,
          Set<WALRecord.RecordType> recordTypes,
          Long fromTime,
          Long toTime,
          String hasText,
          ProcessSensitiveData includeSensitive,
          boolean printStat,
          boolean skipCrc
      )
focal_class.class_method_signature: IgniteWalConverterArguments.getWalDir()
focal_class.full_signature: public File getWalDir()
focal_class.identifier: getWalDir
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: File
focal_class.signature: File getWalDir()
focal_class.class_method_signature: IgniteWalConverterArguments.getWalArchiveDir()
focal_class.full_signature: public File getWalArchiveDir()
focal_class.identifier: getWalArchiveDir
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: File
focal_class.signature: File getWalArchiveDir()
focal_class.class_method_signature: IgniteWalConverterArguments.getPageSize()
focal_class.full_signature: public int getPageSize()
focal_class.identifier: getPageSize
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getPageSize()
focal_class.class_method_signature: IgniteWalConverterArguments.getBinaryMetadataDir()
focal_class.full_signature: public File getBinaryMetadataDir()
focal_class.identifier: getBinaryMetadataDir
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: File
focal_class.signature: File getBinaryMetadataDir()
focal_class.class_method_signature: IgniteWalConverterArguments.getMarshallerMappingDir()
focal_class.full_signature: public File getMarshallerMappingDir()
focal_class.identifier: getMarshallerMappingDir
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: File
focal_class.signature: File getMarshallerMappingDir()
focal_class.class_method_signature: IgniteWalConverterArguments.isUnwrapBinary()
focal_class.full_signature: public boolean isUnwrapBinary()
focal_class.identifier: isUnwrapBinary
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isUnwrapBinary()
focal_class.class_method_signature: IgniteWalConverterArguments.getRecordTypes()
focal_class.full_signature: public Set<WALRecord.RecordType> getRecordTypes()
focal_class.identifier: getRecordTypes
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Set<WALRecord.RecordType>
focal_class.signature: Set<WALRecord.RecordType> getRecordTypes()
focal_class.class_method_signature: IgniteWalConverterArguments.getFromTime()
focal_class.full_signature: public Long getFromTime()
focal_class.identifier: getFromTime
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Long
focal_class.signature: Long getFromTime()
focal_class.class_method_signature: IgniteWalConverterArguments.getToTime()
focal_class.full_signature: public Long getToTime()
focal_class.identifier: getToTime
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Long
focal_class.signature: Long getToTime()
focal_class.class_method_signature: IgniteWalConverterArguments.hasText()
focal_class.full_signature: public String hasText()
focal_class.identifier: hasText
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String hasText()
focal_class.class_method_signature: IgniteWalConverterArguments.includeSensitive()
focal_class.full_signature: public ProcessSensitiveData includeSensitive()
focal_class.identifier: includeSensitive
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ProcessSensitiveData
focal_class.signature: ProcessSensitiveData includeSensitive()
focal_class.class_method_signature: IgniteWalConverterArguments.isPrintStat()
focal_class.full_signature: public boolean isPrintStat()
focal_class.identifier: isPrintStat
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isPrintStat()
focal_class.class_method_signature: IgniteWalConverterArguments.isSkipCrc()
focal_class.full_signature: public boolean isSkipCrc()
focal_class.identifier: isSkipCrc
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isSkipCrc()
focal_class.class_method_signature: IgniteWalConverterArguments.file(
          @Nullable String filePath,
          boolean checkExists,
          boolean checkIsDirectory
      )
focal_class.full_signature: public static @Nullable File file(
          @Nullable String filePath,
          boolean checkExists,
          boolean checkIsDirectory
      )
focal_class.identifier: file
focal_class.modifiers: public static @Nullable
focal_class.parameters: (
          @Nullable String filePath,
          boolean checkExists,
          boolean checkIsDirectory
      )
focal_class.return: File
focal_class.signature: File file(
          @Nullable String filePath,
          boolean checkExists,
          boolean checkIsDirectory
      )
focal_class.class_method_signature: IgniteWalConverterArguments.checkRecordTypes(String[] recordTypesStrArray)
focal_class.full_signature: private static Set<WALRecord.RecordType> checkRecordTypes(String[] recordTypesStrArray)
focal_class.identifier: checkRecordTypes
focal_class.modifiers: private static
focal_class.parameters: (String[] recordTypesStrArray)
focal_class.return: Set<WALRecord.RecordType>
focal_class.signature: Set<WALRecord.RecordType> checkRecordTypes(String[] recordTypesStrArray)
focal_class.class_method_signature: IgniteWalConverterArguments.parse(final PrintStream out, String args[])
focal_class.full_signature: public static IgniteWalConverterArguments parse(final PrintStream out, String args[])
focal_class.identifier: parse
focal_class.modifiers: public static
focal_class.parameters: (final PrintStream out, String args[])
focal_class.return: IgniteWalConverterArguments
focal_class.signature: IgniteWalConverterArguments parse(final PrintStream out, String args[])
focal_method.body: public static IgniteWalConverterArguments parse(final PrintStream out, String args[]) {
          AtomicReference<CLIArgumentParser> parserRef = new AtomicReference<>();
  
          CLIArgumentParser parser = new CLIArgumentParser(asList(
              optionalArg(WAL_DIR.arg(), "Path to dir with wal files.", String.class, () -> {
                  if (parserRef.get().get(Args.WAL_ARCHIVE_DIR.arg()) == null)
                      throw new IllegalArgumentException("One of the arguments --wal-dir or --wal-archive-dir must be specified.");
                  else
                      return null;
              }),
              optionalArg(Args.WAL_ARCHIVE_DIR.arg(), "Path to dir with wal files.", String.class),
              optionalArg(PAGE_SIZE.arg(), "Size of pages, which was selected for file store (1024, 2048, 4096, etc).", Integer.class, () -> 4096),
              optionalArg(BINARY_METADATA_DIR.arg(), "Path to binary meta.", String.class),
              optionalArg(MARSHALLER_MAPPING_DIR.arg(), "Path to marshaller dir.", String.class),
              optionalArg(UNWRAP_BINARY.arg(), "Unwrap binary non-primitive objects.", Boolean.class),
              optionalArg(RECORD_TYPES.arg(), "Comma-separated WAL record types (TX_RECORD, DATA_RECORD, etc). By default, all types will be printed.", String[].class),
              optionalArg(WAL_TIME_FROM_MILLIS.arg(), "The start time interval for the record time in milliseconds.", Long.class),
              optionalArg(WAL_TIME_TO_MILLIS.arg(), "The end time interval for the record time in milliseconds.", Long.class),
              optionalArg(HAS_TEXT.arg(), "Filter by substring in the WAL record.", String.class),
              optionalArg(INCLUDE_SENSITIVE.arg(), "Strategy for the processing of sensitive data (SHOW, HIDE, HASH, MD5). Default MD5.", String.class, ProcessSensitiveData.MD5::toString),
              optionalArg(PRINT_STAT.arg(), "Write summary statistics for WAL.", Boolean.class),
              optionalArg(SKIP_CRC.arg(), "Skip CRC calculation/check flag", Boolean.class)
          ));
  
          if (args == null || args.length < 1) {
              out.println("Print WAL log data in human-readable form.");
              out.println(parser.usage());
              out.println("For example:");
              out.println("    " + WAL_DIR.arg() + " /work/db/wal");
              out.println("    " + WAL_ARCHIVE_DIR.arg() + " /work/db/wal_archive");
              out.println("    " + PAGE_SIZE.arg() + " 4096");
              out.println("    " + BINARY_METADATA_DIR.arg() + " /work/db/nodeId-consistentId");
              out.println("    " + MARSHALLER_MAPPING_DIR.arg() + " /work/db/marshaller");
              out.println("    " + UNWRAP_BINARY.arg());
              out.println("    " + RECORD_TYPES.arg() + " DataRecord,TxRecord");
              out.println("    " + WAL_TIME_FROM_MILLIS.arg() + " 1575158400000");
              out.println("    " + WAL_TIME_TO_MILLIS.arg() + " 1577836740999");
              out.println("    " + HAS_TEXT.arg() + " search_string");
              out.println("    " + INCLUDE_SENSITIVE.arg() + " SHOW");
              out.println("    " + SKIP_CRC.arg());
  
              return null;
          }
  
          parserRef.set(parser);
  
          parser.parse(asList(args).iterator());
  
          File walDir = file(parser.get(WAL_DIR.arg()), true, false);
          File walArchiveDir = file(parser.get(Args.WAL_ARCHIVE_DIR.arg()), true, false);
          int pageSize = parser.get(PAGE_SIZE.arg());
          File binaryMetadataDir = file(parser.get(BINARY_METADATA_DIR.arg()), true, true);
          File marshallerMappingDir = file(parser.get(MARSHALLER_MAPPING_DIR.arg()), true, true);
          boolean unwrapBinary = parser.get(UNWRAP_BINARY.arg());
          final Set<WALRecord.RecordType> recordTypes = checkRecordTypes(parser.get(RECORD_TYPES.arg()));
          Long fromTime = parser.get(Args.WAL_TIME_FROM_MILLIS.arg());
          Long toTime = parser.get(Args.WAL_TIME_TO_MILLIS.arg());
          String hasText = parser.get(Args.HAS_TEXT.arg());
          boolean printStat = parser.get(Args.PRINT_STAT.arg());
          boolean skipCrc = parser.get(Args.SKIP_CRC.arg());
  
          String processSensitiveDataStr = parser.get(Args.INCLUDE_SENSITIVE.arg());
  
          ProcessSensitiveData includeSensitive;
  
          try {
              includeSensitive = ProcessSensitiveData.valueOf(processSensitiveDataStr);
          }
          catch (Exception e) {
              throw new IllegalArgumentException("Unknown --include-sensitive: " + processSensitiveDataStr +
                  ". Supported: " + Arrays.toString(ProcessSensitiveData.values()));
          }
  
          out.println("Program arguments:");
  
          if (walDir != null)
              out.printf("\t%s = %s\n", WAL_DIR, walDir.getAbsolutePath());
  
          if (walArchiveDir != null)
              out.printf("\t%s = %s\n", WAL_ARCHIVE_DIR, walArchiveDir.getAbsolutePath());
  
          out.printf("\t%s = %d\n", PAGE_SIZE, pageSize);
  
          if (binaryMetadataDir != null)
              out.printf("\t%s = %s\n", BINARY_METADATA_DIR, binaryMetadataDir);
  
          if (marshallerMappingDir != null)
              out.printf("\t%s = %s\n", MARSHALLER_MAPPING_DIR, marshallerMappingDir);
  
          out.printf("\t%s = %s\n", UNWRAP_BINARY, unwrapBinary);
  
          if (!F.isEmpty(recordTypes))
              out.printf("\t%s = %s\n", RECORD_TYPES, recordTypes);
  
          if (fromTime != null)
              out.printf("\t%s = %s\n", WAL_TIME_FROM_MILLIS, new Date(fromTime));
  
          if (toTime != null)
              out.printf("\t%s = %s\n", WAL_TIME_TO_MILLIS, new Date(toTime));
  
          if (hasText != null)
              out.printf("\t%s = %s\n", HAS_TEXT, hasText);
  
          out.printf("\t%s = %s\n", INCLUDE_SENSITIVE, includeSensitive);
  
          out.printf("\t%s = %b\n", PRINT_STAT, printStat);
  
          out.printf("\t%s = %b\n", SKIP_CRC, skipCrc);
  
          return new IgniteWalConverterArguments(walDir, walArchiveDir, pageSize,
              binaryMetadataDir, marshallerMappingDir,
              unwrapBinary, recordTypes, fromTime, toTime, hasText, includeSensitive, printStat, skipCrc);
      }
focal_method.class_method_signature: IgniteWalConverterArguments.parse(final PrintStream out, String args[])
focal_method.full_signature: public static IgniteWalConverterArguments parse(final PrintStream out, String args[])
focal_method.identifier: parse
focal_method.invocations: asList optionalArg arg get get arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg optionalArg arg println println usage println println arg println arg println arg println arg println arg println arg println arg println arg println arg println arg println arg println arg set parse iterator asList file get arg file get arg get arg file get arg file get arg get arg checkRecordTypes get arg get arg get arg get arg get arg get arg get arg valueOf toString values println printf getAbsolutePath printf getAbsolutePath printf printf printf printf isEmpty printf printf printf printf printf printf printf
focal_method.modifiers: public static
focal_method.parameters: (final PrintStream out, String args[])
focal_method.return: IgniteWalConverterArguments
focal_method.signature: IgniteWalConverterArguments parse(final PrintStream out, String args[])