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.metainfo.api; 25 26 import org.objectweb.jorm.util.api.Loggable; 27 import org.objectweb.util.monolog.api.LoggerFactory; 28 import org.objectweb.util.monolog.api.Logger; 29 30 import java.util.Collection; 31 import java.util.Set; 32 33 /** 34 * A ClassProject object groups together sets of mapping structures resulting 35 * from various mappings of a class and its persistent fields over various 36 * persistent models. 37 * 38 * Example: let us consider three different mapping structures. 39 * A Client class is first mapped over a relational model. The resulting 40 * mapping structures are kept in a Project named "Poseidon". 41 * 42 * The Client class is once more mapped over a relational model. The resulting 43 * mapping structures are kept in a Project named "Corsica". 44 * 45 * The Client class is later on mapped over a data file model. The resulting 46 * mapping structures are kept in the Project named "Poseidon". 47 * 48 */ 49 public interface ClassProject extends MetaObject { 50 /** 51 * Returns the project name. 52 * @return the project name. 53 */ 54 public String getProjectName(); 55 56 /** 57 * Sets the project name. 58 * @param name the project name. 59 */ 60 public void setProjectName(String name); 61 62 /** 63 * Returns a collection of Mapping objects. 64 * @return a collection. 65 */ 66 public Collection getMappings(); 67 68 /** 69 * Returns a Mapping object. 70 * 71 * @param mapperName a mapper name. 72 * @return a collection. 73 */ 74 public Mapping getMapping(String mapperName); 75 76 /** 77 * Returns a set of mapper names. 78 * @return a set of mapper names. 79 */ 80 public Set getMappers(); 81 82 /** 83 * Creates a new Mapping object using a MappingFactory object. 84 * 85 * @param mapperName the name of the mapper. 86 * @return a new Mapping object or an existing one. 87 */ 88 public Mapping createMapping(String mapperName); 89 } 90