package com.idega.idegaweb;
import com.idega.core.builder.business.ICDomainLookup;
import com.idega.core.builder.data.ICDomain;
/**
* Title: A default implementation of IWApplicationContext
* Description:
* Copyright: Copyright (c) 2002
* Company: idega
* @author <a href="tryggvi@idega.is">Tryggvi Larusson</a>
* @version 1.0
*/
public class IWMainApplicationContext implements IWApplicationContext {
/**
* Comment for <code>serialVersionUID</code>
*/
private static final long serialVersionUID = 5152712252892799540L;
//private final static String IWAPP_CURRENT_DOMAIN_ID = "iw_current_domain_id";
private IWMainApplication iwma;
//ICDomain domain;
protected IWMainApplicationContext(IWMainApplication superApp){
this.iwma=superApp;
}
/**
* @see com.idega.idegaweb.IWApplicationContext#getIWMainApplication()
*/
public IWMainApplication getIWMainApplication() {
return this.iwma;
}
/**
* @see com.idega.idegaweb.IWApplicationContext#getApplicationSettings()
*/
public IWMainApplicationSettings getApplicationSettings() {
return this.iwma.getSettings();
}
/**
* @see com.idega.idegaweb.IWApplicationContext#getSystemProperties()
*/
public IWSystemProperties getSystemProperties() {
return this.iwma.getSystemProperties();
}
/**
* @see com.idega.idegaweb.IWApplicationContext#setApplicationAttribute(String, Object)
*/
public void setApplicationAttribute(
String attributeName,
Object attributeValue) {
this.iwma.setAttribute(attributeName,attributeValue);
}
/**
* @see com.idega.idegaweb.IWApplicationContext#getApplicationAttribute(String)
*/
public Object getApplicationAttribute(String attributeName) {
return this.iwma.getAttribute(attributeName);
}
/**
* @see com.idega.idegaweb.IWApplicationContext#getApplicationAttribute(String,Object)
*/
public Object getApplicationAttribute(String attributeName, Object defaultObjectToReturnIfValueIsNull) {
return this.iwma.getAttribute(attributeName,defaultObjectToReturnIfValueIsNull);
}
/**
* @see com.idega.idegaweb.IWApplicationContext#removeApplicationAttribute(String)
*/
public void removeApplicationAttribute(String attributeName) {
this.iwma.removeAttribute(attributeName);
}
/*
public ICDomain getPersistentDomainByServerName(String cacheKey, String serverName) {
//boolean cachDefaultDomainForThisServerURL = false;
try {
//if(serverName!=null && !"".equals(serverName)){
ICDomain toReturn = (ICDomain)this.domainMap.get(serverName);
if(toReturn==null){
ICDomainHome domainHome = (ICDomainHome)IDOLookup.getHome(ICDomain.class);
ICDomain domain = domainHome.findDomainByServernameOrDefault(serverName);
//Collection coll = domainHome.findAllDomainsByServerName(serverName);
//Iterator iter = coll.iterator();
//if (iter.hasNext()) {
toReturn = domain;
this.domainMap.put(serverName,toReturn);
return toReturn;
//} else {
//System.out.println("Couldn't find domain record for ServerName : "+ serverName);
//cachDefaultDomainForThisServerURL=true;
//}
} else {
return toReturn;
}
} catch (IDOLookupException e1) {
e1.printStackTrace();
} catch (FinderException e1) {
//e1.printStackTrace();
System.out.println("Couldn't find domain record for ServerName : "+ serverName);
//cachDefaultDomainForThisServerURL=true;
}
try {
if(this.domain==null){
ICDomainHome domainHome = (ICDomainHome)IDOLookup.getHome(ICDomain.class);
ICDomain realDomain = domainHome.findFirstDomain();
//ICDomain realDomain = domainHome.findByPrimaryKey(domainID);
//domain = new CachedDomain(realDomain);
this.domain= realDomain;
}
if(cachDefaultDomainForThisServerURL){
this.domainMap.put(serverName,this.domain);
}
return this.domain;
} catch (Exception e) {
try {
ICDomainHome domainHome = (ICDomainHome)IDOLookup.getHome(ICDomain.class);
ICDomain realDomain = domainHome.findFirstDomain();
this.domain= realDomain;
return this.domain;
}
catch (Exception ex) {
ex.printStackTrace();
}
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}
}*/
@Override
public boolean equals(Object o){
if(o instanceof IWApplicationContext){
IWApplicationContext iwac = (IWApplicationContext)o;
return (this.getDomain().equals(iwac.getDomain()));
}
return false;
}
protected ICDomainLookup getDomainLookup(){
return ICDomainLookup.getInstance();
}
public ICDomain getDomain() {
return getDomainLookup().getDefaultDomain();
}
public ICDomain getDomainByServerName(String serverName) {
return getDomainLookup().getDomainByServerName(serverName);
}
}