001 /* 002 Copyright (C) 2002 Zachary Medico 003 004 This program is free software; you can redistribute it and/or modify 005 it under the terms of the GNU Lesser General Public License as 006 published by the Free Software Foundation; either version 2 of the 007 License, or (at your option) any later version. 008 009 This program is distributed in the hope that it will be useful, 010 but WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 GNU Lesser General Public License for more details. 013 014 You should have received a copy of the GNU Lesser General Public 015 License along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 017 USA */ 018 019 package org.objectweb.jac.core.parsers.xml; 020 021 import java.util.Vector; 022 import org.apache.log4j.Logger; 023 import org.w3c.dom.*; 024 025 public class ACElementInterpreter implements ElementInterpreter { 026 static Logger logger = Logger.getLogger("xml"); 027 028 public ACElementInterpreter() { 029 } 030 031 public Vector interpret(Element element, Class targetClass) throws Exception 032 { 033 NodeList childNodes = element.getChildNodes(); 034 int length = childNodes.getLength(); 035 Node childNode; 036 String tagName; 037 Vector methods = new Vector(); 038 MethodElementInterpreter meInterpreter = new MethodElementInterpreter(); 039 for (int i=0; i<length; i++) { 040 childNode = childNodes.item(i); 041 if ( childNode instanceof Element ) { 042 Element childElement = (Element)childNode; 043 tagName = childElement.getTagName().intern(); 044 if (tagName.equals("method")) { 045 methods.add(meInterpreter.interpret( childElement, targetClass )); 046 } else { 047 logger.error("Expecting <method> element, found <"+tagName+">"); 048 } 049 } 050 } 051 return methods; 052 } 053 }