From: Olyutorskii Date: Wed, 27 Apr 2011 13:36:05 +0000 (+0900) Subject: XMLパース処理の分離に伴う修正 X-Git-Tag: fromMercurial~32 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f0edcdf2cbff3fad5d1a4f37d5d58f56c7727092;p=jindolf%2FJinCore.git XMLパース処理の分離に伴う修正 --- diff --git a/src/main/java/jp/sourceforge/jindolf/corelib/PreDefAvatar.java b/src/main/java/jp/sourceforge/jindolf/corelib/PreDefAvatar.java index 4472ef3..4110946 100644 --- a/src/main/java/jp/sourceforge/jindolf/corelib/PreDefAvatar.java +++ b/src/main/java/jp/sourceforge/jindolf/corelib/PreDefAvatar.java @@ -8,15 +8,11 @@ package jp.sourceforge.jindolf.corelib; import java.io.IOException; -import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.xml.parsers.DocumentBuilder; -import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; import org.xml.sax.SAXException; /** @@ -81,65 +77,20 @@ public final class PreDefAvatar{ DocumentBuilder builder) throws IOException, SAXException { - Element list = loadAvatarList(builder); - List result; - result = elemToAvatarList(list); - result = Collections.unmodifiableList(result); - return result; - } + List elemList = DomUtils.loadElemList( + builder, XmlResource.I_URL_AVATARDEF, "preDefinedAvatar"); - /** - * プリセットAvatarに関する定義をロードする。 - * @see XmlResource#I_URL_AVATARDEF ロード対象となるXMLリソースのURL - * @param builder DOMビルダ - * @return Avatar定義情報のルート要素 - * @throws IOException IOエラー - * @throws SAXException パースエラー - */ - private static Element loadAvatarList(DocumentBuilder builder) - throws IOException, - SAXException { - InputStream istream = XmlResource.I_URL_AVATARDEF.openStream(); - Document document; - try{ - document = builder.parse(istream); - }finally{ - istream.close(); - } + List result = + new ArrayList(elemList.size()); - Element root = document.getDocumentElement(); - String tagName = root.getTagName(); - if( ! "preDefinedAvatarList".equals(tagName) ){ - throw new SAXException("illegal root " + tagName); - } - - return root; - } - - /** - * 要素内部を探索し、プリセットAvatarを登録する。 - * @param list ルート要素 - * @return プリセットAvatarが登録されたList - * @throws SAXException パースエラー - */ - private static List elemToAvatarList(Element list) - throws SAXException { - NodeList elems = list.getElementsByTagName("preDefinedAvatar"); - int avatarNum = elems.getLength(); - if(avatarNum <= 0){ - throw new SAXException("there is no "); - } - List avatarList = - new ArrayList(avatarNum); - - for(int index = 0; index < avatarNum; index++){ - Node node = elems.item(index); - Element elem = (Element) node; + for(Element elem : elemList){ PreDefAvatar avatar = buildAvatar(elem); - avatarList.add(avatar); + result.add(avatar); } - return avatarList; + result = Collections.unmodifiableList(result); + + return result; } /**