package pl.com.bottega.documentmanagement.application; import com.google.common.collect.Lists; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import pl.com.bottega.documentmanagement.api.SignupResultDto; import pl.com.bottega.documentmanagement.api.UserManager; import java.util.Collection; import java.util.Scanner; /** * Created by maciuch on 21.08.16. */ public class DocumentManagementApp extends ConsoleApplication { private ApplicationContext applicationContext; public DocumentManagementApp() { applicationContext = new ClassPathXmlApplicationContext(new String[]{"application.xml"}); promptLogin(); } private void promptLogin() { System.out.print("Login: "); String login = new Scanner(System.in).nextLine(); System.out.print("Password: "); String password = new Scanner(System.in).nextLine(); UserManager userManager = applicationContext.getBean(UserManager.class); SignupResultDto signupResultDto = userManager.login(login, password); if(!signupResultDto.isSuccess()) { System.out.println(signupResultDto.getFailureReason()); promptLogin(); } } @Override protected CommandFactory commandFactory() { return new DocumentManagementCommandFactory(applicationContext); } @Override protected Collection<String> menuItems() { return Lists.newArrayList( "1. Create document", "2. Search documents", "3. Edit document", "4. Verify document" ); } public static void main(String[] args) { new DocumentManagementApp().run(); } }