test_class.file: universal/src/test/java/com/chiralbehaviors/CoRE/universal/SpaTest.java
test_class.identifier: SpaTest
test_case.body: @Test
      public void testSpa() throws Exception {
          ObjectNode node = (ObjectNode) new ObjectMapper().readTree(getClass().getResourceAsStream("/test-app.json"));
          Spa spa = new Spa(node);
          Page page = spa.getRoot();
          assertNotNull(page);
          assertEquals("Applications", page.getTitle());
          assertEquals("All applications", page.getName());
          assertEquals("Page with all applications", page.getDescription());
          assertNull(page.getFrame());
          assertNotNull(page.getQuery());
  
          Relation relation = new Relation("singlePageApplications");
          Action create = page.getCreate(relation);
          assertNotNull(create);
          ObjectNode extract = create.getExtract();
          assertNotNull(extract);
          assertEquals(1, extract.size());
          assertEquals("bar", extract.get("foo")
                                     .asText());
          assertNotNull(create.getQuery());
          assertEquals("cc2f49ae-1c72-11e7-b9f2-31cf61e9d1f6",
                       create.getFrameBy());
  
          assertNotNull(page.getUpdate(relation));
          assertNotNull(page.getDelete(relation));
  
          Launch launch = page.getLaunch(relation);
          assertNotNull(launch);
          assertNull(launch.getFrame());
          assertEquals("id", launch.getFrameBy());
          assertEquals("cc2f49ae-1c72-11e7-b9f2-31cf61e9d1f6",
                       launch.getImmediate());
          assertEquals("id", launch.getLaunchBy());
  
          Route route = page.getNavigation(relation);
          assertNotNull(route);
          assertEquals("workspace", route.getFrameBy());
          extract = route.getExtract();
          assertNotNull(extract);
          assertEquals("bar", extract.get("foo")
                                     .asText());
          assertEquals("foo", route.getPath());
      }
test_case.class_method_signature: SpaTest.testSpa()
test_case.full_signature: @Test public void testSpa()
test_case.identifier: testSpa
test_case.invocations: readTree getResourceAsStream getClass getRoot assertNotNull assertEquals getTitle assertEquals getName assertEquals getDescription assertNull getFrame assertNotNull getQuery getCreate assertNotNull getExtract assertNotNull assertEquals size assertEquals asText get assertNotNull getQuery assertEquals getFrameBy assertNotNull getUpdate assertNotNull getDelete getLaunch assertNotNull assertNull getFrame assertEquals getFrameBy assertEquals getImmediate assertEquals getLaunchBy getNavigation assertNotNull assertEquals getFrameBy getExtract assertNotNull assertEquals asText get assertEquals getPath
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSpa()
focal_class.declarator: description
focal_class.modifier: private
focal_class.original_string: private String                  description;
focal_class.type: String
focal_class.var_name: description
focal_class.declarator: frame
focal_class.modifier: private
focal_class.original_string: private String                  frame;
focal_class.type: String
focal_class.var_name: frame
focal_class.declarator: meta = false
focal_class.modifier: private
focal_class.original_string: private boolean                 meta = false;
focal_class.type: boolean
focal_class.var_name: meta
focal_class.declarator: name
focal_class.modifier: private
focal_class.original_string: private String                  name;
focal_class.type: String
focal_class.var_name: name
focal_class.declarator: root
focal_class.modifier: private
focal_class.original_string: private String                  root;
focal_class.type: String
focal_class.var_name: root
focal_class.declarator: routes
focal_class.modifier: private final
focal_class.original_string: private final Map<String, Page> routes;
focal_class.type: Map<String, Page>
focal_class.var_name: routes
focal_class.file: universal/src/main/java/com/chiralbehaviors/CoRE/universal/Spa.java
focal_class.identifier: Spa
focal_class.class_method_signature: Spa.manifest(String resource)
focal_class.full_signature: public static Spa manifest(String resource)
focal_class.identifier: manifest
focal_class.modifiers: public static
focal_class.parameters: (String resource)
focal_class.return: Spa
focal_class.signature: Spa manifest(String resource)
focal_class.class_method_signature: Spa.routes(ArrayNode pages)
focal_class.full_signature: public static Map<String, Page> routes(ArrayNode pages)
focal_class.identifier: routes
focal_class.modifiers: public static
focal_class.parameters: (ArrayNode pages)
focal_class.return: Map<String, Page>
focal_class.signature: Map<String, Page> routes(ArrayNode pages)
focal_class.class_method_signature: Spa.Spa()
focal_class.full_signature: public  Spa()
focal_class.identifier: Spa
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  Spa()
focal_class.class_method_signature: Spa.Spa(ObjectNode app)
focal_class.full_signature: public  Spa(ObjectNode app)
focal_class.identifier: Spa
focal_class.modifiers: public
focal_class.parameters: (ObjectNode app)
focal_class.signature:  Spa(ObjectNode app)
focal_class.class_method_signature: Spa.Spa(String name, String description, String frame, JsonNode jsonNode,
                 String root, Map<String, Page> routes)
focal_class.full_signature: public  Spa(String name, String description, String frame, JsonNode jsonNode,
                 String root, Map<String, Page> routes)
focal_class.identifier: Spa
focal_class.modifiers: public
focal_class.parameters: (String name, String description, String frame, JsonNode jsonNode,
                 String root, Map<String, Page> routes)
focal_class.signature:  Spa(String name, String description, String frame, JsonNode jsonNode,
                 String root, Map<String, Page> routes)
focal_class.class_method_signature: Spa.getDescription()
focal_class.full_signature: public String getDescription()
focal_class.identifier: getDescription
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getDescription()
focal_class.class_method_signature: Spa.getFrame()
focal_class.full_signature: public String getFrame()
focal_class.identifier: getFrame
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getFrame()
focal_class.class_method_signature: Spa.getMeta()
focal_class.full_signature: public boolean getMeta()
focal_class.identifier: getMeta
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean getMeta()
focal_class.class_method_signature: Spa.getName()
focal_class.full_signature: public String getName()
focal_class.identifier: getName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getName()
focal_class.class_method_signature: Spa.getRoot()
focal_class.full_signature: public Page getRoot()
focal_class.identifier: getRoot
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Page
focal_class.signature: Page getRoot()
focal_class.class_method_signature: Spa.route(String path)
focal_class.full_signature: public Page route(String path)
focal_class.identifier: route
focal_class.modifiers: public
focal_class.parameters: (String path)
focal_class.return: Page
focal_class.signature: Page route(String path)
focal_class.class_method_signature: Spa.route(String path, Page page)
focal_class.full_signature: public void route(String path, Page page)
focal_class.identifier: route
focal_class.modifiers: public
focal_class.parameters: (String path, Page page)
focal_class.return: void
focal_class.signature: void route(String path, Page page)
focal_class.class_method_signature: Spa.setDescription(String description)
focal_class.full_signature: public void setDescription(String description)
focal_class.identifier: setDescription
focal_class.modifiers: public
focal_class.parameters: (String description)
focal_class.return: void
focal_class.signature: void setDescription(String description)
focal_class.class_method_signature: Spa.setFrame(String frame)
focal_class.full_signature: public void setFrame(String frame)
focal_class.identifier: setFrame
focal_class.modifiers: public
focal_class.parameters: (String frame)
focal_class.return: void
focal_class.signature: void setFrame(String frame)
focal_class.class_method_signature: Spa.setMeta(boolean meta)
focal_class.full_signature: public void setMeta(boolean meta)
focal_class.identifier: setMeta
focal_class.modifiers: public
focal_class.parameters: (boolean meta)
focal_class.return: void
focal_class.signature: void setMeta(boolean meta)
focal_class.class_method_signature: Spa.setName(String name)
focal_class.full_signature: public void setName(String name)
focal_class.identifier: setName
focal_class.modifiers: public
focal_class.parameters: (String name)
focal_class.return: void
focal_class.signature: void setName(String name)
focal_class.class_method_signature: Spa.setRoot(String root)
focal_class.full_signature: public void setRoot(String root)
focal_class.identifier: setRoot
focal_class.modifiers: public
focal_class.parameters: (String root)
focal_class.return: void
focal_class.signature: void setRoot(String root)
focal_class.class_method_signature: Spa.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_method.body: public Spa() {
          routes = new HashMap<>();
      }
focal_method.class_method_signature: Spa.Spa()
focal_method.full_signature: public  Spa()
focal_method.identifier: Spa
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.signature:  Spa()