You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by tb...@apache.org on 2013/12/10 14:50:02 UTC
[07/50] [abbrv] Refactored EdmNavigationProperty annotation
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Building.java
----------------------------------------------------------------------
diff --git a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Building.java b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Building.java
index 488c462..bb50759 100644
--- a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Building.java
+++ b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Building.java
@@ -26,14 +26,13 @@ import org.apache.olingo.odata2.api.annotation.edm.EdmEntityType;
import org.apache.olingo.odata2.api.annotation.edm.EdmKey;
import org.apache.olingo.odata2.api.annotation.edm.EdmNavigationProperty;
import org.apache.olingo.odata2.api.annotation.edm.EdmProperty;
-import org.apache.olingo.odata2.api.annotation.edm.NavigationEnd;
import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
import org.apache.olingo.odata2.api.edm.EdmSimpleTypeKind;
/**
*
*/
-@EdmEntityType(name="Building", namespace=ModelSharedConstants.NAMESPACE_1)
+@EdmEntityType(name = "Building", namespace = ModelSharedConstants.NAMESPACE_1)
@EdmEntitySet(name = "Buildings")
public class Building {
@EdmKey
@@ -41,9 +40,10 @@ public class Building {
private int id;
@EdmProperty
private String name;
+ @EdmProperty(name = "Image", type = EdmSimpleTypeKind.Binary)
private byte[] image;
- @EdmNavigationProperty(name="nb_rooms", association="BuildingRooms",
- to = @NavigationEnd(role = "r_Room", entitySet=Room.class, multiplicity = EdmMultiplicity.MANY))
+ @EdmNavigationProperty(name = "nb_Rooms", toType = Room.class,
+ association = "BuildingRooms", toMultiplicity = EdmMultiplicity.MANY)
private List<Room> rooms = new ArrayList<Room>();
public String getId() {
@@ -73,7 +73,7 @@ public class Building {
public void addRoom(Room room) {
rooms.add(room);
}
-
+
public List<Room> getRooms() {
return rooms;
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Employee.java
----------------------------------------------------------------------
diff --git a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Employee.java b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Employee.java
index e946a5a..2975d1b 100644
--- a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Employee.java
+++ b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Employee.java
@@ -20,44 +20,47 @@ package org.apache.olingo.odata2.ref.annotation.model;
import java.text.DateFormat;
import java.util.Calendar;
+
import org.apache.olingo.odata2.api.annotation.edm.EdmEntitySet;
import org.apache.olingo.odata2.api.annotation.edm.EdmEntityType;
+import org.apache.olingo.odata2.api.annotation.edm.EdmFacets;
+import org.apache.olingo.odata2.api.annotation.edm.EdmKey;
+import org.apache.olingo.odata2.api.annotation.edm.EdmMediaResourceContent;
+import org.apache.olingo.odata2.api.annotation.edm.EdmMediaResourceMimeType;
import org.apache.olingo.odata2.api.annotation.edm.EdmNavigationProperty;
import org.apache.olingo.odata2.api.annotation.edm.EdmProperty;
-import org.apache.olingo.odata2.api.annotation.edm.EdmKey;
-import org.apache.olingo.odata2.api.annotation.edm.NavigationEnd;
-import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
import org.apache.olingo.odata2.api.edm.EdmSimpleTypeKind;
/**
*
*/
-@EdmEntityType(name="Employee", namespace=ModelSharedConstants.NAMESPACE_1)
-@EdmEntitySet(name= "Employees")
+@EdmEntityType(name = "Employee", namespace = ModelSharedConstants.NAMESPACE_1)
+@EdmEntitySet(name = "Employees")
public class Employee {
private static int counter = 1;
@EdmKey
- @EdmProperty(name="EmployeeId", type = EdmSimpleTypeKind.String)
+ @EdmProperty(name = "EmployeeId", type = EdmSimpleTypeKind.String)
private String employeeId;
- @EdmProperty(name="EmployeeName")
+ @EdmProperty(name = "EmployeeName")
private String employeeName;
@EdmProperty
private int age;
- @EdmNavigationProperty(name="ne_Manager", association="ManagerEmployees",
- from = @NavigationEnd(role="r_Employees", entitySet=Manager.class, multiplicity=EdmMultiplicity.MANY))//,
-// to = @NavigationEnd(type = "Manager"))
+ @EdmNavigationProperty(name = "ne_Manager", association = "ManagerEmployees")
private Manager manager;
- @EdmNavigationProperty(name = "ne_Team", association="TeamEmployees",
- from = @NavigationEnd(role = "r_Employees", entitySet = Employee.class, multiplicity = EdmMultiplicity.MANY),
- to = @NavigationEnd(role = "r_Team", entitySet = Team.class)
- )
+ @EdmNavigationProperty(name = "ne_Team", association = "TeamEmployees")
private Team team;
+ @EdmNavigationProperty(name = "ne_Room")
private Room room;
+ @EdmMediaResourceMimeType
private String imageType;
+ @EdmMediaResourceContent
private byte[] image;
+ @EdmProperty(name = "ImageUrl")
private String imageUrl;
+ @EdmProperty(name = "EntryDate", type = EdmSimpleTypeKind.DateTime,
+ facets = @EdmFacets(nullable = true))
private Calendar entryDate;
- @EdmProperty(name="Location")
+ @EdmProperty(name = "Location", facets = @EdmFacets(nullable = false))
private Location location;
public String getId() {
@@ -157,7 +160,7 @@ public class Employee {
@Override
public int hashCode() {
- if(employeeId == null) {
+ if (employeeId == null) {
return 0;
}
return employeeId.hashCode();
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Manager.java
----------------------------------------------------------------------
diff --git a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Manager.java b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Manager.java
index 0fcd152..93974ab 100644
--- a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Manager.java
+++ b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Manager.java
@@ -20,10 +20,11 @@ package org.apache.olingo.odata2.ref.annotation.model;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.olingo.odata2.api.annotation.edm.EdmEntitySet;
import org.apache.olingo.odata2.api.annotation.edm.EdmEntityType;
import org.apache.olingo.odata2.api.annotation.edm.EdmNavigationProperty;
-import org.apache.olingo.odata2.api.annotation.edm.NavigationEnd;
+import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
/**
*
@@ -33,7 +34,7 @@ import org.apache.olingo.odata2.api.annotation.edm.NavigationEnd;
public class Manager extends Employee {
@EdmNavigationProperty(name = "nm_Employees", association = "ManagerEmployees",
- to = @NavigationEnd(role = "r_Employees", entitySet = Employee.class))
+ toMultiplicity = EdmMultiplicity.MANY)
private List<Employee> employees = new ArrayList<Employee>();
public List<Employee> getEmployees() {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Room.java
----------------------------------------------------------------------
diff --git a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Room.java b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Room.java
index 3d61a63..2d9f48e 100644
--- a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Room.java
+++ b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Room.java
@@ -20,12 +20,11 @@ package org.apache.olingo.odata2.ref.annotation.model;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.olingo.odata2.api.annotation.edm.EdmEntitySet;
import org.apache.olingo.odata2.api.annotation.edm.EdmEntityType;
import org.apache.olingo.odata2.api.annotation.edm.EdmNavigationProperty;
import org.apache.olingo.odata2.api.annotation.edm.EdmProperty;
-import org.apache.olingo.odata2.api.annotation.edm.NavigationEnd;
-import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
/**
*
@@ -38,12 +37,9 @@ public class Room extends RefBase {
private Integer seats;
@EdmProperty
private Integer version;
- @EdmNavigationProperty(name="nr_Building", association="BuildingRooms",
- from = @NavigationEnd(role="r_Room", entitySet = Building.class, multiplicity = EdmMultiplicity.MANY))
+ @EdmNavigationProperty(name = "nr_Building", association = "BuildingRooms")
private Building building;
- @EdmNavigationProperty(name="nr_Employees", association="RoomEmployees",
- from = @NavigationEnd(role = "r_Room", entitySet = Room.class, multiplicity = EdmMultiplicity.ONE),
- to = @NavigationEnd(role = "r_Employees", entitySet = Employee.class, multiplicity = EdmMultiplicity.MANY))
+ @EdmNavigationProperty(name = "nr_Employees")
private List<Employee> employees = new ArrayList<Employee>();
public void setSeats(final int seats) {
@@ -82,7 +78,7 @@ public class Room extends RefBase {
@Override
public boolean equals(final Object obj) {
return this == obj
- || obj != null && getClass() == obj.getClass() && id == ((Room) obj).id;
+ || obj != null && getClass() == obj.getClass() && id == ((Room) obj).id;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Team.java
----------------------------------------------------------------------
diff --git a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Team.java b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Team.java
index 1b04c32..7cbe321 100644
--- a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Team.java
+++ b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/model/Team.java
@@ -20,26 +20,23 @@ package org.apache.olingo.odata2.ref.annotation.model;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.olingo.odata2.api.annotation.edm.EdmEntitySet;
import org.apache.olingo.odata2.api.annotation.edm.EdmEntityType;
import org.apache.olingo.odata2.api.annotation.edm.EdmNavigationProperty;
import org.apache.olingo.odata2.api.annotation.edm.EdmProperty;
-import org.apache.olingo.odata2.api.annotation.edm.NavigationEnd;
import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
import org.apache.olingo.odata2.api.edm.EdmSimpleTypeKind;
/**
*
*/
-@EdmEntityType(name="Team", namespace = ModelSharedConstants.NAMESPACE_1)
+@EdmEntityType(name = "Team", namespace = ModelSharedConstants.NAMESPACE_1)
@EdmEntitySet(name = "Teams")
public class Team extends RefBase {
@EdmProperty(type = EdmSimpleTypeKind.Boolean)
private Boolean isScrumTeam;
- @EdmNavigationProperty(name = "nt_Employees", association="TeamEmployees",
-// from = @NavigationEnd(role = "r_Team", type = "Team"),
- to = @NavigationEnd(role = "r_Employees", entitySet = Employee.class, multiplicity = EdmMultiplicity.MANY)
- )
+ @EdmNavigationProperty(name = "nt_Employees", association = "TeamEmployees", toMultiplicity = EdmMultiplicity.MANY)
private List<Employee> employees = new ArrayList<Employee>();
public Boolean isScrumTeam() {
@@ -49,7 +46,7 @@ public class Team extends RefBase {
public void setScrumTeam(final Boolean isScrumTeam) {
this.isScrumTeam = isScrumTeam;
}
-
+
public void addEmployee(Employee e) {
this.employees.add(e);
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/processor/AnnotationPocServiceFactory.java
----------------------------------------------------------------------
diff --git a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/processor/AnnotationPocServiceFactory.java b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/processor/AnnotationPocServiceFactory.java
index 5210466..3870119 100644
--- a/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/processor/AnnotationPocServiceFactory.java
+++ b/odata2-edm-annotation/edm-annotation-webref/src/main/java/org/apache/olingo/odata2/ref/annotation/processor/AnnotationPocServiceFactory.java
@@ -14,8 +14,8 @@
*/
package org.apache.olingo.odata2.ref.annotation.processor;
-import org.apache.olingo.odata2.core.annotation.data.AnnotationValueAccess;
-import org.apache.olingo.odata2.core.annotation.data.AnnotationInMemoryDs;
+import java.util.Calendar;
+
import org.apache.olingo.odata2.api.ODataCallback;
import org.apache.olingo.odata2.api.ODataDebugCallback;
import org.apache.olingo.odata2.api.ODataService;
@@ -28,10 +28,15 @@ import org.apache.olingo.odata2.api.processor.ODataContext;
import org.apache.olingo.odata2.api.processor.ODataErrorCallback;
import org.apache.olingo.odata2.api.processor.ODataErrorContext;
import org.apache.olingo.odata2.api.processor.ODataResponse;
+import org.apache.olingo.odata2.core.annotation.data.AnnotationInMemoryDs;
+import org.apache.olingo.odata2.core.annotation.data.AnnotationValueAccess;
import org.apache.olingo.odata2.core.annotation.data.DataStore;
import org.apache.olingo.odata2.core.annotation.edm.AnnotationEdmProvider;
import org.apache.olingo.odata2.core.annotation.processor.ListsProcessor;
import org.apache.olingo.odata2.ref.annotation.model.Building;
+import org.apache.olingo.odata2.ref.annotation.model.Employee;
+import org.apache.olingo.odata2.ref.annotation.model.Location;
+import org.apache.olingo.odata2.ref.annotation.model.Manager;
import org.apache.olingo.odata2.ref.annotation.model.Photo;
import org.apache.olingo.odata2.ref.annotation.model.ResourceHelper;
import org.apache.olingo.odata2.ref.annotation.model.Room;
@@ -75,7 +80,7 @@ public class AnnotationPocServiceFactory extends ODataServiceFactory {
/*
* Helper classes and methods
*/
-
+
/**
*
*/
@@ -133,6 +138,31 @@ public class AnnotationPocServiceFactory extends ODataServiceFactory {
roomDs.create(createRoom("Big blue room", 40, 1, blueBuilding));
roomDs.create(createRoom("Huge blue room", 120, 1, blueBuilding));
roomDs.create(createRoom("Huge yellow room", 120, 1, yellowBuilding));
+
+ DataStore<Employee> employeeDataStore = dataSource.getDataStore(Employee.class);
+ employeeDataStore.create(createEmployee("first Employee",
+ new Location("Norge", "8392", "Ä"), 42, null,
+ photoDs.read().iterator().next().getImage(), photoDs.read().iterator().next().getImageType(),
+ "http://localhost/image/first.png",
+ null, teamDs.read().iterator().next(), roomDs.read().iterator().next()));
+ }
+
+ private Employee createEmployee(final String name,
+ Location location, final int age, final Calendar date,
+ final byte[] image, final String imageType, final String imageUrl,
+ Manager manager, Team team, Room room) {
+ Employee employee = new Employee();
+ employee.setEmployeeName(name);
+ employee.setLocation(location);
+ employee.setAge(age);
+ employee.setEntryDate(date);
+ employee.setImage(image);
+ employee.setImageType(imageType);
+ employee.setImageUri(imageUrl);
+ employee.setManager(manager);
+ employee.setTeam(team);
+ employee.setRoom(room);
+ return employee;
}
private Team createTeam(String teamName, boolean isScrumTeam) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-edm-annotation/edm-annotation-webref/src/main/webapp/index.jsp
----------------------------------------------------------------------
diff --git a/odata2-edm-annotation/edm-annotation-webref/src/main/webapp/index.jsp b/odata2-edm-annotation/edm-annotation-webref/src/main/webapp/index.jsp
index 2219d10..49cf364 100644
--- a/odata2-edm-annotation/edm-annotation-webref/src/main/webapp/index.jsp
+++ b/odata2-edm-annotation/edm-annotation-webref/src/main/webapp/index.jsp
@@ -67,21 +67,27 @@ th, td { border: 1px solid; padding: 20px; }
<li><a href="ReferenceScenario.svc/Employees" target="_blank">Employees</a></li>
<li><a href="ReferenceScenario.svc/Managers" target="_blank">Managers</a></li>
<li><a href="ReferenceScenario.svc/Buildings" target="_blank">Buildings</a></li>
+ <li><a href="ReferenceScenario.svc/Buildings/?$expand=nb_Rooms"
+ target="_blank">Buildings/?$expand=nb_Rooms</a></li>
<li><a href="ReferenceScenario.svc/Rooms" target="_blank">Rooms</a></li>
+ <li><a href="ReferenceScenario.svc/Rooms/?$orderby=Name" target="_blank">Rooms/?$orderby=Name</a></li>
<li><a href="ReferenceScenario.svc/Photos" target="_blank">Photos</a></li>
- </ul>
+ <li><a href="ReferenceScenario.svc/Photos/?$filter=Type%20eq%20'PNG'"
+ target="_blank">Photos/?$filter=Type eq 'PNG'</a></li>
+ </ul>
<h3>Entities</h3>
<ul>
- <li><a href="ReferenceScenario.svc/Employees('1')"
- target="_blank">Employees('1')</a></li>
- <li><a href="ReferenceScenario.svc/Managers('1')"
- target="_blank">Managers('1')</a></li>
- <li><a href="ReferenceScenario.svc/Buildings(1)"
- target="_blank">Buildings(1)</a></li>
+ <li><a href="ReferenceScenario.svc/Employees('1')" target="_blank">Employees('1')</a></li>
+ <li><a href="ReferenceScenario.svc/Managers('1')" target="_blank">Managers('1')</a></li>
+ <li><a href="ReferenceScenario.svc/Buildings(1)" target="_blank">Buildings(1)</a></li>
+ <li><a href="ReferenceScenario.svc/Buildings(1)/nb_Rooms" target="_blank">Buildings(1)/nb_Rooms</a></li>
<li><a href="ReferenceScenario.svc/Rooms('1')" target="_blank">Rooms('1')</a></li>
- <li><a href="ReferenceScenario.svc/Photos(Name='1',Type='2')"
- target="_blank">Photos(Name='1',Type='2')</a></li>
- </ul>
+ <li><a href="ReferenceScenario.svc/Rooms('1')/nr_Building" target="_blank">Rooms('1')/nr_Building</a></li>
+ <li><a href="ReferenceScenario.svc/Photos(Name='Small%20picture',Type='GIF')"
+ target="_blank">Photos(Name='Small%20picture',Type='GIF')</a></li>
+ <li><a href="ReferenceScenario.svc/Photos(Name='Big%20picture',Type='JPEG')/$value"
+ target="_blank">Photos(Name='Big%20picture',Type='JPEG')/$value</a></li>
+ </ul>
</td>
<td valign="top">
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/EdmNavigationProperty.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/EdmNavigationProperty.java b/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/EdmNavigationProperty.java
index 544471b..7cdad48 100644
--- a/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/EdmNavigationProperty.java
+++ b/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/EdmNavigationProperty.java
@@ -22,15 +22,16 @@ import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+
import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface EdmNavigationProperty {
- String name();
- String association() default ""; // if not set -> will be generated
- //
- NavigationEnd from() default @NavigationEnd;
- NavigationEnd to() default @NavigationEnd;
+ String name() default "";
+ Class<?> toType() default Object.class;
+ String association() default ""; // if not set -> will be generated
+ String toRole() default ""; // if not set -> will be generated
+ EdmMultiplicity toMultiplicity() default EdmMultiplicity.ONE;
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/4d80947e/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/NavigationEnd.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/NavigationEnd.java b/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/NavigationEnd.java
deleted file mode 100644
index 6846dba..0000000
--- a/odata2-lib/odata-annotation/src/main/java/org/apache/olingo/odata2/api/annotation/edm/NavigationEnd.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.api.annotation.edm;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.FIELD)
-public @interface NavigationEnd {
- String role() default "";
- // because entityset is mandatory for some cases set it as default to 'Object.class'
- Class<?> entitySet() default Object.class;
-
- EdmMultiplicity multiplicity() default EdmMultiplicity.ONE;
-}