package com.viaccessorca.voplayerdemo.mediamgt;

import com.viaccessorca.voplayerdemo.database.DatabaseInfo;

import java.io.Serializable;


public abstract class MediaItem implements Comparable<MediaItem>,Serializable {

    public static enum MediaType {
        LOCAL_MEDIA,
        HTTP_STREAMING_MEDIA,
        HTTP_STREAMING_MEDIA_EBD,
        SUBTITLE_FILE,
        MEDIA_PLAYLIST,
        UNKNOWN,
    }

    protected MediaType mediaType;

    protected String mediaId;

    protected String mediaUri;
    protected String displayName;

    protected String descriptionFilePath;

    protected DatabaseInfo associatedDBInfo;

    protected MediaItem(String mediaId, String mediaUri, String displayName) {
        this.mediaId = mediaId;
        this.mediaUri = mediaUri;
        this.displayName = displayName;
    }


    /**
     * @return the name for display
     */
    public String getDisplayName() {
        return displayName;
    }

    /**
     * @param displayName the name to display
     */
    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public MediaType getMediaType() {
        return this.mediaType;
    }

    public String getMediaId() { return this.mediaId; }

    public String getMediaUri() {
        return this.mediaUri;
    }

    /**
     * @return the descriptionFilePath
     */
    public String getDescriptionFilePath() {
        return descriptionFilePath;
    }

    /**
     * @param descriptionFilePath the descriptionFilePath to set
     */
    public void setDescriptionFilePath(String descriptionFilePath) {
        this.descriptionFilePath = descriptionFilePath;
    }

    public DatabaseInfo getAssociatedDBInfo() {
        return associatedDBInfo;
    }

    public void setAssociatedDBInfo(DatabaseInfo associatedDBInfo) {
        this.associatedDBInfo = associatedDBInfo;
    }
}
