test_class.declarator: logger = LoggerFactory.getLogger(GraphNameTest.class)
test_class.modifier: private static final
test_class.original_string: private static final Logger logger = LoggerFactory.getLogger(GraphNameTest.class);
test_class.type: Logger
test_class.var_name: logger
test_class.file: rcljava/src/test/java/org/ros2/rcljava/namespace/GraphNameTest.java
test_class.identifier: GraphNameTest
test_class.superclass: extends AbstractRosTest
test_case.body: @Test
      public final void testGetFullName() {
          logger.debug(new Object(){}.getClass().getEnclosingMethod().getName());
  
          Node node = RCLJava.createNode("my_node");
          Assert.assertEquals("/ping",            GraphName.getFullName(node, "ping",     null));
          Assert.assertEquals("/ping",            GraphName.getFullName(node, "/ping",    null));
          Assert.assertEquals("/my_node",         GraphName.getFullName(node, "~",        null));
          Assert.assertEquals("/my_node/ping",    GraphName.getFullName(node, "~/ping",   null));
          node.dispose();
  
          node = RCLJava.createNode("my_ns", "my_node");
          Assert.assertEquals("/my_ns/ping",          GraphName.getFullName(node, "ping",     null));
          Assert.assertEquals("/ping",                GraphName.getFullName(node, "/ping",    null));
          Assert.assertEquals("/my_ns/my_node",       GraphName.getFullName(node, "~",        null));
          Assert.assertEquals("/my_ns/my_node/ping",  GraphName.getFullName(node, "~/ping",   null));
          node.dispose();
  
          node = RCLJava.createNode("/my_ns/my_subns", "my_node");
          Assert.assertEquals("/my_ns/my_subns/ping",         GraphName.getFullName(node, "ping",     null));
          Assert.assertEquals("/ping",                        GraphName.getFullName(node, "/ping",    null));
          Assert.assertEquals("/my_ns/my_subns/my_node",      GraphName.getFullName(node, "~",        null));
          Assert.assertEquals("/my_ns/my_subns/my_node/ping", GraphName.getFullName(node, "~/ping",   null));
          node.dispose();
      }
test_case.class_method_signature: GraphNameTest.testGetFullName()
test_case.full_signature: @Test public final void testGetFullName()
test_case.identifier: testGetFullName
test_case.invocations: debug getName getEnclosingMethod getClass createNode assertEquals getFullName assertEquals getFullName assertEquals getFullName assertEquals getFullName dispose createNode assertEquals getFullName assertEquals getFullName assertEquals getFullName assertEquals getFullName dispose createNode assertEquals getFullName assertEquals getFullName assertEquals getFullName assertEquals getFullName dispose
test_case.modifiers: @Test public final
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetFullName()
focal_class.declarator: EMPTY = ""
focal_class.modifier: private static final
focal_class.original_string: private static final String EMPTY = "";
focal_class.type: String
focal_class.var_name: EMPTY
focal_class.declarator: PRIVATE = "_"
focal_class.modifier: private static final
focal_class.original_string: private static final String PRIVATE = "_";
focal_class.type: String
focal_class.var_name: PRIVATE
focal_class.declarator: SEPARATOR = "/"
focal_class.modifier: private static final
focal_class.original_string: private static final String SEPARATOR = "/";
focal_class.type: String
focal_class.var_name: SEPARATOR
focal_class.declarator: RELATIVE = "~"
focal_class.modifier: private static final
focal_class.original_string: private static final String RELATIVE = "~";
focal_class.type: String
focal_class.var_name: RELATIVE
focal_class.declarator: PARAMETER = "{}"
focal_class.modifier: private static final
focal_class.original_string: private static final String PARAMETER = "{}";
focal_class.type: String
focal_class.var_name: PARAMETER
focal_class.declarator: RELATIVE_TOPIC = RELATIVE + SEPARATOR
focal_class.modifier: private static final
focal_class.original_string: private static final String RELATIVE_TOPIC = RELATIVE + SEPARATOR;
focal_class.type: String
focal_class.var_name: RELATIVE_TOPIC
focal_class.declarator: FORMAT_TOPIC = "%s" + SEPARATOR + "%s"
focal_class.modifier: private static final
focal_class.original_string: private static final String FORMAT_TOPIC = "%s" + SEPARATOR + "%s";
focal_class.type: String
focal_class.var_name: FORMAT_TOPIC
focal_class.declarator: nodes = new LinkedBlockingQueue<Node>()
focal_class.modifier: private static
focal_class.original_string: private static Queue<Node> nodes = new LinkedBlockingQueue<Node>();
focal_class.type: Queue<Node>
focal_class.var_name: nodes
focal_class.file: rcljava/src/main/java/org/ros2/rcljava/namespace/GraphName.java
focal_class.identifier: GraphName
focal_class.class_method_signature: GraphName.GraphName()
focal_class.full_signature: private  GraphName()
focal_class.identifier: GraphName
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  GraphName()
focal_class.class_method_signature: GraphName.addNode(final Node node)
focal_class.full_signature: public static void addNode(final Node node)
focal_class.identifier: addNode
focal_class.modifiers: public static
focal_class.parameters: (final Node node)
focal_class.return: void
focal_class.signature: void addNode(final Node node)
focal_class.class_method_signature: GraphName.removeNode(final Node node)
focal_class.full_signature: public static void removeNode(final Node node)
focal_class.identifier: removeNode
focal_class.modifiers: public static
focal_class.parameters: (final Node node)
focal_class.return: void
focal_class.signature: void removeNode(final Node node)
focal_class.class_method_signature: GraphName.dispose()
focal_class.full_signature: public static void dispose()
focal_class.identifier: dispose
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dispose()
focal_class.class_method_signature: GraphName.removeSheme(final String url)
focal_class.full_signature: private static String removeSheme(final String url)
focal_class.identifier: removeSheme
focal_class.modifiers: private static
focal_class.parameters: (final String url)
focal_class.return: String
focal_class.signature: String removeSheme(final String url)
focal_class.class_method_signature: GraphName.getFullName(final String nameSpace, final String nodeName)
focal_class.full_signature: public static String getFullName(final String nameSpace, final String nodeName)
focal_class.identifier: getFullName
focal_class.modifiers: public static
focal_class.parameters: (final String nameSpace, final String nodeName)
focal_class.return: String
focal_class.signature: String getFullName(final String nameSpace, final String nodeName)
focal_class.class_method_signature: GraphName.getFullName(final Node node, final String name, final List<String> options)
focal_class.full_signature: public static String getFullName(final Node node, final String name, final List<String> options)
focal_class.identifier: getFullName
focal_class.modifiers: public static
focal_class.parameters: (final Node node, final String name, final List<String> options)
focal_class.return: String
focal_class.signature: String getFullName(final Node node, final String name, final List<String> options)
focal_class.class_method_signature: GraphName.isValidTopic(final String name)
focal_class.full_signature: public static boolean isValidTopic(final String name)
focal_class.identifier: isValidTopic
focal_class.modifiers: public static
focal_class.parameters: (final String name)
focal_class.return: boolean
focal_class.signature: boolean isValidTopic(final String name)
focal_class.class_method_signature: GraphName.isValidSubstitution(final String substitution)
focal_class.full_signature: public static boolean isValidSubstitution(final String substitution)
focal_class.identifier: isValidSubstitution
focal_class.modifiers: public static
focal_class.parameters: (final String substitution)
focal_class.return: boolean
focal_class.signature: boolean isValidSubstitution(final String substitution)
focal_class.class_method_signature: GraphName.isValidFQDN(final String fqn)
focal_class.full_signature: public static boolean isValidFQDN(final String fqn)
focal_class.identifier: isValidFQDN
focal_class.modifiers: public static
focal_class.parameters: (final String fqn)
focal_class.return: boolean
focal_class.signature: boolean isValidFQDN(final String fqn)
focal_method.body: public static String getFullName(final String nameSpace, final String nodeName) {
          String result = nodeName;
          String ns = nameSpace;
  
          // Manage Name Space.
          if (ns == null || ns.length() == 0) {
              ns = EMPTY;
          } else if (!ns.startsWith(SEPARATOR)){
              ns = String.format(FORMAT_TOPIC, EMPTY, ns);
          }
  
          // Absolute case
          if (nodeName.startsWith(SEPARATOR)) {
              result = nodeName;
          } else
  
          {
              result = String.format(FORMAT_TOPIC, ns, nodeName);
          }
  
          return result;
      }
focal_method.class_method_signature: GraphName.getFullName(final String nameSpace, final String nodeName)
focal_method.full_signature: public static String getFullName(final String nameSpace, final String nodeName)
focal_method.identifier: getFullName
focal_method.invocations: length startsWith format startsWith format
focal_method.modifiers: public static
focal_method.parameters: (final String nameSpace, final String nodeName)
focal_method.return: String
focal_method.signature: String getFullName(final String nameSpace, final String nodeName)