package org.korsakow.domain.mapper.input; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Collection; import java.util.TreeSet; import javax.xml.xpath.XPathExpressionException; import org.dsrg.soenea.domain.MapperException; import org.korsakow.domain.Keyword; import org.korsakow.domain.KeywordFactory; import org.korsakow.domain.interf.IKeyword; import org.korsakow.ide.util.DomUtil; import org.korsakow.services.finder.KeywordFinder; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class KeywordInputMapper { public static Collection<IKeyword> findByObjectTypeRecursive(String object_type) throws MapperException { Collection<IKeyword> keywords = new TreeSet<IKeyword>(); try { ResultSet rs = null; rs = KeywordFinder.findByObjectTypeRecursive(object_type); while (rs.next()) { keywords.add(KeywordFactory.createClean(rs.getString("value"), rs.getFloat("weight"))); } rs.close(); return keywords; } catch (SQLException e) { throw new MapperException(e); } catch (XPathExpressionException e) { throw new MapperException(e); } } public static Collection<IKeyword> findByObjectRecursive(long parentId) throws MapperException { Collection<IKeyword> keywords = new TreeSet<IKeyword>(); try { ResultSet rs = null; rs = KeywordFinder.findByObjectRecursive(parentId); while (rs.next()) { keywords.add(KeywordFactory.createClean(rs.getString("value"), rs.getFloat("weight"))); } rs.close(); return keywords; } catch (SQLException e) { throw new MapperException(e); } catch (XPathExpressionException e) { throw new MapperException(e); } } public static Collection<IKeyword> findByObjectType(String object_type) throws MapperException { Collection<IKeyword> keywords = new TreeSet<IKeyword>(); try { ResultSet rs = null; rs = KeywordFinder.findByObjectType(object_type); while (rs.next()) { keywords.add(KeywordFactory.createClean(rs.getString("value"), rs.getFloat("weight"))); } rs.close(); return keywords; } catch (SQLException e) { throw new MapperException(e); } catch (XPathExpressionException e) { throw new MapperException(e); } } public static Collection<IKeyword> findByObject(long object_id) throws MapperException { Collection<IKeyword> keywords = new TreeSet<IKeyword>(); try { ResultSet rs = null; rs = KeywordFinder.findByObject(object_id); while (rs.next()) { keywords.add(KeywordFactory.createClean(rs.getString("value"), rs.getFloat("weight"))); } rs.close(); return keywords; } catch (SQLException e) { throw new MapperException(e); } catch (XPathExpressionException e) { throw new MapperException(e); } } public static Collection<IKeyword> findAll() throws MapperException { Collection<IKeyword> keywords = new TreeSet<IKeyword>(); try { NodeList nl = KeywordFinder.findAll(); int length = nl.getLength(); for (int i = 0; i < length; ++i) { Element elm = (Element)nl.item(i); String value = DomUtil.getString(elm, "value"); Float weight = DomUtil.getFloat(elm, "weight"); keywords.add(KeywordFactory.createClean(value, weight)); } return keywords; } catch (XPathExpressionException e) { throw new MapperException(e); } } private static Keyword getKeyword(ResultSet rs) throws MapperException, SQLException { Keyword keyword = KeywordFactory.createClean( rs.getString("value"), rs.getFloat("weight") ); return keyword; } }