test_class.declarator: FAKE_TEXT =
              "TRIP\n" +
              "DATE 2005-07-01 \n" +
              "DECLINATION     0.00\n" +
              "DATA\n" +
              "1.0\t\t193.78\t0.41\t9.118\t>\n" +
              "1.0\t\t328.51\t14.60\t4.709\t>\n" +
              "\n" +
              "PLAN\n" +
              "STATIONS\n" +
              "0.000\t0.000\t1.0\n" +
              "-10.255\t1.283\t1.1\n" +
              "SHOTS\n" +
              "1.597\t-1.073\t9.846\t1.700\n" +
              "9.846\t1.700\t12.401\t0.728\n" +
              "POLYLINE BROWN\n" +
              "4.980\t-55.180\n" +
              "POLYLINE RED\n" +
              "3.780\t-48.580\n" +
              "\n" +
              "ELEVATION\n" +
              "STATIONS\n" +
              "0.000\t0.000\t1.0\n" +
              "10.335\t0.789\t1.1\n" +
              "SHOTS\n" +
              "22.419\t2.357\t31.121\t10.880\n" +
              "31.121\t10.880\t33.233\t17.211\n" +
              "POLYLINE BLUE\n" +
              "70.600\t-23.300\n" +
              "70.800\t-23.300"
test_class.modifier: public static final
test_class.original_string: public static final String FAKE_TEXT =
              "TRIP\n" +
              "DATE 2005-07-01 \n" +
              "DECLINATION     0.00\n" +
              "DATA\n" +
              "1.0\t\t193.78\t0.41\t9.118\t>\n" +
              "1.0\t\t328.51\t14.60\t4.709\t>\n" +
              "\n" +
              "PLAN\n" +
              "STATIONS\n" +
              "0.000\t0.000\t1.0\n" +
              "-10.255\t1.283\t1.1\n" +
              "SHOTS\n" +
              "1.597\t-1.073\t9.846\t1.700\n" +
              "9.846\t1.700\t12.401\t0.728\n" +
              "POLYLINE BROWN\n" +
              "4.980\t-55.180\n" +
              "POLYLINE RED\n" +
              "3.780\t-48.580\n" +
              "\n" +
              "ELEVATION\n" +
              "STATIONS\n" +
              "0.000\t0.000\t1.0\n" +
              "10.335\t0.789\t1.1\n" +
              "SHOTS\n" +
              "22.419\t2.357\t31.121\t10.880\n" +
              "31.121\t10.880\t33.233\t17.211\n" +
              "POLYLINE BLUE\n" +
              "70.600\t-23.300\n" +
              "70.800\t-23.300";
test_class.type: String
test_class.var_name: FAKE_TEXT
test_class.file: app/src/test/java/org/hwyl/sexytopo/control/io/thirdparty/pockettopo/PocketTopoTxtImporterTest.java
test_class.identifier: PocketTopoTxtImporterTest
test_case.body: @Test
      public void testGetSection() {
          String section = PocketTopoTxtImporter.getSection(FAKE_TEXT, "DATA");
          Assert.assertEquals("1.0\t\t193.78\t0.41\t9.118\t>\n1.0\t\t328.51\t14.60\t4.709\t>", section);
      }
test_case.class_method_signature: PocketTopoTxtImporterTest.testGetSection()
test_case.full_signature: @Test public void testGetSection()
test_case.identifier: testGetSection
test_case.invocations: getSection assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetSection()
focal_class.file: app/src/main/java/org/hwyl/sexytopo/control/io/thirdparty/pockettopo/PocketTopoTxtImporter.java
focal_class.identifier: PocketTopoTxtImporter
focal_class.class_method_signature: PocketTopoTxtImporter.toSurvey(File file)
focal_class.full_signature: public Survey toSurvey(File file)
focal_class.identifier: toSurvey
focal_class.modifiers: public
focal_class.parameters: (File file)
focal_class.return: Survey
focal_class.signature: Survey toSurvey(File file)
focal_class.class_method_signature: PocketTopoTxtImporter.canHandleFile(File file)
focal_class.full_signature: public boolean canHandleFile(File file)
focal_class.identifier: canHandleFile
focal_class.modifiers: public
focal_class.parameters: (File file)
focal_class.return: boolean
focal_class.signature: boolean canHandleFile(File file)
focal_class.class_method_signature: PocketTopoTxtImporter.parseDataAndUpdateSurvey(Survey survey, String fullText)
focal_class.full_signature: private static void parseDataAndUpdateSurvey(Survey survey, String fullText)
focal_class.identifier: parseDataAndUpdateSurvey
focal_class.modifiers: private static
focal_class.parameters: (Survey survey, String fullText)
focal_class.return: void
focal_class.signature: void parseDataAndUpdateSurvey(Survey survey, String fullText)
focal_class.class_method_signature: PocketTopoTxtImporter.getPlan(Survey survey, String fullText)
focal_class.full_signature: private static Sketch getPlan(Survey survey, String fullText)
focal_class.identifier: getPlan
focal_class.modifiers: private static
focal_class.parameters: (Survey survey, String fullText)
focal_class.return: Sketch
focal_class.signature: Sketch getPlan(Survey survey, String fullText)
focal_class.class_method_signature: PocketTopoTxtImporter.getElevation(Survey survey, String fullText)
focal_class.full_signature: private static Sketch getElevation(Survey survey, String fullText)
focal_class.identifier: getElevation
focal_class.modifiers: private static
focal_class.parameters: (Survey survey, String fullText)
focal_class.return: Sketch
focal_class.signature: Sketch getElevation(Survey survey, String fullText)
focal_class.class_method_signature: PocketTopoTxtImporter.parseSketch(Survey survey, String text, Space<Coord2D> projection)
focal_class.full_signature: private static Sketch parseSketch(Survey survey, String text, Space<Coord2D> projection)
focal_class.identifier: parseSketch
focal_class.modifiers: private static
focal_class.parameters: (Survey survey, String text, Space<Coord2D> projection)
focal_class.return: Sketch
focal_class.signature: Sketch parseSketch(Survey survey, String text, Space<Coord2D> projection)
focal_class.class_method_signature: PocketTopoTxtImporter.getSection(String text, String header)
focal_class.full_signature: public static String getSection(String text, String header)
focal_class.identifier: getSection
focal_class.modifiers: public static
focal_class.parameters: (String text, String header)
focal_class.return: String
focal_class.signature: String getSection(String text, String header)
focal_class.class_method_signature: PocketTopoTxtImporter.extractOffset(
              Survey survey, String text, Space<Coord2D> projection)
focal_class.full_signature: public static Coord2D extractOffset(
              Survey survey, String text, Space<Coord2D> projection)
focal_class.identifier: extractOffset
focal_class.modifiers: public static
focal_class.parameters: (
              Survey survey, String text, Space<Coord2D> projection)
focal_class.return: Coord2D
focal_class.signature: Coord2D extractOffset(
              Survey survey, String text, Space<Coord2D> projection)
focal_class.class_method_signature: PocketTopoTxtImporter.getOffsetForNamedStation(String[] lines, Station station)
focal_class.full_signature: public static Coord2D getOffsetForNamedStation(String[] lines, Station station)
focal_class.identifier: getOffsetForNamedStation
focal_class.modifiers: public static
focal_class.parameters: (String[] lines, Station station)
focal_class.return: Coord2D
focal_class.signature: Coord2D getOffsetForNamedStation(String[] lines, Station station)
focal_class.class_method_signature: PocketTopoTxtImporter.getNamedSubSection(String text, String header, String sectionHeader)
focal_class.full_signature: public static String getNamedSubSection(String text, String header, String sectionHeader)
focal_class.identifier: getNamedSubSection
focal_class.modifiers: public static
focal_class.parameters: (String text, String header, String sectionHeader)
focal_class.return: String
focal_class.signature: String getNamedSubSection(String text, String header, String sectionHeader)
focal_class.class_method_signature: PocketTopoTxtImporter.getNamedSubSection(String text, String header)
focal_class.full_signature: public static String getNamedSubSection(String text, String header)
focal_class.identifier: getNamedSubSection
focal_class.modifiers: public static
focal_class.parameters: (String text, String header)
focal_class.return: String
focal_class.signature: String getNamedSubSection(String text, String header)
focal_class.class_method_signature: PocketTopoTxtImporter.parsePolylines(String text, Coord2D offset)
focal_class.full_signature: public static Set<PathDetail> parsePolylines(String text, Coord2D offset)
focal_class.identifier: parsePolylines
focal_class.modifiers: public static
focal_class.parameters: (String text, Coord2D offset)
focal_class.return: Set<PathDetail>
focal_class.signature: Set<PathDetail> parsePolylines(String text, Coord2D offset)
focal_class.class_method_signature: PocketTopoTxtImporter.interpretColour(String colourText)
focal_class.full_signature: public static Colour interpretColour(String colourText)
focal_class.identifier: interpretColour
focal_class.modifiers: public static
focal_class.parameters: (String colourText)
focal_class.return: Colour
focal_class.signature: Colour interpretColour(String colourText)
focal_class.superclass: extends Importer
focal_method.body: public static String getSection(String text, String header) {
          // a section in the file format appears to be made up of a header, followed by the content,
          // followed by a blank line. There are no intermediate blank lines.
  
          text = text + "\n\n"; // hack (ensure last section is terminated by newline)
  
          Pattern pattern = Pattern.compile(
              "(?sm)" +
              "^" + header.toUpperCase() + "\\n" +
              "(.*?)\\n" +
              "^\\n");
          Matcher matcher = pattern.matcher(text);
          matcher.find();
          return matcher.group(1);
      }
focal_method.class_method_signature: PocketTopoTxtImporter.getSection(String text, String header)
focal_method.full_signature: public static String getSection(String text, String header)
focal_method.identifier: getSection
focal_method.invocations: compile toUpperCase matcher find group
focal_method.modifiers: public static
focal_method.parameters: (String text, String header)
focal_method.return: String
focal_method.signature: String getSection(String text, String header)