/******************************************************************************* * 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.annotation.processor.ref.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.EdmType; /** * */ @EdmEntityType(name = "Employee", namespace = ModelSharedConstants.NAMESPACE_1) @EdmEntitySet(name = "Employees") public class Employee { @EdmKey @EdmProperty(name = "EmployeeId", type = EdmType.STRING, facets = @EdmFacets(nullable = false)) private String employeeId; @EdmProperty(name = "EmployeeName", facets = @EdmFacets(maxLength = 20)) private String employeeName; @EdmProperty private Integer age; @EdmNavigationProperty(name = "ne_Manager", association = "ManagerEmployees") private Manager manager; @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 = EdmType.DATE_TIME, facets = @EdmFacets(nullable = true)) private Calendar entryDate; @EdmProperty(name = "Location", facets = @EdmFacets(nullable = false)) private Location location; public String getId() { return employeeId; } public void setEmployeeName(final String employeeName) { this.employeeName = employeeName; } public String getEmployeeName() { return employeeName; } public void setAge(final int age) { this.age = age; } public int getAge() { return age; } public void setManager(final Manager manager) { this.manager = manager; } public Manager getManager() { return manager; } public void setTeam(final Team team) { this.team = team; } public Team getTeam() { return team; } public void setRoom(final Room room) { this.room = room; } public Room getRoom() { return room; } public void setImageUri(final String imageUri) { imageUrl = imageUri; } public String getImageUri() { return imageUrl; } public void setLocation(final Location location) { this.location = location; } public Location getLocation() { return location; } public void setEntryDate(final Calendar date) { entryDate = date; } public Calendar getEntryDate() { return entryDate; } public void setImageType(final String imageType) { this.imageType = imageType; } public String getImageType() { return imageType; } public void setImage(final byte[] image) { this.image = image; } public void setImage(final String imageUrl) { image = loadImage(imageUrl); } private static byte[] loadImage(final String imageUrl) { return ResourceHelper.loadAsByte(imageUrl); } public byte[] getImage() { if (image == null) { return null; } return image.clone(); } @Override public int hashCode() { if (employeeId == null) { return 0; } return employeeId.hashCode(); } @Override public boolean equals(final Object obj) { return this == obj || obj != null && getClass() == obj.getClass() && employeeId == ((Employee) obj).employeeId; } @Override public String toString() { return "{\"EmployeeId\":\"" + employeeId + "\"," + "\"EmployeeName\":\"" + employeeName + "\"," + "\"ManagerId\":" + (manager == null ? "null" : "\"" + manager.getId() + "\"") + "," + "\"RoomId\":" + (room == null ? "null" : "\"" + room.getId() + "\"") + "," + "\"TeamId\":" + (team == null ? "null" : "\"" + team.getId() + "\"") + "," + "\"Location\":" + (location == null ? "null" : "{\"City\":" + (location.getCity() == null ? "null" : "{\"PostalCode\":\"" + location.getCity().getPostalCode() + "\"," + "\"CityName\":\"" + location.getCity().getCityName() + "\"}") + "," + "\"Country\":\"" + location.getCountry() + "\"}") + "," + "\"Age\":" + age + "," + "\"EntryDate\":" + (entryDate == null ? "null" : "\"" + DateFormat.getInstance().format(entryDate.getTime()) + "\"") + "," + "\"ImageUrl\":\"" + imageUrl + "\"}"; } }