/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright 2015-2023 Andres Almiray
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.kordamp.ikonli.websymbols;

import org.kordamp.ikonli.Ikon;

/**
 * @author Andres Almiray
 */
public enum Websymbols implements Ikon {
    ADDUSER("ws-adduser", (char) 171),
    ALBUM("ws-album", (char) 110),
    ALERT("ws-alert", (char) 92),
    ALIGNCENTER("ws-aligncenter", (char) 69),
    ALIGNLEFT("ws-alignleft", (char) 70),
    ALIGNRIGHT("ws-alignright", (char) 68),
    ARCHIVE("ws-archive", (char) 89),
    ATTACHMENT("ws-attachment", (char) 61),
    BEHANCE("ws-behance", (char) 79),
    BLOGGER("ws-blogger", (char) 80),
    BOTTOM("ws-bottom", (char) 203),
    BOTTOMFILL("ws-bottomfill", (char) 202),
    BOTTOMOUTLINE("ws-bottomoutline", (char) 201),
    BOXED("ws-boxed", (char) 65),
    BOXEDLIST("ws-boxedlist", (char) 66),
    BULLETS("ws-bullets", (char) 73),
    CALENDAR("ws-calendar", (char) 59),
    CHAT("ws-chat", (char) 75),
    CHATACTIVE("ws-chatactive", (char) 76),
    CLOCK("ws-clock", (char) 58),
    CLOSE("ws-close", (char) 206),
    CLOSEFILL("ws-closefill", (char) 205),
    CLOSEMENU("ws-closemenu", (char) 125),
    CLOSEOUTLINE("ws-closeoutline", (char) 204),
    CLOUD("ws-cloud", (char) 107),
    CLOUDUP("ws-cloudup", (char) 108),
    CODE("ws-code", (char) 95),
    COMMENT("ws-comment", (char) 115),
    COMMENTEMPTY("ws-commentempty", (char) 81),
    DIAGONAL("ws-diagonal", (char) 112),
    DONE("ws-done", (char) 245),
    DONEFILL("ws-donefill", (char) 243),
    DONEOUTLINE("ws-doneoutline", (char) 244),
    DOWNLOAD("ws-download", (char) 42),
    DOWNLOADFILL("ws-downloadfill", (char) 38),
    DOWNLOADOUTLINE("ws-downloadoutline", (char) 40),
    DRIBBLE("ws-dribble", (char) 164),
    DROPBOX("ws-dropbox", (char) 168),
    EDIT("ws-edit", (char) 63),
    EVERNOTE("ws-evernote", (char) 162),
    FACEBOOK("ws-facebook", (char) 228),
    FLICKR("ws-flickr", (char) 78),
    FOLD("ws-fold", (char) 91),
    FOLDER("ws-folder", (char) 106),
    FORWARD("ws-forward", (char) 45),
    FULLSCREEN("ws-fullscreen", (char) 62),
    GALLERY("ws-gallery", (char) 100),
    GITHUB("ws-github", (char) 82),
    GOOGLE("ws-google", (char) 242),
    GOOGLEPLUS("ws-googleplus", (char) 232),
    GROUP("ws-group", (char) 161),
    HALFLOUD("ws-halfloud", (char) 121),
    HEART("ws-heart", (char) 83),
    HEARTEMPTY("ws-heartempty", (char) 84),
    HORISONTAL("ws-horisontal", (char) 103),
    INDENT("ws-indent", (char) 71),
    INSTAGRAM("ws-instagram", (char) 235),
    KICKSTARTER("ws-kickstarter", (char) 175),
    LASTFM("ws-lastfm", (char) 166),
    LEFT("ws-left", (char) 212),
    LEFTFILL("ws-leftfill", (char) 211),
    LEFTOUTLINE("ws-leftoutline", (char) 210),
    LINK("ws-link", (char) 111),
    LINKEDIN("ws-linkedin", (char) 231),
    LIST("ws-list", (char) 67),
    LIVEJOURNAL("ws-livejournal", (char) 236),
    LOCK("ws-lock", (char) 119),
    LOGOUT("ws-logout", (char) 96),
    LOUD("ws-loud", (char) 122),
    MAIL("ws-mail", (char) 56),
    MOVIE("ws-movie", (char) 98),
    MOVIECLIP("ws-movieclip", (char) 99),
    MUTE("ws-mute", (char) 120),
    NEXT("ws-next", (char) 251),
    NEXTFILL("ws-nextfill", (char) 249),
    NEXTOUTLINE("ws-nextoutline", (char) 250),
    NORMAL("ws-normal", (char) 109),
    NORMALSCREEN("ws-normalscreen", (char) 60),
    ODNOKLASSNIKI("ws-odnoklassniki", (char) 233),
    OPENMENU("ws-openmenu", (char) 123),
    ORDERED("ws-ordered", (char) 74),
    OUTDENT("ws-outdent", (char) 72),
    PAUSE("ws-pause", (char) 221),
    PAUSEFILL("ws-pausefill", (char) 220),
    PAUSEOUTLINE("ws-pauseoutline", (char) 219),
    PHONE("ws-phone", (char) 124),
    PICASSA("ws-picassa", (char) 163),
    PICTURE("ws-picture", (char) 97),
    PIN("ws-pin", (char) 117),
    PINTEREST("ws-pinterest", (char) 237),
    PLAY("ws-play", (char) 218),
    PLAYFILL("ws-playfill", (char) 217),
    PLAYOUTLINE("ws-playoutline", (char) 216),
    PREVIOUS("ws-previous", (char) 248),
    PREVIOUSFILL("ws-previousfill", (char) 246),
    PREVIOUSOUTLINE("ws-previousoutline", (char) 247),
    RATING("ws-rating", (char) 113),
    REPEAT("ws-repeat", (char) 172),
    REPLY("ws-reply", (char) 44),
    REPLYALL("ws-replyall", (char) 43),
    RESIZE("ws-resize", (char) 209),
    RESIZEFILL("ws-resizefill", (char) 208),
    RESIZEOUTLINE("ws-resizeoutline", (char) 207),
    RETWEET("ws-retweet", (char) 34),
    REVISION("ws-revision", (char) 174),
    RIGHT("ws-right", (char) 215),
    RIGHTFILL("ws-rightfill", (char) 214),
    RIGHTOUTLINE("ws-rightoutline", (char) 213),
    ROTATE("ws-rotate", (char) 85),
    ROTATEFILL("ws-rotatefill", (char) 86),
    ROTATELEFT("ws-rotateleft", (char) 170),
    ROTATEOUTLINE("ws-rotateoutline", (char) 87),
    ROTATERIGHT("ws-rotateright", (char) 169),
    RSS("ws-rss", (char) 36),
    RSSBOX("ws-rssbox", (char) 241),
    SEARCH("ws-search", (char) 35),
    SETTINGS("ws-settings", (char) 94),
    SHARE("ws-share", (char) 64),
    SHUFFLE("ws-shuffle", (char) 126),
    SKYPE("ws-skype", (char) 239),
    SLIDESHOW("ws-slideshow", (char) 102),
    SORT("ws-sort", (char) 227),
    SORTFILL("ws-sortfill", (char) 226),
    SORTOUTLINE("ws-sortoutline", (char) 225),
    SOUNDCLOUD("ws-soundcloud", (char) 167),
    SPINNER_1("ws-spinner-1", (char) 0),
    SPINNER_2("ws-spinner-2", (char) 1),
    SPINNER_3("ws-spinner-3", (char) 2),
    SPINNER_4("ws-spinner-4", (char) 3),
    SPINNER_5("ws-spinner-5", (char) 4),
    SPINNER_6("ws-spinner-6", (char) 5),
    SPINNER_7("ws-spinner-7", (char) 6),
    SPINNER_8("ws-spinner-8", (char) 7),
    STAR("ws-star", (char) 116),
    STOP("ws-stop", (char) 224),
    STOPFILL("ws-stopfill", (char) 223),
    STOPOUTLINE("ws-stopoutline", (char) 222),
    SYNCHRONISE("ws-synchronise", (char) 33),
    TABLE("ws-table", (char) 105),
    TAG("ws-tag", (char) 114),
    TERMINAL("ws-terminal", (char) 101),
    TEXT("ws-text", (char) 90),
    TOP("ws-top", (char) 200),
    TOPFILL("ws-topfill", (char) 199),
    TOPOUTLINE("ws-topoutline", (char) 198),
    TUMBLR("ws-tumblr", (char) 234),
    TWITTER("ws-twitter", (char) 229),
    UNFOLD("ws-unfold", (char) 93),
    UNLOCK("ws-unlock", (char) 118),
    UPLOAD("ws-upload", (char) 41),
    UPLOADFILL("ws-uploadfill", (char) 37),
    UPLOADOUTLINE("ws-uploadoutline", (char) 39),
    USER("ws-user", (char) 46),
    VERTICAL("ws-vertical", (char) 104),
    VIEWS("ws-views", (char) 88),
    VIMEO("ws-vimeo", (char) 238),
    VKONTAKTE("ws-vkontakte", (char) 230),
    WEIBO("ws-weibo", (char) 165),
    WINDOW("ws-window", (char) 47),
    YOUTUBE("ws-youtube", (char) 240),
    ZOOMIN("ws-zoomin", (char) 194),
    ZOOMINFILL("ws-zoominfill", (char) 193),
    ZOOMINOUTLINE("ws-zoominoutline", (char) 192),
    ZOOMOUT("ws-zoomout", (char) 197),
    ZOOMOUTFILL("ws-zoomoutfill", (char) 196),
    ZOOMOUTOUTLINE("ws-zoomoutoutline", (char) 195);

    public static Websymbols findByDescription(String description) {
        for (Websymbols font : values()) {
            if (font.getDescription().equals(description)) {
                return font;
            }
        }
        throw new IllegalArgumentException("Icon description '" + description + "' is invalid!");
    }

    private String description;
    private int code;

    Websymbols(String description, int code) {
        this.description = description;
        this.code = code;
    }

    @Override
    public String getDescription() {
        return description;
    }

    @Override
    public int getCode() {
        return code;
    }
}