/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * rbarkhouse - 2009-11-25 14:23:25 - v2.0 - initial implementation ******************************************************************************/ package org.eclipse.persistence.oxm.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * This annotation is used to map a back-pointer during the unmarshal operation. * When configuring an @XmlInverseReference, the "mappedBy" attribute must * be set to the field on the reference class that maps to this field. For * example:<br><br> * * <code> *  @XmlRootElement<br> *  public class Employee {<br> *     ...<br> *     @XmlElementWrapper(name="phone-numbers")<br> *     @XmlElement(name="number")<br> *     public List<PhoneNumber> phoneNumbers;<br> *     ...<br> *  }<br><br> * *  public class PhoneNumber {<br> *     ...<br> *     @XmlInverseReference(mappedBy="phoneNumbers")<br> *     public Employee owningEmployee;<br> *     ...<br> *  }<br> * </code> * * <p>By default using @XmlInverseReference will make the property act the * same as @XmlTransient for the marshal operation. You can make the * property writeable by combining it will @XmlElement.</p> * <code> *  public class PhoneNumber {<br> *     ...<br> *     @XmlInverseReference(mappedBy="phoneNumbers")<br> *     @XmlElement<br> *     public Employee owningEmployee;<br> *     ...<br> *  }<br> * </code> */ @Target({ElementType.FIELD, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface XmlInverseReference { String mappedBy(); }