package com.gmail.dpierron.calibre.datamodel; import com.gmail.dpierron.tools.Helper; import java.util.Arrays; import java.util.List; import java.lang.String; /** * User: WalkerDJ * * Class that is used to store a custom column value */ public class CustomColumnValue { private CustomColumnType type; private String value; private String extra; // CONSTRUCTORS public CustomColumnValue (CustomColumnType type, String value, String extra) { assert type != null; assert value != null; this.type = type; this.value = value; this.extra = extra; } // METHODS and PROPERTIES public CustomColumnType getType () { return type; } /** * Get Raw value as String * * This will convert values if any special treatment * is needed (e.g. Boolean or Series types) */ public String getValueAsString() { assert Helper.isNotNullOrEmpty(value); String result = value; if (type.equals("bool")) { result = value.equals("0") ? "No" : "Yes"; // TODO Localize yes/no values // result = value.equals("0") ? Localization.Main.getText("boolean.no") // : Localization.Main.getText("boolean.yes"); } else if (type.equals("series")) { result += " [" + extra + "]"; } else if (type.equals("float")) { // TODO Decide if Calibre format string should be applied? } else if (type.equals("datetime")) { // TODO Decide if Calibre format string should be applied } return result; } public List<String> getValueAsList () { return Arrays.asList(getValueAsString()); } /** * Get the value as a series if the column is of this type. * This is used to create a new series sub-section. * @return */ public Series getValueAsSeries () { if (type.equals("series")) { Series series = new Series("0", value, extra); return series; } else { return null; } } }