/* * Copyright (C) 2020-2021 Christian Pierre MOMON * * This file is part of StatoolInfos, simple service statistics tool. * * StatoolInfos is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * StatoolInfos is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with StatoolInfos. If not, see . */ package fr.devinsy.statoolinfos.htmlize; import java.util.ArrayList; import fr.devinsy.strings.StringList; import fr.devinsy.xidyn.utils.XidynUtils; /** * The Class BreadcrumbTrail. */ public class BreadcrumbTrail extends ArrayList { private static final long serialVersionUID = -2688444486042912675L; /** * Instantiates a new breadcrumb trail. */ public BreadcrumbTrail() { this("🏡", "index.xhtml"); } /** * Instantiates a new breadcrumb trail. * * @param label * the label * @param link * the link */ public BreadcrumbTrail(final String label, final String link) { super(); add(label, link); } /** * Adds the. * * @param label * the label * @return the breadcrumb trail */ public BreadcrumbTrail add(final String label) { BreadcrumbTrail result; Breadcrumb crumb = new Breadcrumb(label, null); add(crumb); result = this; // return result; } /** * Adds the. * * @param label * the label * @param link * the link */ public BreadcrumbTrail add(final String label, final String link) { BreadcrumbTrail result; Breadcrumb crumb = new Breadcrumb(label, link); add(crumb); result = this; // return result; } /** * To string. * * @return the string */ @Override public String toString() { String result; StringList buffer = new StringList(); for (Breadcrumb crumb : this) { if (crumb.getLink() == null) { buffer.append(XidynUtils.escapeXmlBlank(crumb.getLabel())); } else { buffer.append(String.format("%s", crumb.getLink(), XidynUtils.escapeXmlBlank(crumb.getLabel()))); } buffer.append(" > "); } if (buffer.size() > 2) { buffer.removeLast(); } result = buffer.toString(); // return result; } }