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">
 				&nbsp;

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;
-}