JavaElement javaReference) throws SemanticHandlerException {
List<JavadocFragment> result = new ArrayList<JavadocFragment>();
for (Object o : fragments) {
if (o instanceof TagElement) {
TagElement tag = (TagElement) o;
JavadocTagElement e = factory.createJavadocTagElement();
e.setName(tag.getTagName());
// recurse to create parents
e.getFragments().addAll(handleTagFragment(tag.fragments(), javaReference));
// link up any references to model elements
handleModelReferences(e, javaReference);
result.add(e);
} else if (o instanceof TextElement) {
TextElement text = (TextElement) o;
JavadocTextElement e = factory.createJavadocTextElement();
e.setValue(text.getText());
result.add(e);
} else if (o instanceof MethodRef) {
MethodRef ref = (MethodRef) o;
JavaMethod method = getMethodFor(ref);
if (method != null) {
JavadocMethodReference e = factory.createJavadocMethodReference();
e.setReference(method);
result.add(e);
}
} else if (o instanceof SimpleName) {
// assume it is a class name
JavaClass cls = getJavaClassFor((SimpleName) o);
if (cls != null) {
JavadocClassReference e = factory.createJavadocClassReference();
e.setReference(cls);
result.add(e);
}
} else if (o instanceof QualifiedName) {
// assume it is a class name (with package)
JavaClass cls = getJavaClassFor((QualifiedName) o);
if (cls != null) {
JavadocClassReference e = factory.createJavadocClassReference();
e.setReference(cls);
result.add(e);
}
} else if (o instanceof MemberRef) {
// ignore
} else {