Illustration.java
/*
* The coLAB project
* Copyright (C) 2021-2023 AlbaSim, MEI, HEIG-VD, HES-SO
*
* Licensed under the MIT License
*/
package ch.colabproject.colab.api.model.common;
import ch.colabproject.colab.generator.model.annotations.ExtractJavaDoc;
import ch.colabproject.colab.generator.model.interfaces.WithJsonDiscriminator;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
* To store data of the illustration of some item.
* <p>
* It is a simple picture that illustrate a project or a card type.
*
* @author sandra
*/
@Embeddable
@ExtractJavaDoc
public class Illustration implements WithJsonDiscriminator {
private static final long serialVersionUID = 1L;
// ---------------------------------------------------------------------------------------------
// fields
// ---------------------------------------------------------------------------------------------
/**
* Which library of icons contains the key
*/
@Column(length = 128)
@Enumerated(value = EnumType.STRING)
@NotNull
private IconLibrary iconLibrary = IconLibrary.MATERIAL_SYMBOLS_OUTLINED;
/**
* The key of the icon within the library of icons
*/
@Size(max = 128)
@NotNull
private String iconKey;
/**
* The background color to set behind the icon
*/
@Size(max = 64)
@NotNull
private String iconBkgdColor;
// ---------------------------------------------------------------------------------------------
// getters and setters
// ---------------------------------------------------------------------------------------------
/**
* @return which library of icons contains the key
*/
public IconLibrary getIconLibrary() {
return iconLibrary;
}
/**
* @param iconLibrary which library of icons contains the key
*/
public void setIconLibrary(IconLibrary iconLibrary) {
this.iconLibrary = iconLibrary;
}
/**
* @return the key of the icon within the library of icons
*/
public String getIconKey() {
return iconKey;
}
/**
* @param iconKey the key of the icon within the library of icons
*/
public void setIconKey(String iconKey) {
this.iconKey = iconKey;
}
/**
* @return the background color to set behind the icon
*/
public String getIconBkgdColor() {
return iconBkgdColor;
}
/**
* @param iconBkgdColor the background color to set behind the icon
*/
public void setIconBkgdColor(String iconBkgdColor) {
this.iconBkgdColor = iconBkgdColor;
}
// ---------------------------------------------------------------------------------------------
// concerning the whole class
// ---------------------------------------------------------------------------------------------
@Override
public int hashCode() {
return new HashCodeBuilder()
.append(this.iconLibrary)
.append(this.iconKey)
.append(this.iconBkgdColor)
.toHashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Illustration other = (Illustration) obj;
return new EqualsBuilder()
.append(this.iconLibrary, other.iconLibrary)
.append(this.iconKey, other.iconKey)
.append(this.iconBkgdColor, other.iconBkgdColor)
.isEquals();
}
@Override
public String toString() {
return "Illustration{" + " iconLibrary=" + iconLibrary + ", iconKey=" + iconKey
+ ", iconBkgdColor=" + iconBkgdColor + " }";
}
}