All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geojsf.mbean.admin.AbstractSldTemplateBean Maven / Gradle / Ivy

The newest version!
package org.geojsf.mbean.admin;

import java.io.Serializable;
import java.util.List;

import org.geojsf.factory.ejb.sld.EjbGeoSldTemplateFactory;
import org.geojsf.interfaces.facade.GeoJsfFacade;
import org.geojsf.interfaces.model.core.GeoJsfCategory;
import org.geojsf.interfaces.model.core.GeoJsfLayer;
import org.geojsf.interfaces.model.core.GeoJsfMap;
import org.geojsf.interfaces.model.core.GeoJsfService;
import org.geojsf.interfaces.model.core.GeoJsfView;
import org.geojsf.interfaces.model.meta.GeoJsfDataSource;
import org.geojsf.interfaces.model.meta.GeoJsfViewPort;
import org.geojsf.interfaces.model.sld.GeoJsfSld;
import org.geojsf.interfaces.model.sld.GeoJsfSldRule;
import org.geojsf.interfaces.model.sld.GeoJsfSldTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.sf.ahtutils.exception.ejb.UtilsConstraintViolationException;
import net.sf.ahtutils.exception.ejb.UtilsLockingException;
import net.sf.ahtutils.exception.ejb.UtilsNotFoundException;
import net.sf.ahtutils.factory.ejb.status.EjbDescriptionFactory;
import net.sf.ahtutils.factory.ejb.status.EjbLangFactory;
import net.sf.ahtutils.interfaces.model.graphic.UtilsGraphic;
import net.sf.ahtutils.interfaces.model.status.UtilsDescription;
import net.sf.ahtutils.interfaces.model.status.UtilsLang;
import net.sf.ahtutils.interfaces.model.status.UtilsStatus;
import net.sf.ahtutils.web.mbean.util.AbstractLogMessage;

public class AbstractSldTemplateBean ,
									GT extends UtilsStatus,
									GS extends UtilsStatus,
									CATEGORY extends GeoJsfCategory,
									SERVICE extends GeoJsfService,
									LAYER extends GeoJsfLayer,
									MAP extends GeoJsfMap,
									VIEW extends GeoJsfView,
									VP extends GeoJsfViewPort,
									DS extends GeoJsfDataSource,
									SLDTEMPLATE extends GeoJsfSldTemplate,
									SLDTYPE extends UtilsStatus,
									SLD extends GeoJsfSld,
									RULE extends GeoJsfSldRule
									
									>
	implements Serializable
{
	private static final long serialVersionUID = 1L;
	final static Logger logger = LoggerFactory.getLogger(AbstractSldTemplateBean.class);
	
	protected EjbLangFactory efLang;
	protected EjbDescriptionFactory efDescription;
	protected EjbGeoSldTemplateFactory efTemplate;
	
	private GeoJsfFacade fGeo;
	
	private String[] langKeys;
	private Class cTemplate;
	
	private List types; public List getTypes() {return types;}
	protected List templates; public List getTemplates(){return templates;}
	protected SLDTEMPLATE template; public SLDTEMPLATE getTemplate() {return template;} public void setTemplate(SLDTEMPLATE template) {this.template = template;}
	
	public void initSuper(String[] langKeys, GeoJsfFacade fGeo, final Class cLang, final Class clDescription,final Class cType, final Class cTemplate)
	{
		this.langKeys=langKeys;
		this.fGeo=fGeo;
		this.cTemplate=cTemplate;
		
		efLang = EjbLangFactory.createFactory(cLang);
		efDescription = EjbDescriptionFactory.createFactory(clDescription);
		efTemplate = EjbGeoSldTemplateFactory.factory(cTemplate);
		
		types = fGeo.all(cType);
		logger.info("Types: "+types.size());
	}
	
	protected void reloadTemplates()
	{
		templates = fGeo.all(cTemplate);
	}
	
	public void selectTemplate() throws UtilsNotFoundException, UtilsConstraintViolationException, UtilsLockingException
	{
		logger.info(AbstractLogMessage.selectEntity(template));
		missingLangsMap();
	}
	protected void missingLangsMap(){}
	
	public void addTemplate()
	{
		logger.info(AbstractLogMessage.addEntity(cTemplate));
		template = efTemplate.build(null,null);
		template.setName(efLang.createEmpty(langKeys));
		template.setDescription(efDescription.createEmpty(langKeys));
	}
	
	public void cancelTemplate()
	{
		template=null;
	}
	
	public void saveTemplate() throws UtilsConstraintViolationException, UtilsLockingException
	{
		logger.info(AbstractLogMessage.saveEntity(template));
		template = fGeo.save(template);
		reloadTemplates();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy