sdi-service/src/main/java/org/gcube/spatial/data/sdi/engine/impl/factories/SDIManagerFactory.java

45 lines
1.1 KiB
Java
Raw Normal View History

2020-10-13 17:08:32 +02:00
package org.gcube.spatial.data.sdi.engine.impl.factories;
import javax.inject.Inject;
import org.gcube.spatial.data.sdi.engine.GISManager;
import org.gcube.spatial.data.sdi.engine.GeoNetworkManager;
import org.gcube.spatial.data.sdi.engine.SDIManager;
import org.gcube.spatial.data.sdi.engine.ThreddsManager;
import org.gcube.spatial.data.sdi.engine.impl.SDIManagerImpl;
import org.glassfish.hk2.api.Factory;
import lombok.Synchronized;
public class SDIManagerFactory implements Factory<SDIManager>{
@Override
public void dispose(SDIManager instance) {
// TODO Auto-generated method stub
}
@Override
public SDIManager provide() {
2020-10-13 18:10:00 +02:00
return getInstance(gnManager,gisManager,thManager);
2020-10-13 17:08:32 +02:00
}
2020-10-13 18:10:00 +02:00
private static SDIManager sdiManager=null;
2020-10-13 17:08:32 +02:00
@Inject
private GeoNetworkManager gnManager;
@Inject
private GISManager gisManager;
@Inject
private ThreddsManager thManager;
@Synchronized
2020-10-13 18:10:00 +02:00
private static SDIManager getInstance(GeoNetworkManager gnManager, GISManager gisManager,ThreddsManager thManager) {
2020-10-13 17:08:32 +02:00
if(sdiManager==null)
sdiManager=new SDIManagerImpl(gnManager,thManager,gisManager);
return sdiManager;
}
}