ips1ap101.lib.core.jsf.component.ConvertidorRecurso.java Source code

Java tutorial

Introduction

Here is the source code for ips1ap101.lib.core.jsf.component.ConvertidorRecurso.java

Source

/*
 * Este programa es software libre; usted puede redistribuirlo y/o modificarlo bajo los terminos
 * de la licencia "GNU General Public License" publicada por la Fundacion "Free Software Foundation".
 * Este programa se distribuye con la esperanza de que pueda ser util, pero SIN NINGUNA GARANTIA;
 * vea la licencia "GNU General Public License" para obtener mas informacion.
 */
package ips1ap101.lib.core.jsf.component;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.validator.ValidatorException;
import ips1ap101.lib.base.interfaces.Recurso;
import ips1ap101.lib.base.interfaces.RecursoCodificable;
import ips1ap101.lib.base.interfaces.RecursoIdentificable;
import ips1ap101.lib.core.constant.Global;
import ips1ap101.lib.core.util.STP;
import org.apache.commons.lang.StringUtils;

/**
 * @author Jorge Campins
 */
public abstract class ConvertidorRecurso implements Converter {

    @Override
    public Recurso getAsObject(FacesContext context, UIComponent component, String value) {
        String codigo = StringUtils.trimToNull(value);
        if (codigo == null) {
            return null;
        }
        try {
            boolean starts = codigo.startsWith(Global.PREFIJO_STRING_ID_RECURSO);
            Object objeto = starts ? STP.getObjetoCodigoRecurso(codigo) : codigo;
            Long id = objeto instanceof Long ? (Long) objeto : null;
            return id == null ? find(codigo) : find(id);
        } catch (Exception ex) {
            if (ex instanceof ValidatorException) {
                throw (ValidatorException) ex;
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, ex.getMessage(), null);
                throw new ValidatorException(message);
            }
        }
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value instanceof RecursoCodificable) {
            RecursoCodificable recurso = (RecursoCodificable) value;
            return recurso.getCodigoRecurso();
        }
        if (value instanceof RecursoIdentificable) {
            RecursoIdentificable recurso = (RecursoIdentificable) value;
            return Global.PREFIJO_STRING_ID_RECURSO + recurso.getIdentificacionRecurso();
        }
        return null;
    }

    protected Recurso find(String codigo) {
        return null;
    }

    protected Recurso find(Long id) {
        return null;
    }

}