public void testMetamodel() throws Exception { AbstractRule rule = GrammarUtil.findRuleForName(getGrammarAccess().getGrammar(), "OverridableParserRule2"); assertNotNull("rule", rule); TypeRef ref = rule.getType(); assertNotNull("ref", ref); final EClass clazz = (EClass) ref.getClassifier(); assertNotNull("class", clazz); assertEquals("AType2", clazz.getName()); assertEquals(2, clazz.getESuperTypes().size()); Set<String> expectedNames = new HashSet<String>(Arrays.asList(new String[] {"AType", "RootRule"})); Iterator<String> iter = Iterables.transform( clazz.getESuperTypes(), new Function<EClass, String>() { public String apply(EClass param) { return param.getName(); } }) .iterator(); while (iter.hasNext()) { String name = iter.next(); assertTrue("name = '" + name + "'", expectedNames.remove(name)); } assertTrue(expectedNames.toString(), expectedNames.isEmpty()); }
private TypeRef copyTypeRef(final TypeRef ref) { if ((ref == null)) { return null; } final TypeRef copy = this.<TypeRef>copy(ref); EClassifier _classifier = ref.getClassifier(); copy.setClassifier(_classifier); return copy; }