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

📄 warehouseimpl.java

📁 core java第二卷源代码第三章。欢迎大家下载
💻 JAVA
字号:
/**
   @version 1.01 2001-07-10
   @author Cay Horstmann
*/

import java.io.*;
import java.rmi.*;
import java.util.*;
import java.rmi.server.*;
import java.util.*;

/**
   This class is the implementation for the remote
   Warehouse interface.
*/
public class WarehouseImpl
   extends UnicastRemoteObject
   implements Warehouse
{  
   /**
      Constructs a warehouse implementation.
   */
   public WarehouseImpl()
      throws RemoteException
   {  
      products = new ArrayList();
      coreJavaBook = new ProductImpl("Core Java Book",
         0, 200, Product.BOTH, "Computers");
   }

   /**
      Reads in a set of product descriptions. Each line has t
      the format
      name|sex|age1|age2|hobby, e.g.
      Blackwell Toaster|BOTH|18|200|Household
      @param reader the reader to read from
   */
   public void read(BufferedReader reader) throws IOException
   {
      String line;
      while ((line = reader.readLine()) != null)
      {
         StringTokenizer tokenizer = new StringTokenizer(line, 
            "|");
         String name = tokenizer.nextToken();
         String s = tokenizer.nextToken();         
         int sex = 0;
         if (s.equals("MALE")) sex = Product.MALE;
         else if (s.equals("FEMALE")) sex = Product.FEMALE;
         else if (s.equals("BOTH")) sex = Product.BOTH;
         int age1 = Integer.parseInt(tokenizer.nextToken());
         int age2 = Integer.parseInt(tokenizer.nextToken());
         String hobby = tokenizer.nextToken();
         add(new ProductImpl(name, sex, age1, age2, hobby));
      }      
   }

   /**
      Add a product to the warehouse. Note that this is a local
      method.
      @param p the product to add
   */
   public synchronized void add(ProductImpl p)
   {  
      products.add(p);
   }

   public synchronized ArrayList find(Customer c)
      throws RemoteException
   {  
      ArrayList result = new ArrayList();
      // add all matching products
      for (int i = 0; i < products.size(); i++)
      {  
         ProductImpl p = (ProductImpl)products.get(i);
         if (p.match(c)) result.add(p);
      }
      // add the product that is a good match for everyone
      result.add(coreJavaBook);

      // we reset c just to show that c is a copy of the
      // client object
      c.reset(); 
      return result;
   }

   private ArrayList products;
   private ProductImpl coreJavaBook;
}

⌨️ 快捷键说明

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