package org.concord.otrunk.overlay;
import java.net.URL;
import java.util.logging.Logger;
import org.concord.framework.otrunk.OTObject;
import org.concord.otrunk.OTrunkImpl;
public class OTUserOverlayManagerFactory
{
private static final Logger logger = Logger.getLogger(OTUserOverlayManagerFactory.class.getName());
/**
* returns an appropriate instance of an OTUserOverlayManager based on the type of object in the root of the url passed in.
* If the object is an OTOverlay, then it returns an OTUserSingleOverlayManager, otherwise it returns a default OTUserMappedOverlayManager
* @param url
* @param otrunk
* @return
*/
public static OTUserOverlayManager getUserOverlayManager(URL url, OTrunkImpl otrunk) {
if (url != null) {
try {
OTObject externalObject = otrunk.getExternalObject(url, otrunk.getRootObjectService());
if (externalObject instanceof OTOverlay) {
return new OTUserSingleOverlayManager(otrunk);
}
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
if (Boolean.getBoolean("otrunk.intrassession.use_single_overlay")) {
logger.info("Using SINGLE overlay manager");
return new OTUserSingleOverlayManager(otrunk);
}
logger.info("Using MAPPED overlay manager");
return new OTUserMappedOverlayManager(otrunk);
}
}