/******************************************************************************* * Copyright © 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * *******************************************************************************/ package org.eclipse.edt.gen.egldoc.templates; import org.eclipse.edt.gen.egldoc.Constants; import org.eclipse.edt.gen.egldoc.Context; import org.eclipse.edt.mof.codegen.api.TabbedWriter; import org.eclipse.edt.mof.egl.Element; import org.eclipse.edt.mof.egl.Enumeration; import org.eclipse.edt.mof.egl.Member; public class EnumerationTemplate extends EGLDocTemplate { public void preGenContent(Enumeration enumeration, Context ctx) { String docType = (String)ctx.get(Constants.DOCTYPE); /* if (docType == null) { ctx.put(Constants.DOCTYPE, ""); ctx.put(Constants.FIELDCONTAINERTYPE, ""); } */ ctx.invokeSuper(this, preGenContent, enumeration, ctx); } public void genContent(Enumeration enumeration, Context ctx, TabbedWriter out) { //ctx.invoke(genExampleUse, annotationType, ctx, out); //ctx.invoke(genTargets, enumeration, ctx, out); //ctx.invoke(genMemberAnnotations, (Part)stereotypeType, ctx, out); // does an annotation type have a default super type? method is now in stereotype type // ctx.invoke(genDefaultSuperType, (Part)annotationType, ctx, out); ctx.invoke(genFields, (Element)enumeration, ctx, out); //ctx.invoke(genComments, annotationType, ctx, out); //ctx.invoke(genCompatibility, annotationType, ctx, out); //now returns to the same method: ctx.invokeSuper(this, genContent, enumeration, ctx); } /* * public void genClassContent(AnnotationType annotationType, Context ctx, TabbedWriter out) { //ctx.invoke(genExampleUse, annotation, ctx, out); ctx.invoke(genTargets, (Part)annotationType, ctx, out); ctx.invoke(genFields, (Part)annotationType, ctx, out); //ctx.invoke(genComments, annotation, ctx, out); //ctx.invoke(genCompatibility, annotation, ctx, out); } */ /* public void genTargets(AnnotationType annotationType, Context ctx, TabbedWriter out){ int numberOfTargets = annotationType.getTargets().size(); if (numberOfTargets > 0) { int count = 0; out.println("<dt class=\"dt dlterm\"><a name=\"targets\"</a>Targets</dt>"); out.println("<dd class=\"dd\"><p class=\"p\">"); for (ElementKind target : annotationType.getTargets()) { if (count > 0 && count < numberOfTargets){ out.print(", "); } count++; ctx.invoke(genTarget, (EClass)annotationType, ctx, out, target); } out.println("</p><p class=\"p\"></p></dd></dt>"); } } */ /* public void genTarget(AnnotationType annotationType, Context ctx, TabbedWriter out, ElementKind arg){ out.print(arg.name()); /* String argClassName = arg.getClass().getName(); out.println("<a href=\"" + argClassName + "\">"); out.println(arg + "</a>"); */ /* } */ public void genFields(Enumeration enumeration, Context ctx, TabbedWriter out) { String fieldContainerType = (String) ctx.get("fieldContainerType"); out.println ("<dt class=\"dt dlterm\"><a name=\"annofields\"></a>" + fieldContainerType + " fields</dt>"); if(enumeration.getMembers().size() > 0){ // out.println(annotationType.getEClass().getName() + " fields"); out.println ("<dd class=\"dd\"><dl class=\"dl parml\"><p class=\"p\"></p>"); } else { out.println ("<dd class=\"dd\"> <p class=\"p\">None.</p><p class=\"p\"></p></dd></dt>"); } for (Member member : enumeration.getMembers()) { ctx.invoke(genMember, (Element)enumeration, ctx, out, member); } } public void genMember(Enumeration enumeration, Context ctx, TabbedWriter out, Member arg) { ctx.invoke(genDeclaration, arg, ctx, out); out.println("<p class=\"p\"></p>"); } public void genDeclaration(Enumeration enumeration, Context ctx, TabbedWriter out) { out.println(enumeration.getFullyQualifiedName()); } }