Update of /var/cvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service In directory james.mmbase.org:/tmp/cvs-serv22011/dataconversion/src/java/com/finalist/cmsc/dataconversion/service
Modified Files: Conversion.java NodeService.java XMLParser.java ConversionThread.java Data.java XMLUtil.java Log Message: Refactoring a little See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service Index: Conversion.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service/Conversion.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- Conversion.java 18 Dec 2008 07:11:44 -0000 1.6 +++ Conversion.java 20 Feb 2009 07:28:53 -0000 1.7 @@ -12,9 +12,7 @@ import org.mmbase.util.logging.Logger; import org.mmbase.util.logging.Logging; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; +import org.w3c.dom.*; import com.finalist.cmsc.dataconversion.dataaccess.DataAccessDelegate; import com.finalist.cmsc.dataconversion.dataaccess.DataAccessor; @@ -23,6 +21,7 @@ /** * the type used to convert + * * @author kevin * */ @@ -32,24 +31,33 @@ private static final Logger log = Logging.getLoggerInstance(Conversion.class.getName()); private static final String IMPORT_FILE = "/WEB-INF/dataconversion/import.xml"; + private Properties properties; + private DataSource dataSource; + private String node; + private ServletContext context; private String table_log = "[Import data from table %s]"; + private String sefRelation_log = "[Import self relation of table %s]"; + private String relation_log = " [Import relation from %s to %s][relation type:%s]"; + private String result_count = " [Total :%s ][ table %s]"; - private String result_rel_count = " [Total :%s ][ table %s]"; - public Conversion( ) { + private String result_rel_count = " [Total :%s ][ table %s]"; + public Conversion() { + // nothing } + public Conversion(Properties properties, ServletContext context) { this.properties = properties; this.context = context; - if(properties.getProperty("node") != null) { + if (properties.getProperty("node") != null) { node = properties.getProperty("node"); } this.dataSource = DataSourceFactory.getDataSource(properties); @@ -58,7 +66,7 @@ /** * the main method used to converse all data from older db */ - public void converseAll() { + public void convertAll() { Document dom = null; long beginTime = System.currentTimeMillis(); try { @@ -66,111 +74,128 @@ dom = XMLParser.parseXMLToDOM(context.getResourceAsStream(IMPORT_FILE)); // XMLParser.DTDValidator(dom); Element element = (Element) dom.getElementsByTagName("import").item(0); - String encoding=element.getAttribute("encoding"); - DataAccessor.encoding=encoding; + String encoding = element.getAttribute("encoding"); + DataAccessor.encoding = encoding; + NodeList list = element.getChildNodes(); - List<Data> sources = new ArrayList<Data>(); + List<Data> clondSources = new ArrayList<Data>(); - int j= list.getLength(); - for (int i = 0; i < j; i++) { + for (int i = 0; i < list.getLength(); i++) { // datatype node - if (list.item(i).getNodeName().equals("datatype")) { + Node itemDatatype = list.item(i); + List<Data> sources = processDatatype(itemDatatype); + clondSources.addAll(sources); + } + NodeService.insertMigrationMappings(clondSources); + createRelationDataType(clondSources); + linkRoot(list); + log.info(String.format( + " ---->#######################finished importing [time:%s mins] #############################", + (System.currentTimeMillis() - beginTime) / (1000 * 60))); + NodeService.insertProperties(properties); + } + catch (Exception e) { + log.error(e.getMessage()); + e.printStackTrace(); + } + } + + private List<Data> processDatatype(Node itemDatatype) throws Exception { + List<Data> sources = new ArrayList<Data>(); + if (itemDatatype.getNodeName().equals("datatype")) { // deal with data type node - log.info(String.format(table_log, XMLUtil.getSourceType((Element) list.item(i)))); - Data sorData = getDataOfDataType((Element) list.item(i)); + log.info(String.format(table_log, XMLUtil.getSourceType((Element) itemDatatype))); + Data sorData = getDataOfDataType((Element) itemDatatype); // load data number from - HashMap<Integer, Integer> keys = DataAccessDelegate.getNumbersOfDataType((Element) list.item(i), - dataSource); + HashMap<Integer, Integer> keys = DataAccessDelegate.getNumbersOfDataType( + (Element) itemDatatype, dataSource); log.info(String.format(result_count, keys.size(), XMLUtil - .getSourceType((Element) list.item(i)))); + .getSourceType((Element) itemDatatype))); sorData.setIdentifiers(keys); sources.add(sorData); - //log.info("did I chage? "+Utils.getXML(list.item(i))); - if (XMLUtil.hasSelfRelation((Element) list.item(i))) { - log.info(String.format(sefRelation_log, XMLUtil.getSourceType((Element) list.item(i)))); - Data relData = getDataOfSelfRelation((Element) list.item(i)); - HashMap<Integer, Integer> keys1 = DataAccessDelegate.getNumbersOfSelfRelation((Element) list.item(i), - dataSource); - log.info(String.format(result_count, keys1.size(), XMLUtil.getSourceType((Element) list - .item(i)))); + + if (XMLUtil.hasSelfRelation((Element) itemDatatype)) { + log.info(String.format(sefRelation_log, XMLUtil.getSourceType((Element) itemDatatype))); + HashMap<Integer, Integer> keys1 = DataAccessDelegate.getNumbersOfSelfRelation( + (Element) itemDatatype, dataSource); + log.info(String.format(result_count, keys1.size(), XMLUtil + .getSourceType((Element) itemDatatype))); if (keys1 == null || keys1.isEmpty()) { - continue; + return sources; } + Data relData = getDataOfSelfRelation((Element) itemDatatype); relData.setIdentifiers(keys1); sources.add(relData); } - Data rootData = getRootData((Element) list.item(i)); - HashMap<Integer, Integer> keysd = DataAccessDelegate - .addChildRelation((Element) list.item(i), dataSource); - log.info(String.format(sefRelation_log, keysd.size())); - rootData.setIdentifiers(keysd); - rootData.setRelateId(Integer.parseInt(node)); + log.info("----> before recur"); - recur((Element) list.item(i), sources); + recur((Element) itemDatatype, sources); log.info("----> after recur"); - relDatatype((Element) list.item(i), sources); - saveType(list, sources, i); + relDatatype((Element) itemDatatype, sources); + saveType(itemDatatype, sources); log.info("entity type and it relation finished........."); + + Data rootData = getRootData((Element) itemDatatype); + HashMap<Integer, Integer> keysd = DataAccessDelegate.addChildRelation( + (Element) itemDatatype, dataSource); + log.info(String.format(sefRelation_log, keysd.size())); + rootData.setIdentifiers(keysd); + rootData.setRelateId(Integer.parseInt(node)); NodeService.insertData(null, rootData, sources, null); } - //end if - clondSources.addAll(sources); - sources.clear(); - } - NodeService.insertMigrationMappings(clondSources); - createRelationDataType(clondSources); - linkRoot(list, j); - log.info(String.format( - " ---->#######################finished importing [time:%s mins] #############################", - (System.currentTimeMillis() - beginTime) / (1000 * 60))); - NodeService.insertProperties(properties); - } catch (Exception e) { - log.error(e.getMessage()); - e.printStackTrace(); - } + // end if + return sources; } - private void linkRoot(NodeList list, int j) { - Map<String, ArrayList<Integer>> rootDatas=new HashMap<String, ArrayList<Integer>>(); - for (int i = 0; i < j; i++) { + private void linkRoot(NodeList list) { + Map<String, ArrayList<Integer>> rootDatas = new HashMap<String, ArrayList<Integer>>(); + for (int i = 0; i < list.getLength(); i++) { if (list.item(i).getNodeName().equals("datatype")) { - String destinationtype=XMLUtil.getDestinationType((Element) list.item(i)); - String sourcetype=XMLUtil.getSourceType((Element) list.item(i)); - DataAccessor da=new DataAccessor(dataSource); - ArrayList<Integer> primerKeys=da.getPrimerKeyList(sourcetype); + String destinationtype = XMLUtil.getDestinationType((Element) list.item(i)); + String sourcetype = XMLUtil.getSourceType((Element) list.item(i)); + DataAccessor da = new DataAccessor(dataSource); + ArrayList<Integer> primerKeys = da.getPrimerKeyList(sourcetype); rootDatas.put(destinationtype, primerKeys); } } - NodeService.linkRootDatas(rootDatas,node); + NodeService.linkRootDatas(rootDatas, node); } private void createRelationDataType(List<Data> sources) throws Exception { - List<String> reskeys = new ArrayList<String>(); for (Data reldata : sources) { if (reldata.getType() == Constants.RELATION_DATA_TYPE) { - reskeys = DataAccessDelegate.getResOfRelation(sources, reldata, dataSource); + List<String> reskeys = DataAccessDelegate.getResOfRelation(reldata, dataSource); NodeService.createRelationData(reskeys, reldata); } } } - private void saveType(NodeList list, List<Data> sources, int i) throws Exception { + private void saveType(Node item, List<Data> sources) throws Exception { + for (Data data : sources) { if (data.getType() != Constants.RELATION_DATA_TYPE) { if (data.getType() == Constants.ENTITY_TYPE) { log.info(String.format(" ----> begin to save type [%s]", data.getDestinationType())); - } else if (data.getType() == Constants.RELATION_TYPE) { - log.info(String.format(" ----> begin to save type [%s]", data.getDestinationRelationType())); - } else if (data.getType() == Constants.SELF_RELATION_TYPE) { - log.info(String.format(" ----> begin to save type [%s]", data.getSourceRelationType())); + } + else + if (data.getType() == Constants.RELATION_TYPE) { + log.info(String.format(" ----> begin to save type [%s]", data + .getDestinationRelationType())); + } + else + if (data.getType() == Constants.SELF_RELATION_TYPE) { + log.info(String.format(" ----> begin to save type [%s]", data + .getSourceRelationType())); } Iterator<Integer> iterator = data.getIdentifiers().keySet().iterator(); while (iterator.hasNext()) { Integer key = iterator.next(); - Element elment = XMLUtil.getElementByTableName(data.getTableName(), (Element) list.item(i)); - DataHolder holder = DataAccessDelegate.getElementByPrimaryKey(elment, dataSource, key, data.getType()); + + Element elment = XMLUtil.getElementByTableName(data.getTableName(), (Element) item); + DataHolder holder = DataAccessDelegate.getElementByPrimaryKey(elment, dataSource, + key, data.getType()); Integer number = NodeService.insertData(holder, data, sources, key); - if (null!=number) { + if (number != null) { data.getIdentifiers().put(key, number); } } @@ -195,42 +220,48 @@ return; } - for (int i = 0; i < relates.length; i++) { - log.info("###################### begin Import table [" + XMLUtil.getSourceType(relates[i]) - + "] ####################"); - log.info(String.format(table_log, XMLUtil.getSourceType(relates[i]))); - Data sorData = getDataOfDataType(relates[i]); - HashMap<Integer, Integer> keys = DataAccessDelegate.getNumbersOfDataType(relates[i], dataSource); - log.info(String.format(result_count, keys.size(), XMLUtil.getSourceType(relates[i]))); + for (Element relatesData : relates) { + log.info("###################### begin Import table [" + + XMLUtil.getSourceType(relatesData) + "] ####################"); + log.info(String.format(table_log, XMLUtil.getSourceType(relatesData))); + + HashMap<Integer, Integer> keys = DataAccessDelegate.getNumbersOfDataType(relatesData, + dataSource); + log.info(String.format(result_count, keys.size(), XMLUtil.getSourceType(relatesData))); if (keys == null || keys.isEmpty()) { continue; } + Data sorData = getDataOfDataType(relatesData); sorData.setIdentifiers(keys); sources.add(sorData); + log.info(String.format(relation_log, XMLUtil.getSourceType(element), XMLUtil - .getSourceType(relates[i]), XMLUtil.getSourceRelationType(relates[i]))); - Data relData = getDataOfRelation(relates[i]); - HashMap<Integer, Integer> keys1 = DataAccessDelegate.getNumbersOfRelation(relates[i], dataSource); - log.info(String.format(result_rel_count, keys1.size(), XMLUtil.getSourceRelationType(relates[i]))); + .getSourceType(relatesData), XMLUtil.getSourceRelationType(relatesData))); + + HashMap<Integer, Integer> keys1 = DataAccessDelegate.getNumbersOfRelation(relatesData, + dataSource); + log.info(String.format(result_rel_count, keys1.size(), XMLUtil + .getSourceRelationType(relatesData))); if (keys1 != null && !keys1.isEmpty()) { + Data relData = getDataOfRelation(relatesData); relData.setIdentifiers(keys1); sources.add(relData); } - log.info("###################### end Import table [" + XMLUtil.getSourceType(relates[i]) + log.info("###################### end Import table [" + XMLUtil.getSourceType(relatesData) + "] ####################"); - recur(relates[i], sources); + recur(relatesData, sources); } } private void relDatatype(Element element, List<Data> sources) throws Exception { Element[] relates = XMLUtil.getRelateChildNodes(element); - for (int i = 0; i < relates.length; i++) { + for (Element relate : relates) { log.info("###################### begin import relateddatatype Type [" - + XMLUtil.getSourceType(relates[i]) + "] ####################"); - Data relData = getDataOfRelationType(relates[i]); + + XMLUtil.getSourceType(relate) + "] ####################"); + Data relData = getDataOfRelationType(relate); sources.add(relData); log.info("###################### end import relateddatatype Type [" - + XMLUtil.getSourceType(relates[i]) + "] ####################"); + + XMLUtil.getSourceType(relate) + "] ####################"); } } @@ -263,7 +294,7 @@ private Data getDataOfSelfRelation(Element element) { Data relData = new Data(Constants.SELF_RELATION_TYPE); - setData(relData,element); + setData(relData, element); relData.setDestinationRelationType(XMLUtil.getSelfRelDesRelationType(element)); relData.setSourceRelationType(XMLUtil.getSelfRelSourceRelationType(element)); return relData; @@ -271,17 +302,17 @@ private Data getDataOfRelation(Element element) { Data relData = new Data(Constants.RELATION_TYPE); - setData(relData,element); + setData(relData, element); relData.setDestinationRelationType(XMLUtil.getDestinationRelationType(element)); - //add ############# - String reverse=XMLUtil.getReverseRelationType(element); + // add ############# + String reverse = XMLUtil.getReverseRelationType(element); relData.setReverse(reverse); return relData; } private Data getRootData(Element element) { Data rootData = new Data(Constants.ROOT_CATEGORY_TYPE); - setData(rootData,element); + setData(rootData, element); rootData.setDestinationRelationType(XMLUtil.getSelfRelDesRelationType(element)); return rootData; } @@ -289,17 +320,17 @@ public static void main(String[] args) throws Exception { Properties properties = new Properties(); -// properties.setProperty("driverClassName", "com.mysql.jdbc.Driver"); -// properties.setProperty("url", "jdbc:mysql://localhost:3306/finalist"); -// properties.setProperty("maxActive", "10"); -// properties.setProperty("maxWait", "500"); -// properties.setProperty("username", "root"); -// properties.setProperty("password", "root"); -// properties.setProperty("defaultAutoCommit", "true"); -// properties.setProperty("defaultReadOnly", "false"); -// properties.setProperty("defaultTransactionIsolation", "READ_COMMITTED"); -// properties.setProperty("defaultCatalog", "test"); -// properties.setProperty("validationQuery", "SELECT DUMMY FROM DUAL"); + // properties.setProperty("driverClassName", "com.mysql.jdbc.Driver"); + // properties.setProperty("url", "jdbc:mysql://localhost:3306/finalist"); + // properties.setProperty("maxActive", "10"); + // properties.setProperty("maxWait", "500"); + // properties.setProperty("username", "root"); + // properties.setProperty("password", "root"); + // properties.setProperty("defaultAutoCommit", "true"); + // properties.setProperty("defaultReadOnly", "false"); + // properties.setProperty("defaultTransactionIsolation", "READ_COMMITTED"); + // properties.setProperty("defaultCatalog", "test"); + // properties.setProperty("validationQuery", "SELECT DUMMY FROM DUAL"); properties.setProperty("driverClassName", "org.postgresql.Driver"); properties.setProperty("url", "jdbc:postgresql://192.168.1.230:5432/roa"); Index: NodeService.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service/NodeService.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -b -r1.7 -r1.8 --- NodeService.java 10 Dec 2008 07:17:55 -0000 1.7 +++ NodeService.java 20 Feb 2009 07:28:53 -0000 1.8 @@ -1,26 +1,12 @@ package com.finalist.cmsc.dataconversion.service; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; +import java.util.*; +import java.util.Map.Entry; import net.sf.mmapps.commons.bridge.RelationUtil; -import org.mmbase.bridge.Cloud; -import org.mmbase.bridge.CloudContext; -import org.mmbase.bridge.ContextProvider; -import org.mmbase.bridge.Node; -import org.mmbase.bridge.NodeList; -import org.mmbase.bridge.NodeManager; -import org.mmbase.bridge.NodeQuery; -import org.mmbase.bridge.Relation; +import org.mmbase.bridge.*; import org.mmbase.bridge.util.SearchUtil; -import org.mmbase.module.core.MMBase; -import org.mmbase.module.core.MMObjectNode; import org.mmbase.util.logging.Logger; import org.mmbase.util.logging.Logging; @@ -42,7 +28,7 @@ * @param data * @param sources * @param key - * @return + * @return mew node number */ public static Integer insertData(DataHolder holder,Data data,List<Data> sources,Integer key) { Cloud cloud = initCloud(); @@ -55,7 +41,7 @@ type = tableName; Collection<Elements> collection = holder.getCollection(); Iterator<Elements> iterator = collection.iterator(); - Object modifyDate = null ; + while (iterator.hasNext()) { Node node = nodeManger.createNode(); Elements element = iterator.next(); @@ -63,21 +49,11 @@ Iterator<Map.Entry<String,Object>> properties = element.getMap().entrySet().iterator(); while (properties.hasNext()) { Map.Entry<String,Object> entry= properties.next(); - if(!entry.getKey().toString().equals("lastmodifieddate")) { - node.setValueWithoutProcess(entry.getKey().toString(), entry.getValue()); - //node.setObjectValue(entry.getKey().toString(), entry.getValue()) ; - } - else { - modifyDate = entry.getValue(); - } + setNodeField(node, entry.getKey().toString(), entry.getValue()); } node.commit(); number = node.getNumber(); - if(modifyDate != null) { - MMObjectNode objectNode = MMBase.getMMBase().getBuilder(tableName).getNode(number); - objectNode.setValue("lastmodifieddate", modifyDate); - objectNode.commit(); - } + if(element.getValue("title") != null) { log.info("->[new node number="+number+"] [title = "+element.getValue("title")+"]"); } @@ -85,7 +61,6 @@ log.info("->[new node number="+number+"]"); } } - nodeManger.commit(); } else if (data.getType() == Constants.RELATION_TYPE) { @@ -115,11 +90,10 @@ Map.Entry<String,Object> entry= properties.next(); String name = entry.getKey().toString(); if(name.equals("pos") && data.getDestinationRelationType().equals("imagerel")) { - relate.setObjectValue(name, "intro") ; + relate.setValue(name, "intro") ; } else { - relate.setValueWithoutProcess(entry.getKey().toString(), entry.getValue()); - // relate.setObjectValue(entry.getKey().toString(), entry.getValue()) ; + setNodeField(relate, entry.getKey().toString(), entry.getValue()); } } relate.commit(); @@ -154,6 +128,15 @@ } return number; } + private static void setNodeField(Node node, String fieldname, Object value) { + Field nodeField = node.getNodeManager().getField(fieldname); + if (nodeField.isReadOnly() || nodeField.getState() == Field.STATE_SYSTEM) { + node.setValueWithoutProcess(fieldname, value); + } + else { + node.setValue(fieldname, value) ; + } + } //createRelationData for the element relateddatatype public static void createRelationData(List<String> reskeys, Data reldata) { Cloud cloud = initCloud(); @@ -272,13 +255,12 @@ for (Data data : clonedSources) { if (data.getType() == Constants.ENTITY_TYPE || data.getType() == Constants.ROOT_CATEGORY_TYPE) { HashMap<Integer, Integer> mappingNumber = data.getIdentifiers(); - for (Iterator iter = mappingNumber.entrySet().iterator(); iter.hasNext();) { - Map.Entry entry = (Map.Entry) iter.next(); + for (Entry<Integer, Integer> entry : mappingNumber.entrySet()) { Node node = manager.createNode(); - Object key = entry.getKey(); - Object val = entry.getValue(); - node.setObjectValue("old_number", key); - node.setObjectValue("new_number", val); + Integer key = entry.getKey(); + Integer val = entry.getValue(); + node.setValue("old_number", key); + node.setValue("new_number", val); node.commit(); } } @@ -295,15 +277,14 @@ public static void linkRootDatas(Map<String, ArrayList<Integer>> rootDatas, String node) { Cloud cloud = initCloud(); Node desNode = cloud.getNode(Integer.parseInt(node)); - for (Iterator iter = rootDatas.entrySet().iterator(); iter.hasNext();) { - Map.Entry entry = (Map.Entry) iter.next(); - ArrayList<Integer> val = (ArrayList<Integer>) entry.getValue(); + for (Entry<String, ArrayList<Integer>> entry : rootDatas.entrySet()) { + ArrayList<Integer> val = entry.getValue(); for (Integer i : val) { int sn=getNewkey(cloud,i); if (sn>0) { Node sourceNode = cloud.getNode(sn); - Relation relate = RelationUtil.createRelation(sourceNode, desNode, "creationrel"); - Relation rel = RelationUtil.createRelation(desNode, sourceNode, "contentrel"); + RelationUtil.createRelation(sourceNode, desNode, "creationrel"); + RelationUtil.createRelation(desNode, sourceNode, "contentrel"); } } } Index: XMLParser.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service/XMLParser.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- XMLParser.java 6 May 2008 11:05:49 -0000 1.1 +++ XMLParser.java 20 Feb 2009 07:28:53 -0000 1.2 @@ -46,9 +46,4 @@ return builder.parse(inputSource); } - public static boolean DTDValidator(Document dom) { - boolean flag = true; - - return flag; - } } Index: ConversionThread.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service/ConversionThread.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- ConversionThread.java 7 Oct 2008 13:05:59 -0000 1.4 +++ ConversionThread.java 20 Feb 2009 07:28:53 -0000 1.5 @@ -25,7 +25,7 @@ synchronized(Job.class) { Conversion conversion = new Conversion(form, context); - conversion.converseAll(); + conversion.convertAll(); } } } Index: Data.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service/Data.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- Data.java 28 Nov 2008 07:30:44 -0000 1.3 +++ Data.java 20 Feb 2009 07:28:53 -0000 1.4 @@ -26,9 +26,6 @@ private String reverse ; - public Data() { - } - public Data(Byte type) { this.type = type; } Index: XMLUtil.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/dataconversion/src/java/com/finalist/cmsc/dataconversion/service/XMLUtil.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- XMLUtil.java 28 Nov 2008 07:30:44 -0000 1.4 +++ XMLUtil.java 20 Feb 2009 07:28:53 -0000 1.5 @@ -1,12 +1,9 @@ package com.finalist.cmsc.dataconversion.service; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Set; import org.apache.commons.lang.StringUtils; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; @@ -106,34 +103,11 @@ } } - public static String[] getAllTableNames(Document dom) { - String[] tableNames = new String[0]; - - Set<String> set = new HashSet<String>(); - NodeList dataType = dom.getElementsByTagName("datatype"); - add(dataType,set); - NodeList relationList = dom.getElementsByTagName("related"); - add(relationList,set); - - return set.toArray(tableNames); - } - - private static void add(NodeList nodes,Set<String> set) { - - for(int i = 0 ; i < nodes.getLength();i++) { - String tableName = ((Element)nodes.item(i)).getAttribute("destinationtype"); - set.add(tableName); - - String rel = ((Element)nodes.item(i)).getAttribute("destinationtype"); - if(StringUtils.isNotEmpty(rel)) { - set.add(rel); - } - } - } public static Element getElementByTableName(String name,Element element) { - if(element.getAttribute("sourcetype").equalsIgnoreCase(name)) + if(element.getAttribute("sourcetype").equalsIgnoreCase(name)) { return element; + } NodeList relationList = element.getElementsByTagName("related"); Element ele = null; for(int i = 0 ; i < relationList.getLength(); i++) { _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs