/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.model.modpack; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import com.google.common.base.Strings; import lombok.Data; @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="name") @Data public class Feature implements Comparable<Feature> { public enum Recommendation { STARRED, AVOID; @JsonCreator public static Recommendation fromJson(String text) { return valueOf(text.toUpperCase()); } @JsonValue public String toJson() { return name().toLowerCase(); }; }; private String name; private String description; private Recommendation recommendation; private boolean selected; public Feature() { } public Feature(String name, String description, boolean selected) { this.name = name; this.description = description; this.selected = selected; } public Feature(Feature feature) { setName(feature.getName()); setDescription(feature.getDescription()); setSelected(feature.isSelected()); } @Override public int hashCode() { return super.hashCode(); } @Override public boolean equals(Object other) { return super.equals(other); } @Override public int compareTo(Feature o) { return Strings.nullToEmpty(getName()).compareTo(Strings.nullToEmpty(o.getName())); } }