important java.util.Date;

enum EnterExit {
 NewTaipeiMRT,TaipeiMRT
}
enum Organization {
 Enter,Exit
}
Public abstract class SmartCard{
 private string cardID="";
 private string issueDate="";
 private Organization issueOrg;
 protect string getCardID(){
 return cardID;
}
 protect string getIssueDate(){
return issueDate;
}
 protect Organization getIssueOrg(){
return issueOrg;
}
 protect void setCardID(string cardID){
cardID=cardID;
}
 protect void setIssueDate(string date){
issueDate=date;
}
 protect void setIssueOrg(Organization org){
issueOrg=org;
}
 public string nowDateToString(){
return new Date(). toString ();
}
 public string toString (){};
}

public class Smsecurity extends SmartCard{
 private LinkedList<string> securityList;
 public Smsecurity (){};
 public Smsecurity (string cardID, Organization org){
 setCardID (cardID);
 setIssueOrg(org);
};
 public void addInfo(EnterExit enter){
securityList.add(nowDateToString ()+","+ enter.toString());
 }
 public void addInfo(string date,EnterExit enter){
securityList.add(date+","+ enter.toString());
}
 public void addInfo(Security se){
 string date=se.getDate();
 EnterExit enter=se.getEnterExit();
securityList.add(date+","+ enter.toString());
}
@override
 public string toString (){
  System.out.println("*****Smart card "+getCardID ()+
"("+getIssueDate ()+","+getIssueOrg.toString()
);
  System.out.println("---Enter and exit info");
  for(string info: securityList) {
   System.out.println("("+info+")");
  }
 };
}

Public class Security {
 private string date="";
 private EnterExit enterExit;
 public Security (){};
 public Security (EnterExit){};
 public string getDate(){};
public EnterExit getEnterExit(){};
public void setDate(EnterExit){};
public void setDate(string, EnterExit){};
public string toString (){};
}

public class Main{
 public static void main(string []args){
  Smsecurity sms=new Smsecurity ("SM001", Organization.NewTaipeiMRT);
  sms.addInfo ("2015/06/15 18:30:01" , EnterExit.Enter);
  sms.addInfo ("2015/06/15 20:16:01" , EnterExit.Exit);
  sms.addInfo ("2015/06/20 18:20:01" , EnterExit.Enter);
  sms.addInfo ( EnterExit.Exit);
  System.out.println(sms.toString());
}
}
}