package org.jboss.windup.reporting.model; import org.jboss.windup.reporting.model.source.SourceReportModel; import com.tinkerpop.blueprints.Vertex; import com.tinkerpop.frames.modules.javahandler.JavaHandler; import com.tinkerpop.frames.modules.javahandler.JavaHandlerContext; import com.tinkerpop.frames.modules.typedgraph.TypeValue; /** * This extends SourceReportModel with some functions that are used by our source rendering template. * */ @TypeValue(FreeMarkerSourceReportModel.TYPE) public interface FreeMarkerSourceReportModel extends SourceReportModel { public static final String TYPE = "FreeMarkerSourceReport"; /** * This is used by the Javascript in the source rendering template to provide code assist blocks in the rendered * output. */ @JavaHandler public String getSourceBlock(); abstract class Impl implements FreeMarkerSourceReportModel, JavaHandlerContext<Vertex> { public String getSourceBlock() { StringBuilder builder = new StringBuilder(); boolean first = true; for (InlineHintModel line : getSourceFileModel().getInlineHints()) { if (!first) { builder.append(","); } builder.append(line.getLineNumber()); if (first) { first = false; } } return builder.toString(); } } }