package com.idega.presentation; import java.util.logging.Level; import javax.el.ValueExpression; import javax.faces.webapp.UIComponentTag; @SuppressWarnings("deprecation") public abstract class ComponentTag extends UIComponentTag { private Object id; protected String getValue(Object value) { String realValue = getTypedValue(value); if (realValue == null && value != null) { log.warning("Unable to convert " + value + " to String, using toString method"); return value.toString(); } return realValue; } @SuppressWarnings("unchecked") protected <T> T getTypedValue(Object value) { if (value == null) { return null; } try { if (value instanceof ValueExpression) { Object realValue = ((ValueExpression) value).getValue(getELContext()); return (T) realValue; } else { return (T) value; } } catch (Throwable e) { log.log(Level.SEVERE, "Error converting " + value + " (" + value.getClass() + ") to requested type!", e); } return null; } @Override public String getId() { if (id == null) { return super.getId(); } return getValue(id); } public void setId(Object id) { this.id = id; } }