001 // This file is part of AceWiki. 002 // Copyright 2008-2012, AceWiki developers. 003 // 004 // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU 005 // Lesser General Public License as published by the Free Software Foundation, either version 3 of 006 // the License, or (at your option) any later version. 007 // 008 // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 010 // Lesser General Public License for more details. 011 // 012 // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If 013 // not, see http://www.gnu.org/licenses/. 014 015 package ch.uzh.ifi.attempto.acewiki.core; 016 017 import java.io.IOException; 018 import java.util.List; 019 020 /** 021 * This exporter generates a table of the lexicon entries in CSV (comma separated values) format. 022 * 023 * @author Tobias Kuhn 024 */ 025 public class LexiconTableExporter extends OntologyExporter { 026 027 protected void writeContent() throws IOException { 028 write("TYPE,HEADWORDS,SERIALIZED\n"); 029 List<OntologyElement> elements = getOntologyElements(); 030 LanguageUtils.sortOntologyElements(elements); 031 for (OntologyElement oe : elements) { 032 write(oe.getInternalType() + ","); 033 write(LanguageUtils.getHeading(oe) + ","); 034 write("\"" + oe.serializeWords().replaceAll("\"", "\"\"") + "\""); 035 write("\n"); 036 } 037 } 038 039 public boolean isApplicable() { 040 return true; 041 } 042 043 public String getName() { 044 return "Lexicon Table"; 045 } 046 047 public String getFileSuffix() { 048 return "-lex.csv"; 049 } 050 051 public String getContentType() { 052 return "text/plain"; 053 } 054 055 }