@Test public void testTemplateMoreComplicated1() { String name = "E::F<class E::D::G<struct E::D::H<bool (__cdecl*const)" + "(enum C::B const &),0>,bool,enum C::B const &> >::" + "F<class E::D::G<struct E::D::H<bool (__cdecl*const)(enum C::B const &),0>," + "bool,enum C::B const &> ><class E::D::A<bool,enum C::B const &> >"; List<String> list = SymbolPathParser.parse(name); List<String> expected = new ArrayList<>(); expected.add("E"); expected.add("F<class E::D::G<struct E::D::H<bool (__cdecl*const)" + "(enum C::B const &),0>,bool,enum C::B const &> >"); expected.add("F<class E::D::G<struct E::D::H<bool (__cdecl*const)(enum C::B const &),0>," + "bool,enum C::B const &> ><class E::D::A<bool,enum C::B const &> >"); assertListEqualOrdered(expected, list); }
public static List<String> parse(String name) { if (StringUtils.isBlank(name)) { throw new IllegalArgumentException( "Symbol list must contain at least one symbol name!"); } if (name.indexOf(Namespace.NAMESPACE_DELIMITER) == -1) { List<String> list = new ArrayList<>(); list.add(name); return list; } return naiveParse(name); }
SymbolPathParser { public static List<String> parse(String name) { if (StringUtils.isBlank(name)) { throw new IllegalArgumentException( "Symbol list must contain at least one symbol name!"); } if (name.indexOf(Namespace.NAMESPACE_DELIMITER) == -1) { List<String> list = new ArrayList<>(); list.add(name); return list; } return naiveParse(name); } }
SymbolPathParser { public static List<String> parse(String name) { if (StringUtils.isBlank(name)) { throw new IllegalArgumentException( "Symbol list must contain at least one symbol name!"); } if (name.indexOf(Namespace.NAMESPACE_DELIMITER) == -1) { List<String> list = new ArrayList<>(); list.add(name); return list; } return naiveParse(name); }  }
SymbolPathParser { public static List<String> parse(String name) { if (StringUtils.isBlank(name)) { throw new IllegalArgumentException( "Symbol list must contain at least one symbol name!"); } if (name.indexOf(Namespace.NAMESPACE_DELIMITER) == -1) { List<String> list = new ArrayList<>(); list.add(name); return list; } return naiveParse(name); }  static List<String> parse(String name); }
SymbolPathParser { public static List<String> parse(String name) { if (StringUtils.isBlank(name)) { throw new IllegalArgumentException( "Symbol list must contain at least one symbol name!"); } if (name.indexOf(Namespace.NAMESPACE_DELIMITER) == -1) { List<String> list = new ArrayList<>(); list.add(name); return list; } return naiveParse(name); }  static List<String> parse(String name);  }