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 java.util.Iterator; 27 import java.util.Collection; 28 29 /** 30 * Reference interface is the top level of the Reference objects. 31 * The sub-classes are ClassRef and GenClassRef. 32 * @author X. Spengler 33 */ 34 public interface Reference extends TypedElement { 35 /** 36 * Creates a new NameDef object for the current reference class object. 37 * If this NameDef already exists for the current object, it is returned, 38 * in other case, a new NameDef object is created and returned. 39 * @return a new object used to describe the name projection for 40 * the current reference class, or an existing one if it 41 * already exists 42 */ 43 NameDef createRefNameDef(); 44 45 /** 46 * Returns an iterator on existing NameDef for the current object. 47 * If no NameDef object is defined, an empty iterator is returned. 48 * @return an iterator on NameDef object 49 */ 50 Collection getRefNameDef(); 51 52 /** 53 * Returns a NameDef object from a given mappingName. 54 * If the corresponding NameDef exists, it is returned, in other case, null 55 * is returned. 56 * @param mappingName the name of the mapping 57 * @return an existing namedef object if exists, either null 58 */ 59 NameDef getRefNameDef(String mappingName); 60 } 61