package com.google.code.morphia.annotations;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 * <p>Annotation which helps migrate schemas by loading one of several possible properties in the document into fields or methods.  This is
 * typically used when a field is renamed, allowing the field to be populated by both its current name and any prior names.</p>
 * <p/>
 * <ul> <li>When placed on a field, the additional names (document field) will be checked when this field is loaded.  If the document
 * contains data for more than one of the names, an exception will be thrown. <li>When placed on a parameter to a method that takes a single
 * parameter, the method will be called with the data value.  As with fields, any ambiguity in the data (multiple properties that would
 * cause the method to be called) will produce an exception.  However, {@code @AlsoLoad} on a method parameter *can* be used to override
 * field names and "steal" the value that would otherwise have been set on a field.  This can be useful when changing the type of a
 * field.</li> </ul>
 * <p/>
 * (orig @author Jeff Schnitzer <jeff@infohazard.org> for Objectify)
 *
 * @author Scott Hernandez
 */

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD, ElementType.PARAMETER })
public @interface AlsoLoad {
  String[] value();
}
@@ -490,17 +490,8 @@
 %0A * 
-%3Cul%3E %3Cli%3E
 When
@@ -690,504 +690,8 @@
 wn. 
-%3Cli%3EWhen placed on a parameter to a method that takes a single%0A * parameter, the method will be called with the data value.  As with fields, any ambiguity in the data (multiple properties that would%0A * cause the method to be called) will produce an exception.  However, %7B@code @AlsoLoad%7D on a method parameter *can* be used to override%0A * field names and %22steal%22 the value that would otherwise have been set on a field.  This can be useful when changing the type of a%0A * field.%3C/li%3E %3C/ul%3E%0A * %3Cp/%3E
 %0A * 
@@ -827,16 +827,16 @@
 UNTIME)%0A
+
 @Target(
@@ -858,32 +858,8 @@
 IELD
-, ElementType.PARAMETER 
 %7D)%0Ap

update to reflect that #509 is not an intended use case for this annotation