📄 modelwriter.java
字号:
/* ======================================================================== * JCommon : a free general purpose class library for the Java(tm) platform * ======================================================================== * * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jcommon/index.html * * This library is free software; you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc. * in the United States and other countries.] * * ---------------- * ModelWriter.java * ---------------- * (C)opyright 2003, 2004, by Thomas Morgner and Contributors. * * Original Author: Thomas Morgner; * Contributor(s): David Gilbert (for Object Refinery Limited); * * $Id: ModelWriter.java,v 1.13 2004/04/26 19:15:48 taqua Exp $ * * Changes * ------------------------- * 21.06.2003 : Initial version * */package org.jfree.xml.generator;import java.io.IOException;import java.io.Writer;import org.jfree.xml.generator.model.ClassDescription;import org.jfree.xml.generator.model.DescriptionModel;import org.jfree.xml.generator.model.IgnoredPropertyInfo;import org.jfree.xml.generator.model.ManualMappingInfo;import org.jfree.xml.generator.model.MultiplexMappingInfo;import org.jfree.xml.generator.model.PropertyInfo;import org.jfree.xml.generator.model.PropertyType;import org.jfree.xml.generator.model.TypeInfo;import org.jfree.xml.generator.model.Comments;import org.jfree.xml.util.ClassModelTags;import org.jfree.xml.writer.AttributeList;import org.jfree.xml.writer.SafeTagList;import org.jfree.xml.writer.XMLWriterSupport;/** * A model writer. */public class ModelWriter { /** The tags that can be split. */ private static SafeTagList safeTags; /** * Returns the safe tag list. * * @return The safe tag list. */ public static SafeTagList getSafeTags() { if (safeTags == null) { safeTags = new SafeTagList(); safeTags.add(ClassModelTags.OBJECTS_TAG); safeTags.add(ClassModelTags.OBJECT_TAG); safeTags.add(ClassModelTags.CONSTRUCTOR_TAG); safeTags.add(ClassModelTags.ELEMENT_PROPERTY_TAG); safeTags.add(ClassModelTags.LOOKUP_PROPERTY_TAG); safeTags.add(ClassModelTags.ATTRIBUTE_PROPERTY_TAG); safeTags.add(ClassModelTags.PARAMETER_TAG); safeTags.add(ClassModelTags.INCLUDE_TAG); safeTags.add(ClassModelTags.IGNORED_PROPERTY_TAG); safeTags.add(ClassModelTags.MANUAL_TAG); safeTags.add(ClassModelTags.MAPPING_TAG); safeTags.add(ClassModelTags.TYPE_TAG); } return safeTags; } /** A support class for writing XML tags. */ private XMLWriterSupport writerSupport; /** A model containing class descriptions. */ private DescriptionModel model; /** * Creates a new model writer instance. */ public ModelWriter() { this.writerSupport = new XMLWriterSupport(getSafeTags(), 0); } /** * Returns the model. * * @return The model. */ public DescriptionModel getModel() { return this.model; } /** * Sets the model to be written. * * @param model the model. */ public void setModel(final DescriptionModel model) { this.model = model; } /** * Writes an XML header. * * @param writer the writer. * * @throws IOException if there is an I/O problem. */ public static void writeXMLHeader(final Writer writer) throws IOException { writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); writer.write(XMLWriterSupport.getLineSeparator()); } /** * Writes a set of comments. * * @param writer the writer. * @param comments a set of comments. * * @throws IOException if there is an I/O problem. */ protected void writeStandardComment(final Writer writer, final Comments comments) throws IOException { if ((comments == null) || (comments.getOpenTagComment() == null)) { writer.write( "<!-- CVSTag: $Id: ModelWriter.java,v 1.13 2004/04/26 19:15:48 taqua Exp $ " + comments + " -->" ); writer.write(XMLWriterSupport.getLineSeparator()); } else { writeComment(writer, comments.getOpenTagComment()); } } /** * Writes a sequence of comments. * * @param writer the writer. * @param comments the comments (<code>null</code> ignored). * * @throws IOException if there is an I/O problem. */ protected void writeComment(final Writer writer, final String[] comments) throws IOException { if (comments == null) { return; } for (int i = 0; i < comments.length; i++) { this.writerSupport.indent(writer, XMLWriterSupport.INDENT_ONLY); writer.write("<!--"); writer.write(comments[i]); writer.write("-->"); writer.write(XMLWriterSupport.getLineSeparator()); } } /** * Writes the open comments from a set of comments. * * @param writer the writer. * @param comments the set of comments. * * @throws IOException if there is an I/O problem. */ protected void writeOpenComment(final Writer writer, final Comments comments) throws IOException { if (comments == null) { return; } if (comments.getOpenTagComment() == null) { return; } writeComment(writer, comments.getOpenTagComment()); } /** * Writes the close comments from a set of comments. * * @param writer the writer. * @param comments the set of comments. * * @throws IOException if there is an I/O problem. */ protected void writeCloseComment(final Writer writer, final Comments comments) throws IOException { if (comments == null) { return; } if (comments.getCloseTagComment() == null) { return; } writeComment(writer, comments.getCloseTagComment()); } /** * Writes a closed (short) tag with eventually nested comments. * * @param writer the writer. * @param tagName the tag name. * @param attributes the attributes. * @param comments the comments. * * @throws IOException if there is an I/O problem. */ protected void writeTag(final Writer writer, final String tagName, final AttributeList attributes, final Comments comments) throws IOException { if (comments == null) { this.writerSupport.writeTag(writer, tagName, attributes, XMLWriterSupport.CLOSE); } else { writeOpenComment(writer, comments);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -