class EdgeLabelBuilder extends AbstractLabelBuilder implements ItemBuilder {

    @Override
    public Item[] getItems(Graph graph) {<FILL_FUNCTION_BODY>}

    @Override
    public String getType() {
        return ItemBuilder.EDGE_LABEL_BUILDER;
    }
}

        //Build text
        VisualizationController vizController = Lookup.getDefault().lookup(VisualizationController.class);
        Workspace workspace = WorkspaceHelper.getWorkspace(graph);
        Column[] edgeColumns = vizController != null ? vizController.getEdgeTextColumns(workspace) : null;

        List<Item> items = new ArrayList<>();
        EdgeIterable edgeIterable = graph.getEdges();
        try {
            for (Edge e : edgeIterable) {
                EdgeLabelItem labelItem = new EdgeLabelItem(e);
                String label = getLabel(e, edgeColumns, graph.getView());
                labelItem.setData(EdgeLabelItem.LABEL, label);
                TextProperties textData = e.getTextProperties();
                if (textData != null) {
                    if (textData.getAlpha() != 0) {
                        labelItem.setData(EdgeLabelItem.COLOR, textData.getColor());
                    }
//                labelItem.setData(EdgeLabelItem.WIDTH, textData.getWidth());
//                labelItem.setData(EdgeLabelItem.HEIGHT, textData.getHeight());
                    labelItem.setData(EdgeLabelItem.SIZE, textData.getSize());
                    labelItem.setData(EdgeLabelItem.VISIBLE, textData.isVisible());
                    if (textData.isVisible() && !label.isEmpty()) {
                        items.add(labelItem);
                    }
                } else if (!label.isEmpty()) {
                    items.add(labelItem);
                }
            }
        } catch (Exception e) {
            edgeIterable.doBreak();
            Exceptions.printStackTrace(e);
        }
        return items.toArray(new Item[0]);
    
<methods>public non-sealed void <init>() <variables>