Package org.springframework.integration.samples.jdbc

Source Code of org.springframework.integration.samples.jdbc.Main

/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.integration.samples.jdbc;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Scanner;

import org.apache.log4j.Logger;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.samples.jdbc.service.PersonService;


/**
* Starts the Spring Context and will initialize the Spring Integration routes.
*
* @author Gunnar Hillert
* @author Amol Nayak
* @version 1.0
*
*/
public final class Main {

  private static final Logger LOGGER = Logger.getLogger(Main.class);

  private Main() { }

  /**
   * Load the Spring Integration Application Context
   *
   * @param args - command line arguments
   */
  public static void main(final String... args) {

    LOGGER.info("\n========================================================="
          + "\n                                                         "
          + "\n          Welcome to Spring Integration!                 "
          + "\n                                                         "
          + "\n    For more information please visit:                   "
          + "\n    http://www.springsource.org/spring-integration       "
          + "\n                                                         "
          + "\n=========================================================" );

    final AbstractApplicationContext context =
        new ClassPathXmlApplicationContext("classpath:META-INF/spring/integration/*-context.xml");

    context.registerShutdownHook();

    final Scanner scanner = new Scanner(System.in);


    final PersonService personService = context.getBean(PersonService.class);

    LOGGER.info("\n========================================================="
          + "\n                                                         "
          + "\n    Please press 'q + Enter' to quit the application.    "
          + "\n                                                         "
          + "\n=========================================================" );

    System.out.println("Please enter a choice and press <enter>: ");
    System.out.println("\t1. Find person details");
    System.out.println("\t2. Create a new person detail");
    System.out.println("\tq. Quit the application");
    System.out.print("Enter you choice: ");
    while (true) {
      final String input = scanner.nextLine();
      if("1".equals(input.trim())) {
        getPersonDetails(scanner, personService);
      } else if("2".equals(input.trim())) {
        createPersonDetails(scanner,personService);
      } else if("q".equals(input.trim())) {
        break;
      } else {
        System.out.println("Invalid choice\n\n");
      }

      System.out.println("Please enter a choice and press <enter>: ");
      System.out.println("\t1. Find person details");
      System.out.println("\t2. Create a new person detail");
      System.out.println("\tq. Quit the application");
      System.out.print("Enter you choice: ");
    }

    LOGGER.info("Exiting application...bye.");

    System.exit(0);

  }

  private static void createPersonDetails(final Scanner scanner,PersonService service) {
    while(true) {
      System.out.print("\nEnter the Person's name:");
      String name = scanner.nextLine();
      Gender gender;
      while(true) {
        System.out.print("Enter the Person's gender(M/F):");
        String genderStr = scanner.nextLine();
        if("m".equalsIgnoreCase(genderStr) || "f".equalsIgnoreCase(genderStr)) {
          gender = Gender.getGenderByIdentifier(genderStr.toUpperCase());
          break;
        }
      }
      Date dateOfBirth;
      SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
      while(true) {
        System.out.print("Enter the Person's Date of birth in DD/MM/YYYY format:");
        String dobStr = scanner.nextLine();
        try {
          dateOfBirth = format.parse(dobStr);
          break;
        } catch (ParseException e) {
          //Silently suppress and ask to enter details again
        }
      }

      Person person = new Person();
      person.setDateOfBirth(dateOfBirth);
      person.setGender(gender);
      person.setName(name);
      person = service.createPerson(person);
      System.out.println("Created person record with id: " + person.getPersonId());
      System.out.print("Do you want to create another person? (y/n)");
      String choice  = scanner.nextLine();
      if(!"y".equalsIgnoreCase(choice))
        break;
    }
  }
  /**
   * @param service
   * @param input
   */
  private static void getPersonDetails(final Scanner scanner,final PersonService service) {
    while(true) {
      System.out.print("Please enter the name of the person and press<enter>: ");
      String input = scanner.nextLine();
      final List<Person> personList = service.findPersonByName(input);
      if(personList != null && !personList.isEmpty()) {
        for(Person person:personList) {
          System.out.print(
              String.format("Person found - Person Id: '%d', Person Name is: '%s',  Gender: '%s'",
                      person.getPersonId(),person.getName(), person.getGender()));
          System.out.println(String.format(", Date of birth: '%1$td/%1$tm/%1$tC%1$ty'", person.getDateOfBirth()));
        }
      } else {
        System.out.println(
            String.format("No Person record found for name: '%s'.", input));
      }
      System.out.print("Do you want to find another person? (y/n)");
      String choice  = scanner.nextLine();
      if(!"y".equalsIgnoreCase(choice))
        break;
    }

  }
}
TOP

Related Classes of org.springframework.integration.samples.jdbc.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.