test_class.file: de.prob2.kernel/src/test/java/de/prob/cli/ProBInstanceProviderTest.java
test_class.identifier: ProBInstanceProviderTest
test_case.body: @Test
  	public void testExtractCliInformation() {
  		ProBInstanceProvider factory = Main.getInjector().getInstance(
  				ProBInstanceProvider.class);
  
  		String text = "No file to process\nStarting Socket Server\n"
  				+ "Application Path: /Users/bendisposto/.prob\nPort: 61013\n"
  				+ "probcli revision: $Rev$\nuser interrupt reference id: 57124\n"
  				+ "-- starting command loop --";
  
  		BufferedReader reader = new BufferedReader(new StringReader(text));
  
  		Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>> info = factory
  				.extractCliInformation(reader);
  
  		assertNotNull(info.get(InterruptRefPattern.class));
  
  		assertNotNull(info.get(PortPattern.class));
  
  	}
test_case.class_method_signature: ProBInstanceProviderTest.testExtractCliInformation()
test_case.full_signature: @Test public void testExtractCliInformation()
test_case.identifier: testExtractCliInformation
test_case.invocations: getInstance getInjector extractCliInformation assertNotNull get assertNotNull get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testExtractCliInformation()
focal_class.declarator: logger = LoggerFactory.getLogger(ProBInstanceProvider.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(ProBInstanceProvider.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: processProvider
focal_class.modifier: private final
focal_class.original_string: private final PrologProcessProvider processProvider;
focal_class.type: PrologProcessProvider
focal_class.var_name: processProvider
focal_class.declarator: home
focal_class.modifier: private final
focal_class.original_string: private final String home;
focal_class.type: String
focal_class.var_name: home
focal_class.declarator: osInfo
focal_class.modifier: private final
focal_class.original_string: private final OsSpecificInfo osInfo;
focal_class.type: OsSpecificInfo
focal_class.var_name: osInfo
focal_class.declarator: processCounter
focal_class.modifier: private final
focal_class.original_string: private final AtomicInteger processCounter;
focal_class.type: AtomicInteger
focal_class.var_name: processCounter
focal_class.declarator: processes = new HashSet<>()
focal_class.modifier: private final
focal_class.original_string: private final Set<WeakReference<ProBInstance>> processes = new HashSet<>();
focal_class.type: Set<WeakReference<ProBInstance>>
focal_class.var_name: processes
focal_class.file: de.prob2.kernel/src/main/java/de/prob/cli/ProBInstanceProvider.java
focal_class.identifier: ProBInstanceProvider
focal_class.interfaces: implements Provider<ProBInstance>
focal_class.class_method_signature: ProBInstanceProvider.ProBInstanceProvider(final PrologProcessProvider processProvider,
  			@Home final String home, final OsSpecificInfo osInfo, final Installer installer)
focal_class.full_signature: @Inject public  ProBInstanceProvider(final PrologProcessProvider processProvider,
  			@Home final String home, final OsSpecificInfo osInfo, final Installer installer)
focal_class.identifier: ProBInstanceProvider
focal_class.modifiers: @Inject public
focal_class.parameters: (final PrologProcessProvider processProvider,
  			@Home final String home, final OsSpecificInfo osInfo, final Installer installer)
focal_class.signature:  ProBInstanceProvider(final PrologProcessProvider processProvider,
  			@Home final String home, final OsSpecificInfo osInfo, final Installer installer)
focal_class.class_method_signature: ProBInstanceProvider.get()
focal_class.full_signature: @Override public ProBInstance get()
focal_class.identifier: get
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: ProBInstance
focal_class.signature: ProBInstance get()
focal_class.class_method_signature: ProBInstanceProvider.create()
focal_class.full_signature: public ProBInstance create()
focal_class.identifier: create
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ProBInstance
focal_class.signature: ProBInstance create()
focal_class.class_method_signature: ProBInstanceProvider.numberOfCLIs()
focal_class.full_signature: public int numberOfCLIs()
focal_class.identifier: numberOfCLIs
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int numberOfCLIs()
focal_class.class_method_signature: ProBInstanceProvider.shutdownAll()
focal_class.full_signature: public void shutdownAll()
focal_class.identifier: shutdownAll
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutdownAll()
focal_class.class_method_signature: ProBInstanceProvider.getOptionalProcessExitCode(final Process process)
focal_class.full_signature: private static Integer getOptionalProcessExitCode(final Process process)
focal_class.identifier: getOptionalProcessExitCode
focal_class.modifiers: private static
focal_class.parameters: (final Process process)
focal_class.return: Integer
focal_class.signature: Integer getOptionalProcessExitCode(final Process process)
focal_class.class_method_signature: ProBInstanceProvider.startProlog()
focal_class.full_signature: private ProBInstance startProlog()
focal_class.identifier: startProlog
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: ProBInstance
focal_class.signature: ProBInstance startProlog()
focal_class.class_method_signature: ProBInstanceProvider.extractCliInformation(
  			final BufferedReader input)
focal_class.full_signature:  Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>> extractCliInformation(
  			final BufferedReader input)
focal_class.identifier: extractCliInformation
focal_class.parameters: (
  			final BufferedReader input)
focal_class.return: Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>>
focal_class.signature: Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>> extractCliInformation(
  			final BufferedReader input)
focal_class.class_method_signature: ProBInstanceProvider.analyseStdout(final BufferedReader input, final Collection<? extends AbstractCliPattern<?>> patterns)
focal_class.full_signature: private static void analyseStdout(final BufferedReader input, final Collection<? extends AbstractCliPattern<?>> patterns)
focal_class.identifier: analyseStdout
focal_class.modifiers: private static
focal_class.parameters: (final BufferedReader input, final Collection<? extends AbstractCliPattern<?>> patterns)
focal_class.return: void
focal_class.signature: void analyseStdout(final BufferedReader input, final Collection<? extends AbstractCliPattern<?>> patterns)
focal_class.class_method_signature: ProBInstanceProvider.applyPatterns(final Collection<? extends AbstractCliPattern<?>> patterns, final String line)
focal_class.full_signature: private static void applyPatterns(final Collection<? extends AbstractCliPattern<?>> patterns, final String line)
focal_class.identifier: applyPatterns
focal_class.modifiers: private static
focal_class.parameters: (final Collection<? extends AbstractCliPattern<?>> patterns, final String line)
focal_class.return: void
focal_class.signature: void applyPatterns(final Collection<? extends AbstractCliPattern<?>> patterns, final String line)
focal_method.body: Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>> extractCliInformation(
  			final BufferedReader input) {
  		final PortPattern portPattern = new PortPattern();
  		final InterruptRefPattern intPattern = new InterruptRefPattern();
  
  		Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>> pattern = new HashMap<>();
  		pattern.put(PortPattern.class, portPattern);
  		pattern.put(InterruptRefPattern.class, intPattern);
  		analyseStdout(input, pattern.values());
  		return pattern;
  	}
focal_method.class_method_signature: ProBInstanceProvider.extractCliInformation(
  			final BufferedReader input)
focal_method.full_signature:  Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>> extractCliInformation(
  			final BufferedReader input)
focal_method.identifier: extractCliInformation
focal_method.invocations: put put analyseStdout values
focal_method.parameters: (
  			final BufferedReader input)
focal_method.return: Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>>
focal_method.signature: Map<Class<? extends AbstractCliPattern<?>>, AbstractCliPattern<?>> extractCliInformation(
  			final BufferedReader input)