001 /** 002 * 003 * Copyright 2004 The Apache Software Foundation 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.geronimo.common; 018 019 /** 020 * A problem with an EJB reference 021 * 022 * @version $Rev: 390932 $ $Date: 2006-04-02 17:45:37 -0700 (Sun, 02 Apr 2006) $ 023 */ 024 public class UnresolvedEJBRefException extends DeploymentException { 025 private final String refName; 026 private final boolean local; 027 private final boolean session; 028 private final String homeInterface; 029 private final String beanInterface; 030 031 public UnresolvedEJBRefException(String refName, boolean local, boolean session, String homeInterface, 032 String beanInterface, boolean foundMultiple) { 033 super(createMessage(refName, local, session, homeInterface, beanInterface, foundMultiple)); 034 this.refName = refName; 035 this.local = local; 036 this.session = session; 037 this.homeInterface = homeInterface; 038 this.beanInterface = beanInterface; 039 } 040 041 public String getRefName() { 042 return refName; 043 } 044 045 public boolean isLocal() { 046 return local; 047 } 048 049 public boolean isSession() { 050 return session; 051 } 052 053 public String getHomeInterface() { 054 return homeInterface; 055 } 056 057 public String getBeanInterface() { 058 return beanInterface; 059 } 060 061 private static String createMessage(String refName, boolean local, boolean session, String homeInterface, 062 String beanInterface, boolean foundMultiple) { 063 StringBuffer msg = new StringBuffer(); 064 if (foundMultiple) { 065 msg.append("Two or more EJBs were found"); 066 } else { 067 msg.append("Could not find an EJB"); 068 } 069 msg.append(" for reference ").append(refName).append(" to a "); 070 msg.append((local ? "local " : "remote ")); 071 msg.append((session ? "session" : "entity")); 072 073 msg.append(" bean that has the home interface ").append(homeInterface); 074 msg.append(" and the ").append(local ? "local" : "remote"); 075 msg.append(" interface ").append(beanInterface); 076 077 return msg.toString(); 078 } 079 }