From: yukihane Date: Mon, 22 Aug 2011 23:23:08 +0000 (+0900) Subject: コメント中間ファイル生成メソッドが失敗した場合は例外で戻す X-Git-Tag: test20110903_ver2.a.0~168 X-Git-Url: http://git.sourceforge.jp/view?p=coroid%2Finqubus.git;a=commitdiff_plain;h=dfb9a7edcac6b0ec05449ae000606c1e956e4a56 コメント中間ファイル生成メソッドが失敗した場合は例外で戻す --- diff --git a/frontend/src/saccubus/conv/ConvertToVideoHook.java b/frontend/src/saccubus/conv/ConvertToVideoHook.java index c0c3038..4991c29 100644 --- a/frontend/src/saccubus/conv/ConvertToVideoHook.java +++ b/frontend/src/saccubus/conv/ConvertToVideoHook.java @@ -1,8 +1,6 @@ package saccubus.conv; import java.io.*; -import java.util.logging.Level; -import java.util.logging.Logger; import org.xml.sax.*; import javax.xml.parsers.*; @@ -26,41 +24,28 @@ import javax.xml.parsers.*; * @author 未入力 * @version 1.0 */ -public class ConvertToVideoHook { +public final class ConvertToVideoHook { - private static final Logger logger = Logger.getLogger(ConvertToVideoHook.class.getName()); + private ConvertToVideoHook() { + } - public static boolean convert(File file, File out, String ng_id, - String ng_word) { - try { - Packet packet = new Packet(); - // SAXパーサーファクトリを生成 - SAXParserFactory spfactory = SAXParserFactory.newInstance(); - // SAXパーサーを生成 - SAXParser parser = spfactory.newSAXParser(); - // XMLファイルを指定されたデフォルトハンドラーで処理します - NicoXMLReader nico_reader = null; - try { - nico_reader = new NicoXMLReader(packet, ng_id, ng_word); - } catch (java.util.regex.PatternSyntaxException e) { - logger.log(Level.SEVERE, null, e); - return false; - } - if (nico_reader != null) { - parser.parse(file, nico_reader); - } - // 変換結果の書き込み - FileOutputStream fos = new FileOutputStream(out); - packet.write(fos); - fos.close(); - return true; - } catch (IOException ex) { - logger.log(Level.SEVERE, null, ex); - } catch (SAXException ex) { - logger.log(Level.SEVERE, null, ex); - } catch (ParserConfigurationException ex) { - logger.log(Level.SEVERE, null, ex); - } - return false; + public static void convert(File file, File out, String ng_id, String ng_word) throws IOException { + try { + final Packet packet = new Packet(); + // SAXパーサーファクトリを生成 + final SAXParserFactory spfactory = SAXParserFactory.newInstance(); + // SAXパーサーを生成 + final SAXParser parser = spfactory.newSAXParser(); + // XMLファイルを指定されたデフォルトハンドラーで処理します + final NicoXMLReader nico_reader = new NicoXMLReader(packet, ng_id, ng_word); + + parser.parse(file, nico_reader); + + try (final FileOutputStream fos = new FileOutputStream(out)) { + packet.write(fos); + } + } catch (IOException | SAXException | ParserConfigurationException ex) { + throw new IOException("コメント変換に失敗。ファイル名に使用できない文字が含まれているか正規表現の間違い?", ex); + } } } diff --git a/frontend/src/saccubus/worker/Convert.java b/frontend/src/saccubus/worker/Convert.java index 2cd23b1..a89090b 100644 --- a/frontend/src/saccubus/worker/Convert.java +++ b/frontend/src/saccubus/worker/Convert.java @@ -75,7 +75,7 @@ public class Convert extends SwingWorker { transformedComment = File.createTempFile("vhk", ".tmp", profile.getTempDir()); final HideCondition hide = profile.getNgSetting(); publish(new ConvertProgress("コメントの中間ファイルへの変換中")); - final boolean conv = ConvertToVideoHook.convert(commentFile, transformedComment, hide.getId(), hide. + ConvertToVideoHook.convert(commentFile, transformedComment, hide.getId(), hide. getWord()); if (!conv) { throw new IOException("コメント変換に失敗。ファイル名に使用できない文字が含まれているか正規表現の間違い?");