1 /** 2 * JORM: an implementation of a generic mapping system for persistent Java 3 * objects. Two mapping are supported: to RDBMS and to binary files. 4 * Copyright (C) 2001-2003 France Telecom R&D - INRIA 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * 20 * Contact: jorm-team@objectweb.org 21 * 22 */ 23 24 package org.objectweb.jorm.mi2xml.api; 25 26 import org.objectweb.jorm.api.JormConfigurator; 27 import org.objectweb.jorm.api.PException; 28 import org.objectweb.jorm.metainfo.api.MetaObject; 29 import org.objectweb.jorm.util.io.api.TargetHolder; 30 31 /** 32 * Writer generates Jorm specification files (.pd files) from a Class or a CompositeName object. 33 */ 34 public interface Writer { 35 /** 36 * Initializes a BasicDomWriter object. 37 * @param compilerConfigurator a JormConfiguratorImpl object. 38 */ 39 void init(JormConfigurator compilerConfigurator) throws PException; 40 41 /** 42 * This method first builds the DOMTree of a Class or a CompositeName object and 43 * then generates the .pd file by delegation to the XMLSerializer. 44 * @param mo a Class or a CompositeName object. 45 * @param holder The target holder which allows to create files. 46 * @exception PException if an error occurs during the generation. 47 */ 48 void write(MetaObject mo, TargetHolder holder) 49 throws PException; 50 } 51