/****************************************************************************** * Product: Adempiere ERP & CRM Smart Business Solution * * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * * under the terms version 2 of the GNU General Public License as published * * by the Free Software Foundation. This program is distributed in the hope * * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * For the text or an alternative of this public license, you may reach us * * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ package org.compiere.process; import java.io.Serializable; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Arrays; import org.compiere.util.DB; import org.compiere.util.Util; /** * Process Parameter * * @author Jorg Janke * @version $Id: ProcessInfoParameter.java,v 1.2 2006/07/30 00:54:44 jjanke Exp $ * * @author Teo Sarca, www.arhipac.ro *
  • FR [ 2430845 ] Add ProcessInfoParameter.getParameterAsBoolean method */ public class ProcessInfoParameter implements Serializable { /** * */ private static final long serialVersionUID = -5396796617617359891L; /** * Construct Parameter * @param parameterName parameter name * @param parameter parameter * @param parameter_To to parameter * @param info info * @param info_To to info */ public ProcessInfoParameter (String parameterName, Object parameter, Object parameter_To, String info, String info_To) { this(parameterName, parameter, parameter_To, info, info_To, false); } // ProcessInfoParameter /** * Construct Parameter * @param parameterName parameter name * @param parameter parameter * @param parameter_To to parameter * @param info info * @param info_To to info * @param isNotClause is not clause */ public ProcessInfoParameter (String parameterName, Object parameter, Object parameter_To, String info, String info_To, boolean isNotClause) { setParameterName (parameterName); setParameter (parameter); setParameter_To (parameter_To); setInfo (info); setInfo_To (info_To); setIsNotClause(isNotClause); } // ProcessInfoParameter private String m_ParameterName; private Object m_Parameter; private Object m_Parameter_To; private String m_Info = ""; private String m_Info_To = ""; private boolean m_IsNotClause; /** * String Representation * @return info */ public String toString() { // From .. To if (m_Parameter_To != null || m_Info_To.length() > 0) return "ProcessInfoParameter[" + m_ParameterName + "=" + m_Parameter + (m_Parameter==null ? "" : "{" + m_Parameter.getClass().getName() + "}") + " (" + m_Info + ") - " + m_Parameter_To + (m_Parameter_To==null ? "" : "{" + m_Parameter_To.getClass().getName() + "}") + " (" + m_Info_To + ")"; // Value return "ProcessInfoParameter[" + m_ParameterName + "=" + m_Parameter + (m_Parameter==null ? "" : "{" + m_Parameter.getClass().getName() + "}") + " (" + m_Info + ")"; } // toString /** * Method getInfo * @return String */ public String getInfo () { return m_Info; } /** * Method getInfo_To * @return String */ public String getInfo_To () { return m_Info_To; } /** * Method getParameter * @return Object */ public Object getParameter () { return m_Parameter; } /** * Method getParameter as Int * @return Object */ public int getParameterAsInt () { if (m_Parameter == null) return 0; if (m_Parameter instanceof Number) return ((Number)m_Parameter).intValue(); BigDecimal bd = new BigDecimal(m_Parameter.toString()); return bd.intValue(); } // getParameterAsInt /** * Method getParameter as Boolean * @return boolean value */ public boolean getParameterAsBoolean () { if (m_Parameter == null) return false; if (m_Parameter instanceof Boolean) return ((Boolean)m_Parameter).booleanValue(); return "Y".equals(m_Parameter); } /** * Method getParameter_To * @return Object */ public Object getParameter_To () { return m_Parameter_To; } /** * Method getParameter as Int * @return Object */ public int getParameter_ToAsInt () { if (m_Parameter_To == null) return 0; if (m_Parameter_To instanceof Number) return ((Number)m_Parameter_To).intValue(); BigDecimal bd = new BigDecimal(m_Parameter_To.toString()); return bd.intValue(); } // getParameter_ToAsInt /** * Method getParameter as Boolean * @return boolean */ public boolean getParameter_ToAsBoolean () { if (m_Parameter_To == null) return false; if (m_Parameter_To instanceof Boolean) return ((Boolean)m_Parameter_To).booleanValue(); return "Y".equals(m_Parameter_To); } /** * Method getParameter_To as Timestamp * @return Timestamp */ public Timestamp getParameter_ToAsTimestamp() { if (m_Parameter_To == null) return null; if (m_Parameter_To instanceof Timestamp) return (Timestamp) m_Parameter_To; return null; } // getParameter_ToAsTimestamp /** * Method getParameter as Timestamp * @return Object */ public Timestamp getParameterAsTimestamp() { if (m_Parameter == null) return null; if (m_Parameter instanceof Timestamp) return (Timestamp) m_Parameter; return null; } // getParameterAsTimestamp /** * Method getParameter To as String * @return Object */ public String getParameter_ToAsString() { if (m_Parameter_To == null) return null; return m_Parameter_To.toString(); } // getParameter_ToAsString /** * Method getParameter as String * @return Object */ public String getParameterAsString() { if (m_Parameter == null) return null; return m_Parameter.toString(); } // getParameterAsString /** * Method getParameter To as BigDecimal * @return Object */ public BigDecimal getParameter_ToAsBigDecimal () { if (m_Parameter_To == null) return null; if (m_Parameter_To instanceof BigDecimal) return (BigDecimal) m_Parameter_To; return new BigDecimal(m_Parameter_To.toString()); } // getParameter_ToAsBigDecimal /** * Method getParameter as BigDecimal * @return Object */ public BigDecimal getParameterAsBigDecimal () { if (m_Parameter == null) return null; if (m_Parameter instanceof BigDecimal) return (BigDecimal) m_Parameter; return new BigDecimal(m_Parameter.toString()); } // getParameterAsBigDecimal /** * Method getParameterName * @return String */ public String getParameterName () { return m_ParameterName; } /** * Method isNotClause * @return boolean */ public boolean isNotClause() { return m_IsNotClause; } /** * Method setInfo * @param Info String */ public void setInfo (String Info) { if (Info == null) m_Info = ""; else m_Info = Info; } /** * Method setInfo_To * @param Info_To String */ public void setInfo_To (String Info_To) { if (Info_To == null) m_Info_To = ""; else m_Info_To = Info_To; } /** * Method setParameter * @param Parameter Object */ public void setParameter (Object Parameter) { m_Parameter = Parameter; } /** * Method setParameter_To * @param Parameter_To Object */ public void setParameter_To (Object Parameter_To) { m_Parameter_To = Parameter_To; } /** * Method setParameterName * @param ParameterName String */ public void setParameterName (String ParameterName) { m_ParameterName = ParameterName; } /** * Method setIsNotClause * @param IsNotClause boolean */ public void setIsNotClause(boolean IsNotClause) { this.m_IsNotClause = IsNotClause; } /** * Return the value of the parameter as a comma separated integer string. Validate every value is an integer and throws NumberFormatException if one of the value is not a valid integer. * @return String */ public String getParameterAsCSVInt() { return getParameterAsCSVInt(getParameterAsString()); } /** * Return the value of the parameter To as a comma separated integer string. Validate every value is an integer and throws NumberFormatException if one of the value is not a valid integer. * @return String */ public String getParameter_ToAsCSVInt() { return getParameterAsCSVInt(getParameter_ToAsString()); } /** * Return the value of the parameter as a validated String (all values between commas must be integer) * @return String */ private String getParameterAsCSVInt(String param) { if (Util.isEmpty(param)) return ""; String[] strarr = param.split(","); for (String par : strarr) Integer.valueOf(par); return param; } /** * Return the value of the parameter as a String with all values between commas surrounded by quotes * @return String */ public String getParameterAsCSVString() { return getParameterAsCSVString(getParameterAsString()); } /** * Return the value of the parameter as a String with all values between commas surrounded by quotes * @return String */ public String getParameter_ToAsCSVString() { return getParameterAsCSVString(getParameter_ToAsString()); } /** * Return the value of the parameter as a String with all values between commas surrounded by quotes * @return String */ private String getParameterAsCSVString(String param) { if (Util.isEmpty(param)) return ""; String[] strarr = ((String) param).split(","); StringBuilder whereValidated = new StringBuilder(); for (String par : strarr) { if (whereValidated.length() > 0) whereValidated.append(","); whereValidated.append(DB.TO_STRING(par)); } return whereValidated.toString(); } /** * Return the value of the parameter as an array of int. Validate every value is an integer and throws NumberFormatException if one of the value is not a valid integer. * @return array of int */ public int[] getParameterAsIntArray() { return getParameterAsIntArray(getParameterAsString()); } /** * Return the value of the parameter To as an array of int. Validate every value is an integer and throws NumberFormatException if one of the value is not a valid integer. * @return array of int */ public int[] getParameterToAsIntArray() { return getParameterAsIntArray(getParameter_ToAsString()); } /** * Return the value of the parameter as an array of int. Validate every value is an integer and throws NumberFormatException if one of the value is not a valid integer. * @return array of int */ private int[] getParameterAsIntArray(String param) { if (Util.isEmpty(param)) return new int[0]; return Arrays.stream(param.split(",")).mapToInt(Integer::parseInt).toArray(); } /** * Return the value of the parameter as an array of String. * @return array of String */ public String[] getParameterAsStringArray() { return getParameterAsStringArray(getParameterAsString()); } /** * Return the value of the parameter To as an array of String. * @return array of String */ public String[] getParameterToAsStringArray() { return getParameterAsStringArray(getParameter_ToAsString()); } /** * Return the value of the parameter as an array of String. * @return array of String */ private String[] getParameterAsStringArray(String param) { ArrayList list = new ArrayList(); if (!Util.isEmpty(param)) { for (String par : param.split(",")) list.add(par); } String[] retValue = new String[list.size()]; list.toArray(retValue); return retValue; } } // ProcessInfoParameter