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

📄 musiclibrarybean.java

📁 ejb20_src_relationships.rar
💻 JAVA
字号:
package examples.ejb20.relationships.bands;

import java.rmi.RemoteException;
import java.sql.Date;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
import java.util.ArrayList;

import javax.ejb.FinderException;
import javax.ejb.RemoveException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.EJBException;
import javax.ejb.CreateException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import javax.rmi.PortableRemoteObject;

public class MusicLibraryBean implements SessionBean {

  private SessionContext ctx;

  private BandHome bandHome;
  private RecordingHome recordingHome;
  private FanClubHome fanClubHome;
  private ArtistHome artistHome;
	
  //
  // business methods
  //

  // Add / Remove Bands

  public void addBand(BandInfo bandInfo) {

    try {
      Band b = bandHome.create(bandInfo.getName(), bandInfo.getFounder(),
        bandInfo.getStartDate());

      FanClub fc = fanClubHome.create(bandInfo.getName(),
        bandInfo.getFounder(), bandInfo.getName() + " Fan Club");

      Set bands = new HashSet();
      bands.add(b);

      Artist ar = artistHome.create(bandInfo.getName(), bands);

    } catch (CreateException ce) {
      throw new EJBException(ce);
    }
  }

  public void addBands(Collection bandInfos) {

    Iterator it = bandInfos.iterator();

    while (it.hasNext()) {
      addBand((BandInfo) it.next());
    }
  }

  public void removeBand(BandPK bandPK) {
    
    try {
      bandHome.remove(bandPK);
    } catch (RemoveException re) {
      throw new EJBException(re);
    }
  }


  public void removeBand(BandInfo bandInfo) {

    BandPK pk = new BandPK(bandInfo.getName(), bandInfo.getFounder());

    removeBand(pk);
  }


  public void removeBands(Collection bandInfos) {

    Iterator it = bandInfos.iterator();

    while (it.hasNext()) {
      removeBand((BandInfo)it.next());
    }
  }

  public void removeBandsThatExist(Collection bandInfos) {

    Iterator it = bandInfos.iterator();

    while (it.hasNext()) {

      BandInfo bandInfo = (BandInfo) it.next();

      BandPK pk = new BandPK(bandInfo.getName(),
        bandInfo.getFounder());

      try {
        Band b = bandHome.findByPrimaryKey(pk);
        b.remove();
      } catch (FinderException ignore) {
      } catch (RemoveException re) {
        throw new EJBException(re);
      }
    }
  }


  public void removeBandsByPK(Collection bandPKs) {

    Iterator it = bandPKs.iterator();

    while (it.hasNext()) {
      removeBand((BandPK)it.next());
    }
  }    

  // Add / Remove Recordings

  public void addRecording(RecordingInfo recInfo) {
    
    try {
      recordingHome.create(recInfo.getTitle(), recInfo.getBand(),
        recInfo.getFounder(), recInfo.getRecordingDate());
    } catch (CreateException ce) {
      throw new EJBException(ce);
    }
  }

  public void addRecordings(Collection recInfos) {

    Iterator it = recInfos.iterator();

    while (it.hasNext()) {
      addRecording((RecordingInfo)it.next());
    }
  }

  public void removeRecording(RecordingPK recPK) {

    try {
      recordingHome.remove(recPK);
    } catch (RemoveException re) {
      throw new EJBException(re);
    }
  }


  public void removeRecording(RecordingInfo recInfo) {

    RecordingPK pk = new RecordingPK(recInfo.getTitle(),
      recInfo.getBand(), recInfo.getFounder());

    removeRecording(pk);
  }


  public void removeRecordings(Collection recInfos) {

    Iterator it = recInfos.iterator();

    while (it.hasNext()) {

      removeRecording((RecordingInfo)it.next());
    }
  }

  public void removeRecordingsThatExist(Collection recInfos) {

    Iterator it = recInfos.iterator();

    while (it.hasNext()) {

      RecordingInfo recInfo = (RecordingInfo) it.next();

      RecordingPK pk = new RecordingPK(recInfo.getTitle(),
        recInfo.getBand(), recInfo.getFounder());

      try {
        Recording r = recordingHome.findByPrimaryKey(pk);
        r.remove();
      } catch (FinderException ignore) {
      } catch (RemoveException re) {
        throw new EJBException(re);
      }
    }
  }

  public void removeRecordingsByPK(Collection recPKs) {

    Iterator it = recPKs.iterator();

    while (it.hasNext()) {

      removeRecording((RecordingPK)it.next());
    }
  }

  public Collection getBands() {
    try {
      Iterator bands = bandHome.findAll().iterator();
      Collection result = new ArrayList();

      while (bands.hasNext()) {
        Band band = (Band)bands.next();
        result.add(band.getPrimaryKey());
      }

      return result;
    } catch (FinderException fe) {
      throw new EJBException(fe);
    }
  }

  public void addRecording(String title, String band, String founder,
    Date recDate) 
  {
    try {
      recordingHome.create(title, band, founder, recDate);
    } catch (CreateException ce) {
      throw new EJBException(ce);
    }
  }
  
  public void removeRecording(String title, String band, String founder) 
  {
    try {
      recordingHome.remove(new RecordingPK(title, band, founder));
    } catch (RemoveException re) {
      throw new EJBException(re);
    }
  }

  public Collection getRecordings(BandPK bandPK) {
    try {
      Collection recordings = new ArrayList();
      Band band = bandHome.findByPrimaryKey(bandPK);

      Iterator records = band.getRecordings().iterator();
      while (records.hasNext()) {
        Recording record = (Recording)records.next();
        recordings.add(record.getTitle());
      }

      return recordings;
    } 
    catch (Exception e) {
      throw new EJBException(e);
    }
  }

  public Collection getRecordingsNotByBand(BandPK badBandPK) {
    try {
      Collection recordings = new ArrayList();
      Band band = bandHome.findByPrimaryKey(badBandPK);

      Iterator records = recordingHome.findNotByBand(band).iterator();
      while (records.hasNext()) {
        Recording record = (Recording)records.next();
        recordings.add(record.getTitle());
      }

      return recordings;
    } 
    catch (Exception e) {
      throw new EJBException(e);
    }
  }

  public Set getAfterDateExcludeBand(Date date, BandPK badBandPK) {
    try {
      Collection recordings = new ArrayList();
      Band band = bandHome.findByPrimaryKey(badBandPK);

      FanClub fanClub = fanClubHome.findByPrimaryKey(
        new FanClubPK(badBandPK.name, badBandPK.founder));

      return fanClub.getAfterDateExcludeBand(date, band);
    } 
    catch (Exception e) {
      throw new EJBException(e);
    }
  }


  public String getWriteUpForBand(BandInfo bandInfo) {

    try {
      Band band = bandHome.findByPrimaryKey(new
        BandPK(bandInfo.getName(), bandInfo.getFounder()));
      return band.getFanClub().getText();
    }
    catch (Exception e) {
      throw new EJBException(e);
    }
  }


  //
  // EJB lifecycle methods
  //
  public void setSessionContext(SessionContext c) {

    ctx = c;

    try {
      Context ic    = new InitialContext();

      bandHome      = (BandHome)      ic.lookup("BandEJB.BandHome");
      recordingHome = (RecordingHome) ic.lookup("RecordingEJB.RecordingHome");
      fanClubHome   = (FanClubHome)   ic.lookup("FanClubEJB.FanClubHome");
      artistHome    = (ArtistHome)    ic.lookup("ArtistEJB.ArtistHome");

    } catch (NamingException ne) {
      throw new EJBException(ne);
    }
  }



  public void ejbCreate() {}

  public void ejbActivate() {}

  public void ejbPassivate() {}

  public void ejbRemove() {}


}











⌨️ 快捷键说明

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