public static String createFullName(Deque<String> fieldNames) {
    String result = "";
    if (!fieldNames.isEmpty()) {
      Iterator<String> iter = fieldNames.descendingIterator();
      result = iter.next();
      if (!iter.hasNext()) {
        return result;
      }

      StringBuilder sb = new StringBuilder();
      sb.append(result);
      while (iter.hasNext()) {
        sb.append(".");
        sb.append(iter.next());
      }
      result = sb.toString();
    }
    return result;
  }
@Test
  void testCreateFullName() {
    String result = HoodieAvroUtils.createFullName(new ArrayDeque<>(Arrays.asList("a", "b", "c")));
    String resultSingle = HoodieAvroUtils.createFullName(new ArrayDeque<>(Collections.singletonList("a")));
    assertEquals("c.b.a", result);
    assertEquals("a", resultSingle);
  }