package org.limewire.ui.swing.properties; import org.limewire.core.api.FilePropertyKey; import org.limewire.core.api.library.PropertiableFile; import org.limewire.ui.swing.util.GuiUtils; import org.limewire.util.CommonUtils; /** * Common conversions PropertiableFiles. */ public class FileInfoUtils { /** * Returns a String version of the DataCreated or empty String if no * Date is available or there were problems parsing the date. */ public static String convertDate(PropertiableFile propertiable) { Object time = propertiable.getProperty(FilePropertyKey.DATE_CREATED); if (time instanceof Long) { return GuiUtils.msec2DateTime((Long) time); } return ""; } /** * Returns the length of a playable file in hr:min:sec format or * empty String if no length is available. */ public static String getLength(PropertiableFile propertiableFile) { Long length = (Long)propertiableFile.getProperty(FilePropertyKey.LENGTH); return length != null ? CommonUtils.seconds2time(length) : null; } /** * Returns the file size in bytes/KB/MB/GB (bytes) format or empty string * if no size exists. */ public static String getFileSize(PropertiableFile propertiable) { Long fileSize = getFileSizeLong(propertiable); if (fileSize != null) { return GuiUtils.toUnitbytes(fileSize) + " (" + GuiUtils.toBytes(fileSize) + ")"; } return ""; } private static Long getFileSizeLong(PropertiableFile propertiable) { return (Long)propertiable.getProperty(FilePropertyKey.FILE_SIZE); } /** * Returns the quality of this file. */ public static String getQuality(PropertiableFile propertiableFile) { Long qualityScore = getQualityScoreLong(propertiableFile); return qualityScore != null ? GuiUtils.toQualityString(qualityScore) : null; } private static Long getQualityScoreLong(PropertiableFile propertiable) { return (Long)propertiable.getProperty(FilePropertyKey.QUALITY); } }