/******************************************************************************* | |
* Copyright (c) 1998, 2013 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(); | |
} |