package client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;
/**
* @author leopard
* @version 1.0
*/
/**
* @author leopard
*
*/
public class Client {
/**
* Buffer for input
*/
private static BufferedReader in;
/**
* operate
*/
private static String operate;
private static ServiceInterf itemlister;
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
itemlister = new ServiceImpl().getServiceimplPort();
while (true) {
System.out.println("\nPlease input Operate : ");
System.out
.println("1.register\n2.add\n3.query\n4.delete\n5.clear\n"
+ "0.exit");
in = new BufferedReader(new InputStreamReader(System.in));
operate = in.readLine();
if (operate.equals("1")) {
register();
} else if (operate.equals("2")) {
add();
} else if (operate.equals("3")) {
query();
} else if (operate.equals("4")) {
delete();
} else if (operate.equals("5")) {
clear();
} else if (operate.equals("0")) {
break;
}
}
}
/**
* register users
*/
private static void register() {
while (true) {
System.out.println("------------Register------------\n"
+ "Please input [username, password] : " + "\n0.exit");
in = new BufferedReader(new InputStreamReader(System.in));
try {
String str = in.readLine();
if (str.equals("0"))
break;
StringTokenizer token = new StringTokenizer(str, " ");
if (token.countTokens() != 2)
continue;
String username = token.nextToken();
String password = token.nextToken();
System.out.println(itemlister.register(username, password));
break;
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* add users
*/
private static void add() {
while (true) {
System.out.println("------------Add------------\n"
+ "Please input [username, password,start,end,label] : "
+ "\n0.exit");
in = new BufferedReader(new InputStreamReader(System.in));
try {
String str = in.readLine();
if (str.equals("0"))
break;
StringTokenizer token = new StringTokenizer(str, " ");
if (token.countTokens() != 5)
continue;
String username = token.nextToken();
String password = token.nextToken();
String start = token.nextToken();
String end = token.nextToken();
String label = token.nextToken();
if (itemlister.add(username, password, toDate(start),
toDate(end), label)) {
System.out.println("Add successfully!");
break;
} else
System.out.println("Add failed!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* query a user
*/
private static void query() {
while (true) {
System.out.println("------------Query------------\n"
+ "Please input [username, password,start,end] : "
+ "\n0.exit");
in = new BufferedReader(new InputStreamReader(System.in));
try {
String str = in.readLine();
if (str.equals("0"))
break;
StringTokenizer token = new StringTokenizer(str, " ");
if (token.countTokens() != 4)
continue;
String username = token.nextToken();
String password = token.nextToken();
String start = token.nextToken();
String end = token.nextToken();
System.out.println("\r"
+ itemlister.query(username, password, toDate(start),
toDate(end)));
break;
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* delete specific user
*/
private static void delete() {
while (true) {
System.out.println("------------Delete------------\n"
+ "Please input [username, password] : " + "\n0.exit");
in = new BufferedReader(new InputStreamReader(System.in));
try {
String str = in.readLine();
if (str.equals("0"))
break;
StringTokenizer token = new StringTokenizer(str, " ");
if (token.countTokens() != 3)
continue;
String username = token.nextToken();
String password = token.nextToken();
String idStr = token.nextToken();
int id = Integer.parseInt(idStr);
if (itemlister.delete(username, password, id)) {
System.out.println("Delete Successfully!");
break;
} else
System.out.println("Delete Failed!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* clear all users
*/
private static void clear() {
while (true) {
System.out.println("------------Clear------------\n"
+ "Please input [username, password] : " + "\n0.exit");
in = new BufferedReader(new InputStreamReader(System.in));
try {
String str = in.readLine();
if (str.equals("0"))
break;
StringTokenizer token = new StringTokenizer(str, " ");
if (token.countTokens() != 2)
continue;
String username = token.nextToken();
String password = token.nextToken();
if (itemlister.clear(username, password)) {
System.out.println("Clear Successfully!");
break;
} else
System.out.println("Clear Failed!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* @param date
* @return trun a date to string
*/
private static Date toDate(String date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
return sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}