Changeset 6002 in josm for trunk/src/com/kitfox/svg/xml/XMLParseUtil.java
- Timestamp:
- 2013-06-11T01:01:28+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/kitfox/svg/xml/XMLParseUtil.java
r4256 r6002 1 1 /* 2 * XMLParseUtil.java 2 * SVG Salamander 3 * Copyright (c) 2004, Mark McKay 4 * All rights reserved. 3 5 * 6 * Redistribution and use in source and binary forms, with or 7 * without modification, are permitted provided that the following 8 * conditions are met: 4 9 * 5 * The Salamander Project - 2D and 3D graphics libraries in Java 6 * Copyright (C) 2004 Mark McKay 10 * - Redistributions of source code must retain the above 11 * copyright notice, this list of conditions and the following 12 * disclaimer. 13 * - Redistributions in binary form must reproduce the above 14 * copyright notice, this list of conditions and the following 15 * disclaimer in the documentation and/or other materials 16 * provided with the distribution. 7 17 * 8 * This library is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Lesser General Public 10 * License as published by the Free Software Foundation; either 11 * version 2.1 of the License, or (at your option) any later version. 12 * 13 * This library is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public 19 * License along with this library; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * 22 * Mark McKay can be contacted at mark@kitfox.com. Salamander and other 23 * projects can be found at http://www.kitfox.com 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 22 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 23 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 27 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 29 * OF THE POSSIBILITY OF SUCH DAMAGE. 30 * 31 * Mark McKay can be contacted at mark@kitfox.com. Salamander and other 32 * projects can be found at http://www.kitfox.com 24 33 * 25 34 * Created on February 18, 2004, 1:49 PM … … 28 37 package com.kitfox.svg.xml; 29 38 39 import com.kitfox.svg.SVGConst; 30 40 import org.w3c.dom.*; 31 41 import java.awt.*; … … 34 44 import java.util.regex.*; 35 45 import java.lang.reflect.*; 46 import java.util.logging.Level; 47 import java.util.logging.Logger; 36 48 37 49 /** … … 140 152 catch (StringIndexOutOfBoundsException e) 141 153 { 142 System.err.println("XMLParseUtil: regex parse problem: '" + val + "'");143 e.printStackTrace();154 Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING, 155 "XMLParseUtil: regex parse problem: '" + val + "'", e); 144 156 } 145 157 … … 537 549 538 550 ReadableXMLElement newObj = null; 539 try { newObj = (ReadableXMLElement)classType.newInstance(); } 540 catch (Exception e) { e.printStackTrace(); continue; } 551 try 552 { 553 newObj = (ReadableXMLElement)classType.newInstance(); 554 } 555 catch (Exception e) 556 { 557 Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING, null, e); 558 continue; 559 } 541 560 newObj.read(ele, docRoot); 542 561 … … 567 586 HashMap retMap = new HashMap(); 568 587 569 /*570 Class[] params = {Element.class, URL.class};571 Method loadMethod = null;572 try { loadMethod = classType.getMethod("load", params); }573 catch (Exception e) { e.printStackTrace(); return null; }574 575 */576 588 NodeList nl = root.getChildNodes(); 577 589 int size = nl.getLength(); … … 584 596 585 597 ReadableXMLElement newObj = null; 586 try { newObj = (ReadableXMLElement)classType.newInstance(); } 587 catch (Exception e) { e.printStackTrace(); continue; } 598 try 599 { 600 newObj = (ReadableXMLElement)classType.newInstance(); 601 } 602 catch (Exception e) 603 { 604 Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING, null, e); 605 continue; 606 } 588 607 newObj.read(ele, docRoot); 589 /* 590 Object[] args = {ele, source}; 591 Object obj = null; 592 try { obj = loadMethod.invoke(null, args); } 593 catch (Exception e) { e.printStackTrace(); } 594 595 */ 608 596 609 if (newObj == null) continue; 597 610 … … 614 627 615 628 HashSet retSet = new HashSet(); 616 617 /*618 Class[] params = {Element.class, URL.class};619 Method loadMethod = null;620 try { loadMethod = classType.getMethod("load", params); }621 catch (Exception e) { e.printStackTrace(); return null; }622 */623 629 624 630 NodeList nl = root.getChildNodes(); … … 632 638 633 639 ReadableXMLElement newObj = null; 634 try { newObj = (ReadableXMLElement)classType.newInstance(); } 635 catch (Exception e) { e.printStackTrace(); continue; } 640 try 641 { 642 newObj = (ReadableXMLElement)classType.newInstance(); 643 } 644 catch (Exception e) 645 { 646 Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING, null, e); 647 continue; 648 } 636 649 newObj.read(ele, docRoot); 637 /* 638 Object[] args = {ele, source}; 639 Object obj = null; 640 try { obj = loadMethod.invoke(null, args); } 641 catch (Exception e) { e.printStackTrace(); } 642 */ 643 644 if (newObj == null) continue; 650 651 if (newObj == null) 652 { 653 continue; 654 } 645 655 646 656 retSet.add(newObj); … … 672 682 673 683 ReadableXMLElement newObj = null; 674 try { newObj = (ReadableXMLElement)classType.newInstance(); } 675 catch (Exception e) { e.printStackTrace(); continue; } 684 try 685 { 686 newObj = (ReadableXMLElement)classType.newInstance(); 687 } 688 catch (Exception e) 689 { 690 Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING, null, e); 691 continue; 692 } 676 693 newObj.read(ele, docRoot); 677 694 … … 790 807 public static HashMap parseStyle(String styleString, HashMap map) { 791 808 final Pattern patSemi = Pattern.compile(";"); 792 final Pattern patColonSpace = Pattern.compile(":");793 794 //Strips left and right whitespace795 final Matcher matcherContent = Pattern.compile("\\s*([^\\s](.*[^\\s])?)\\s*").matcher("");796 809 797 810 String[] styles = patSemi.split(styleString); … … 804 817 } 805 818 806 String[] vals = patColonSpace.split(styles[i]); 807 808 matcherContent.reset(vals[0]); 809 matcherContent.matches(); 810 vals[0] = matcherContent.group(1); 811 812 matcherContent.reset(vals[1]); 813 matcherContent.matches(); 814 vals[1] = matcherContent.group(1); 815 816 map.put(vals[0], new StyleAttribute(vals[0], vals[1])); 819 int colon = styles[i].indexOf(':'); 820 if (colon == -1) 821 { 822 continue; 823 } 824 825 String key = styles[i].substring(0, colon).trim(); 826 String value = styles[i].substring(colon + 1).trim(); 827 828 map.put(key, new StyleAttribute(key, value)); 817 829 } 818 830
Note:
See TracChangeset
for help on using the changeset viewer.