assureEJBLocalHomeInterface(localHome, cl);
boolean isSession = "Session".equals(getStringValue(ejbLocalRef.getEjbRefType()));
String ejbLink = null;
GerEjbLocalRefType localRef = (GerEjbLocalRefType) ejbLocalRefMap.get(ejbRefName);
if (localRef != null && localRef.isSetEjbLink()) {
ejbLink = localRef.getEjbLink();
} else if (ejbLocalRef.isSetEjbLink()) {
ejbLink = getStringValue(ejbLocalRef.getEjbLink());
}
Reference ejbReference;
if (ejbLink != null) {
ejbReference = refContext.getEJBLocalRef(moduleURI, ejbLink, isSession, localHome, local, ejbContext);
} else if (localRef != null) {
if (localRef.isSetTargetName()) {
ejbReference = refContext.getEJBLocalRef(getStringValue(localRef.getTargetName()), isSession, localHome, local);
} else {
String containerId = null;
try {
containerId = NameFactory.getEjbComponentNameString(getStringValue(localRef.getDomain()),
getStringValue(localRef.getServer()),
getStringValue(localRef.getApplication()),
getStringValue(localRef.getModule()),
getStringValue(localRef.getName()),
getStringValue(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 {