FileAtrRowBean.java

package sk.iway.iwcm.filebrowser;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import sk.iway.iwcm.DB;

/**
 *  Riadok tabulky atributov
 *
 *@Title        WebJET
 *@Company      Interway s.r.o. (www.interway.sk)
 *@Copyright    Interway s.r.o. (c) 2001-2002
 *@author       $Author: jeeff $
 *@version      $Revision: 1.2 $
 *@created      Nedeľe, 2003, december 28
 *@modified     $Date: 2004/02/25 22:09:58 $
 */
public class FileAtrRowBean
{

	private List<FileAtrBean> atrList;
	private String fileName;
	private String link;

	/**
	 *  Gets the atrList attribute of the FileAtrRowBean object
	 *
	 *@return    The atrList value
	 */
	public List<FileAtrBean> getAtrList()
	{
		if (atrList == null)
		{
			atrList = new ArrayList<>();
		}
		return atrList;
	}

	public String getAtrValue(int atrId)
	{
		for (FileAtrBean atr : getAtrList())
		{
			if (atr.getAtrId() == atrId)
			{
				return(atr.getValue());
			}
		}
		return(null);
	}

	/**
	 *  Adds a feature to the Atr attribute of the FileAtrRowBean object
	 *
	 *@param  atr  The feature to be added to the Atr attribute
	 */
	public void addAtr(FileAtrBean atr)
	{
		getAtrList().add(atr);
	}

	/**
	 *  Rozparsuje meno parametra, ktory je vo formate atrs_TYP_MENO, kde TYP je
	 *  sposob vyhodnotenia (SS-substring, EQ-equal, LT-less than,GT-greater
	 *  than)
	 *
	 *@param  param
	 *@return
	 */
	private String[] parseParam(String param)
	{
		String[] ret = null;
		StringTokenizer st = new StringTokenizer(param, "_");
		if (st.countTokens() > 2)
		{
			ret = new String[2];
			//atrs_
			st.nextToken();
			//typ
			ret[0] = st.nextToken();
			//meno
			ret[1] = st.nextToken();
		}
		return (ret);
	}

	/**
	 *  vrati true, ak je treba tento riadok vymazat (nevyhovuje podmienke)
	 *
	 *@param  param
	 *@param  paramValue
	 *@return
	 */
	public boolean mustRemove(String param, String paramValue)
	{
		//rozparsuj param na hodnoty
		String[] apv = parseParam(param);
		paramValue = DB.internationalToEnglish(paramValue).toLowerCase();
		if (apv != null)
		{
			String type = apv[0].toUpperCase();
			String name = DB.internationalToEnglish(apv[1]);
			String atrValue;
			int iAtrValue;
			int iParamValue;

			for (FileAtrBean atrBean : atrList)
			{
				if (DB.internationalToEnglish(atrBean.getAtrName()).equalsIgnoreCase(name))
				{
					if ("SS".equals(type))
					{
						//v tabulke sa musi nachadzat substring
						atrValue = DB.internationalToEnglish(atrBean.getValue()).toLowerCase();
						if (atrValue.indexOf(paramValue) == -1)
						{
							//Logger.println(this,"MUST REMOVE: " + atrValue + " " + paramValue);
							return (true);
						}
					}
					else if ("EQ".equals(type))
					{
						//v tabulke sa musi nachadzat substring
						atrValue = DB.internationalToEnglish(atrBean.getValue()).toLowerCase();
						if (atrValue.equalsIgnoreCase(paramValue) == false)
						{
							//Logger.println(this,"MUST REMOVE: " + atrValue + " " + paramValue);
							return (true);
						}
					}
					else if ("LT".equals(type))
					{
						//v tabulke sa musi nachadzat substring
						atrValue = DB.internationalToEnglish(atrBean.getValue()).toLowerCase();
						iAtrValue = atrBean.getValueInt();
						try
						{
							iParamValue = Integer.parseInt(paramValue);
							//zachovavam len to co je mensie rovne ako hodnota
							//teda vyhadzujem to co je vacsie
							if (iAtrValue > iParamValue)
							{
								//Logger.println(this,"MUST REMOVE: " + atrValue + " " + paramValue);
								return (true);
							}
						}
						catch (Exception ex)
						{

						}
					}
					else if ("GT".equals(type))
					{
						//v tabulke sa musi nachadzat substring
						atrValue = DB.internationalToEnglish(atrBean.getValue()).toLowerCase();
						iAtrValue = atrBean.getValueInt();
						try
						{
							iParamValue = Integer.parseInt(paramValue);
							//zachovavam len to co je vacsie ako hodnota
							if (iAtrValue < iParamValue)
							{
								//Logger.println(this,"MUST REMOVE: " + atrValue + " " + paramValue);
								return (true);
							}
						}
						catch (Exception ex)
						{

						}
					}
				}
			}
		}

		//iteruj po atributoch a najdi atribut s danym menom

		return (false);
	}
	public void setFileName(String fileName)
	{
		this.fileName = fileName;
	}
	public String getFileName()
	{
		return fileName;
	}
	public void setLink(String link)
	{
		this.link = link;
	}
	public String getLink()
	{
		return link;
	}
}