/* create and add books and Customers to the library. Articles can have more the one authors */
BookbuchA=newBook("Dragons of Eden","Carl Sagan","1977-05-13","Speculations on the evolution of human intelligence","1.cosmic calendar 2.gene and brain");
BookbuchB=newBook("how to Write a Thesis","Rowena Murray","2025-10-20","Providing down-to-earth guidance to help students shape their theses","1. academic writing 2.Goal Setting 3. Starting to write");
ArticleartA=newArticle("The hardest problem in computer science",Arrays.asList("Rumwick","Second Author"),"2016-07-02","The problem is, of course, naming.","Arrays, list and Pointers");
/* print customers before and after sorting after likecount */
//System.out.println(bib.getCustomers());
bib.sortAfterLikes(bib.getCustomers());
System.out.println("Customer sorted ascending; "+bib.getCustomers());//likeCount or other Attributes can be showed by editing the toString method of Customer
/* check methods of Validation Class. returns true or false respectively if a condition is met or not */
System.out.println("Name Validation outcome is "+Validation.isValidName(kundeA.getName()));
System.out.println("Title Validation outcome is "+Validation.isValidTitle(buchB.getTitle()));//lowercase letter
System.out.println("Email Validation outcome is "+Validation.isValidEmail(kundeC.getEmail()));//email without @
System.out.println("Summery Validation outcome is "+Validation.isValidSummery(buchA.getSummery()));
System.out.println("Date Validation outcome is "+Validation.isValidPublicationDate(buchA.getDateOfPublication()));
/* MetaValidation */
System.out.println("Fields Validation outcome is "+MetaValidator.ValidateFieldsNames());//dateofpublication in Book and Summery in Article violate the conditions
System.out.println("Methods Validation outcome is "+MetaValidator.ValidateMethodsNames());