/**
* IconLinkRelations
* Copyright 2016 by luccioman; https://github.com/luccioman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program in the file lgpl21.txt
* If not, see <http://www.gnu.org/licenses/>.
*/
package net.yacy.document.parser.html;
/**
* Enumeration of HTML link relationships (rel attribute) designating icon.
* @author luc
*
*/
public enum IconLinkRelations {
/** Standard IANA registered icon link relation (see https://www.iana.org/assignments/link-relations/link-relations.xhtml) */
ICON("icon", "Standard favicon"),
/** Icon for IOS app shortcut */
APPLE_TOUCH_ICON("apple-touch-icon", "IOS app shortcut icon"),
/** Icon for IOS app shortcut (deprecated but still used by major websites in 2015) */
APPLE_TOUCH_ICON_PRECOMPOSED("apple-touch-icon-precomposed", "Deprecated IOS app shortcut icon"),
/** icon for Safari pinned tab */
MASK_ICON("mask-icon", "Safari browser pinned tab icon"),
/** Icon for Fluid web app */
FLUID_ICON("fluid-icon", "Fluid app icon");
/** HTML rel attribute value */
private String relValue;
/** Human readable description */
private String description;
private IconLinkRelations(String relValue, String description) {
this.relValue = relValue;
this.description = description;
}
/**
* @return HTML rel attribute value
*/
public String getRelValue() {
return relValue;
}
/**
* @return Human readable description of icon rel attribute
*/
public String getDescription() {
return description;
}
/**
* @param relToken HTML rel attribute token
* @return true when relToken is an icon relationship (standard or non-standard)
*/
public static boolean isIconRel(String relToken) {
boolean res = false;
for(IconLinkRelations iconRel : IconLinkRelations.values()) {
if(iconRel.getRelValue().equalsIgnoreCase(relToken)) {
res = true;
break;
}
}
return res;
}
/**
* @param relToken HTML rel attribute token
* @return true when relToken is Standard IANA registered icon link relation
*/
public static boolean isStandardIconRel(String relToken) {
return ICON.getRelValue().equalsIgnoreCase(relToken);
}
}