package com.inter6.mail.model;
import org.apache.commons.lang3.StringUtils;
import com.inter6.mail.gui.component.content.AttachmentPartPanel;
import com.inter6.mail.gui.component.content.ContentPartPanel;
import com.inter6.mail.gui.component.content.MultiPartPanel;
import com.inter6.mail.gui.component.content.TextPartPanel;
import com.inter6.mail.model.component.content.AttachmentPartData;
import com.inter6.mail.model.component.content.MultiPartData;
import com.inter6.mail.model.component.content.PartData;
import com.inter6.mail.model.component.content.TextPartData;
public enum ContentType {
MULTIPART_MIXED("multipart", "mixed", MultiPartPanel.class, MultiPartData.class), MULTIPART_ALTERNATIVE("multipart", "alternative", MultiPartPanel.class, MultiPartData.class), MULTIPART_RELATED("multipart", "related", MultiPartPanel.class, MultiPartData.class), TEXT_PLAIN("text", "plain", TextPartPanel.class, TextPartData.class), TEXT_HTML("text", "html", TextPartPanel.class, TextPartData.class), ATTACHMENT("attachment", null, AttachmentPartPanel.class, AttachmentPartData.class);
private String type;
private String subType;
private Class<? extends ContentPartPanel> panelClass;
private Class<? extends PartData> dataClass;
ContentType(String type, String subType, Class<? extends ContentPartPanel> panelClass, Class<? extends PartData> dataClass) {
this.type = type;
this.subType = subType;
this.panelClass = panelClass;
this.dataClass = dataClass;
}
public String getSubType() {
return this.subType;
}
public Class<? extends ContentPartPanel> getPanelClass() {
return this.panelClass;
}
public Class<? extends PartData> getDataClass() {
return this.dataClass;
}
@Override
public String toString() {
return this.type + (StringUtils.isNotBlank(this.subType) ? "/" + this.subType : "");
}
}