package abstracts;

import java.util.*;

/**
 * An abstract "piece of" content that will be extended 
 * to create concrete media (e.g., Image, VideoClip)
 *
 * @version 1.0
 * @author  Prof. David Bernstein, James Madison University
 */
public abstract class AbstractContent
{
    private Date   creationDate;
    private String author, title;



    /**
     *  "Constructs" a new AbstractContent
     *  (Note: This method should be called by the 
     *  constructor of all child classes)
     */
    public AbstractContent()
    {
	creationDate = new Date();
    }

    /**
     * Returns the author of this AbstractContent
     */
    public String getAuthor()
    {
	return author;
    }

    /**
     * Returns the creation date
     */
    public Date getCreationDate()
    {
	return creationDate;
    }

    /**
     * Returns the title of this AbstractContent
     */
    public String getTitle()
    {
	return title;
    }


    /**
     *  Show/play/render this AbstractContent
     */
    public abstract void show();


    /**
     * Sets the author of this AbstractContent
     */
    public void setAuthor(String author)
    {
	this.author = author;
    }


    /**
     * Sets the title of this AbstractContent
     */
    public void setTitle(String title)
    {
	this.title = title;
    }
}
