import java.util.Date;
import java.io.IOException;

abstract public class Tiedosto {
    private String nimi; 
    private Date aikaleima;
    private Kansio kansio;
    private String tekijä;

    public Tiedosto(String nimi, String tekijä, Kansio kansio) throws IOException{
	this.nimi = nimi;
	this.tekijä = tekijä;
	this.kansio = kansio;
	this.aikaleima = new Date();
	if (kansio != null) {
	    kansio.lisäys(this);
	}
    }
    
    public String toString() {
	return "Tiedosto: " + nimi();
    }
    abstract public long koko();

    public String nimi() {
	return nimi;
    }
    
    public String tekijä() {
	return tekijä;
    }

    public Date aikaleima() {
	return aikaleima;
    }
   
    public Kansio kansio() {
	return kansio;
    }

    public String polku(){
	if (this.kansio != null ) {
	    return this.kansio.polku() + "/" + this.nimi();
	}
        return "/" + this.nimi();
    }

    public static void main (String args[]){
	try {
	    Kansio juuri = new Kansio ("Juuri", "Juha", null);
	    Dokumentti readme = new Dokumentti ("ReadMe", "Matti", juuri, 100);
	    Kansio dokumentit = new Kansio ("Dokut", "Juha", juuri);
	    Dokumentti doku1 = new Dokumentti ("Teksti1", "Matti", dokumentit, 1000);
	    Dokumentti doku2 = new Dokumentti ("Teksti2", "Matti", dokumentit, 20000);
	    System.out.println (juuri.polku());
	    System.out.println (readme.polku());
	    System.out.println (dokumentit.polku());
	    System.out.println (doku1.polku());
	    System.out.println (doku2.polku());
	} catch (IOException e){
	    // System.out.println (e);
	    e.printStackTrace();
	}

   }
}

