⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stockclient.java

📁 关系型数据库 Postgresql 6.5.2
💻 JAVA
字号:
package example.corba;import java.io.*;import java.sql.*;import org.omg.CosNaming.*;/** * This class is the frontend to our mini CORBA application. * * It has no GUI, just a text frontend to keep it simple. * * $Id: StockClient.java,v 1.1 1999/01/25 21:22:03 scrappy Exp $ */public class StockClient{    org.omg.CosNaming.NamingContext nameService;        stock.StockDispenser dispenser;    stock.StockItem	 item;        BufferedReader	 in;        public StockClient(String[] args) {	try {	    // We need this for our IO	    in = new BufferedReader(new InputStreamReader(System.in));	    	    // Initialize the orb	    org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);	    	    // Get a reference to the Naming Service	    org.omg.CORBA.Object nameServiceObj = orb.resolve_initial_references("NameService");	    if(nameServiceObj==null) {		System.err.println("nameServiceObj == null");		return;	    }	    	    nameService = org.omg.CosNaming.NamingContextHelper.narrow(nameServiceObj);	    if(nameService==null) {		System.err.println("nameService == null");		return;	    }	    	    // Resolve the dispenser	    NameComponent[] dispName = {		new NameComponent("StockDispenser","Stock")	    };	    dispenser = stock.StockDispenserHelper.narrow(nameService.resolve(dispName));	    if(dispenser==null) {		System.err.println("dispenser == null");		return;	    }	    	    // Now run the front end.	    run();	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	    System.exit(1);	}    }        public static void main(String[] args) {	new StockClient(args);    }        public void run() {	// First reserve a StockItem	try {	    item = dispenser.reserveItem();	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	    System.exit(1);	}		mainMenu();		// finally free the StockItem	try {	    dispenser.releaseItem(item);	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	    System.exit(1);	}    }        private void mainMenu() {	boolean run=true;	while(run) {	    System.out.println("\nCORBA Stock System\n");	    System.out.println("  1 Display stock item");	    System.out.println("  2 Remove item from stock");	    System.out.println("  3 Put item into stock");	    System.out.println("  4 Order item");	    System.out.println("  5 Display all items");	    System.out.println("  0 Exit");	    int i = getMenu("Main",5);	    switch(i)		{		case 0:		    run=false;		    break;		    		case 1:		    displayItem();		    break;		    		case 2:		    bookOut();		    break;		    		case 3:		    bookIn();		    break;		    		case 4:		    order(0);		    break;		    		case 5:		    displayAll();		    break;		}	}    }        private void displayItem() {	try {	    int id = getMenu("\nStockID to display",item.getLastID());	    if(id>0) {		item.fetchItem(id);		System.out.println("========================================");				String status = "";		if(!item.isItemValid())		    status=" ** Superceded **";				int av = item.getAvailable();				System.out.println("      Stock ID: "+id+status+				   "\nItems Available: "+av+				   "\nItems on order: "+item.getOrdered()+				   "\n   Description: "+item.getDescription());		System.out.println("========================================");				if(av>0)		    if(yn("Take this item out of stock?")) {			int rem=1;			if(av>1)			    rem=getMenu("How many?",av);			if(rem>0)			    item.removeStock(rem);		    }			    }	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	}    }        private void bookOut() {	try {	    int id = getMenu("\nStockID to take out",item.getLastID());	    if(id>0) {		item.fetchItem(id);		int av = item.getAvailable();		if(av>0)		    if(yn("Take this item out of stock?")) {			int rem=1;			if(av>1)			    rem=getMenu("How many?",av);			if(rem>0)			    item.removeStock(rem);		    }		    else {			System.out.println("This item is not in stock.");			int order = item.getOrdered();			if(order>0)			    System.out.println("There are "+item.getOrdered()+" items on order.");			else {			    if(item.isItemValid()) {				System.out.println("You will need to order some more "+item.getDescription());				order(id);			    } else				System.out.println("This item is now obsolete");			}		    }	    } else		System.out.println(item.getDescription()+"\nThis item is out of stock");	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	}    }        // book an item into stock    private void bookIn() {	try {	    int id = getMenu("\nStockID to book in",item.getLastID());	    item.fetchItem(id);	    System.out.println(item.getDescription());	    	    if(item.getOrdered()>0) {		int am = getMenu("How many do you want to book in",item.getOrdered());		if(am>0)		    item.addNewStock(am);	    } else		System.out.println("You don't have any of this item on ordered");	    	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	}    }        // Order an item    private void order(int id) {	try {	    if(id==0)		id = getMenu("\nStockID to order",item.getLastID());	    item.fetchItem(id);	    System.out.println(item.getDescription());	    int am = getMenu("How many do you want to order",999);	    if(am>0)		item.orderStock(am);	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	}    }        private void displayAll() {	try {	    boolean cont=true;	    int nr=item.getLastID();	    String header = "\nId\tAvail\tOrdered\tDescription";	    System.out.println(header);	    for(int i=1;i<=nr && cont;i++) {		item.fetchItem(i);		System.out.println(""+i+"\t"+item.getAvailable()+"\t"+item.getOrdered()+"\t"+item.getDescription());		if((i%20)==0) {		    if((cont=yn("Continue?")))			System.out.println(header);		}	    }	} catch(Exception e) {	    System.out.println(e.toString());	    e.printStackTrace();	}    }        private int getMenu(String title,int max) {	int v=-1;	while(v<0 || v>max) {	    System.out.print(title);	    System.out.print(" [0-"+max+"]: ");	    System.out.flush();	    try {		v = Integer.parseInt(in.readLine());	    } catch(Exception nfe) {		v=-1;	    }	}	return v;    }        private boolean yn(String title) {	try {	    while(true) {		System.out.print(title);		System.out.flush();		String s = in.readLine();		if(s.startsWith("y") || s.startsWith("Y"))		    return true;		if(s.startsWith("n") || s.startsWith("N"))		    return false;	    }	} catch(Exception nfe) {	    System.out.println(nfe.toString());	    nfe.printStackTrace();	    System.exit(1);	}	return false;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -