/*
* Copyright 2013 GiavaCms.org.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.giavacms.common.producer;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.enterprise.event.Observes;
import javax.faces.model.SelectItem;
import org.giavacms.common.event.ResetEvent;
import org.jboss.logging.Logger;
/**
*
* @param <T>
*/
public abstract class AbstractProducer implements Serializable
{
private static final long serialVersionUID = 1L;
// ------------------------------------------------
// --- Logger -------------------------------------
// ------------------------------------------------
protected final Logger logger = Logger.getLogger(getClass().getCanonicalName());
@SuppressWarnings("rawtypes")
protected Map<Class, SelectItem[]> items = null;
@SuppressWarnings("rawtypes")
@PostConstruct
public void reset()
{
logger.info("reset");
items = new HashMap<Class, SelectItem[]>();
}
@SuppressWarnings("rawtypes")
public void resetItemsForClass(Class clazz)
{
if (items.containsKey(clazz))
{
items.remove(clazz);
}
}
public void observeReset(@Observes ResetEvent resetEvent)
{
if (resetEvent != null && resetEvent.getObservedClass() != null)
{
resetItemsForClass(resetEvent.getObservedClass());
}
}
}