assureEJBLocalHomeInterface(localHome, cl);
boolean isSession = "Session".equals(ejbLocalRef.getEjbRefType().getStringValue());
String ejbLink = null;
GerEjbLocalRefType localRef = (GerEjbLocalRefType) ejbLocalRefMap.get(ejbRefName);
if (localRef != null && localRef.isSetEjbLink()) {
ejbLink = localRef.getEjbLink();
} else if (ejbLocalRef.isSetEjbLink()) {
ejbLink = getJ2eeStringValue(ejbLocalRef.getEjbLink());
}
Reference ejbReference;
if (ejbLink != null) {
ejbReference = refContext.getEJBLocalRef(uri, ejbLink, isSession, localHome, local);
} else if (localRef != null) {
if (localRef.isSetTargetName()) {
ejbReference = refContext.getEJBLocalRef(localRef.getTargetName(), isSession, localHome, local);
} else {
String containerId = null;
try {
containerId = NameFactory.getEjbComponentNameString(localRef.getDomain(),
localRef.getServer(),
localRef.getApplication(),
localRef.getModule(),
localRef.getName(),
localRef.getType(),
j2eeContext);
} catch (MalformedObjectNameException e) {
throw new DeploymentException("Could not construct ejb object name: " + localRef.getName(), e);
}
ejbReference = refContext.getEJBLocalRef(containerId, isSession, localHome, local);
}
} else {