1 /*
2 * This file is a part of CAST project.
3 * (c) Copyright 2007, AGH University of Science & Technology
4 * https://caribou.iisg.agh.edu.pl/trac/cast
5 *
6 * Licensed under the Eclipse Public License, Version 1.0 (the "License").
7 * You may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 * http://www.eclipse.org/legal/epl-v10.html
10 */
11 /*
12 * File: MapLink.java
13 * Created: 2007-09-25
14 * Author: apohllo, entrop
15 * $Id: MapLink.java 2232 2009-01-04 22:59:53Z apohllo $
16 */
17
18 package pl.edu.agh.cast.model.mapper.annotation;
19
20 import java.lang.annotation.Documented;
21 import java.lang.annotation.ElementType;
22 import java.lang.annotation.Inherited;
23 import java.lang.annotation.Retention;
24 import java.lang.annotation.RetentionPolicy;
25 import java.lang.annotation.Target;
26
27 import pl.edu.agh.cast.model.mapper.Direction;
28
29 /**
30 * Map link between two objects to metamodel link. Attributes:
31 * <ul>
32 * <li>name - the name of the link - must be the same at both sides
33 * <li>direction - Direction.SRC (def.)/ Direction.DST - indicates if this is source or destination of the link
34 * <li>load - the class used to load the link (only special cases)
35 * <li>save - the class used to save the link (only special cases)
36 * </ul>
37 *
38 * @author AGH CAST Team
39 *
40 */
41 @Retention(RetentionPolicy.RUNTIME)
42 @Target(ElementType.METHOD)
43 @Documented
44 @Inherited
45 public @interface MapLink {
46 String name();
47
48 Direction direction() default Direction.SRC;
49
50 Class load() default Object.class; // Object.class works as null parameter
51
52 Class save() default Object.class; // Object.class works as null parameter
53 }