/* * Copyright 2015, The Querydsl Team (http://www.querydsl.com/team) * * Licensed 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 com.querydsl.jdo.models.company; import java.io.Serializable; import java.util.Date; import java.util.HashSet; import java.util.Set; import java.util.StringTokenizer; import com.querydsl.core.annotations.QueryEntity; /** * An office in the company. */ @QueryEntity public class Office { private long floor; // PK when app-id private String roomName; // PK when app-id private String description; private Set<Department> departments = new HashSet<Department>(); // 1-N uni // relation // using // join // table private Date date; public Office() { } public Office(long floor, String roomName, String description) { this.floor = floor; this.roomName = roomName; this.description = description; } public Date getDate() { return new Date(date.getTime()); } public void setDate(Date date) { this.date = new Date(date.getTime()); } /** * Accessor for the room name * * @return Returns the room name. */ public String getRoomName() { return roomName; } /** * Mutator for the room name * * @param roomName * The room name */ public void setRoomName(String roomName) { this.roomName = roomName; } public long getFloor() { return floor; } public void setFloor(long floor) { this.floor = floor; } public String getDescription() { return description; } public void setDescription(String s) { description = s; } public void addDepartment(Department dept) { departments.add(dept); } public void clearDepartments() { departments.clear(); } // Note that this is only really correct for application identity, but we // also use this class for datastore id public int hashCode() { int hash = 7; hash = 31 * hash + (int) floor; hash = 31 * hash + (null == roomName ? 0 : roomName.hashCode()); return hash; } // Note that this is only really correct for application identity, but we // also use this class for datastore id public boolean equals(Object o) { if (o == this) { return true; } if ((o == null) || (o.getClass() != this.getClass())) { return false; } Office other = (Office) o; return floor == other.floor && (roomName == other.roomName || (roomName != null && roomName.equals(other.roomName))); } public String asString() { return "Office : floor=" + getFloor() + ", room=" + getRoomName() + "- " + getDescription(); } public static class Id implements Serializable { private static final long serialVersionUID = -4032898077139179659L; public long floor; public String roomName; public Id() { } /** * String constructor. */ public Id(String str) { StringTokenizer toke = new StringTokenizer(str, "::"); str = toke.nextToken(); this.floor = Integer.parseInt(str); str = toke.nextToken(); this.roomName = str; } /** * Implementation of equals method. */ public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof Id)) { return false; } Id c = (Id) obj; return floor == c.floor && roomName.equals(c.roomName); } /** * Implementation of hashCode method that supports the equals-hashCode * contract. */ public int hashCode() { return ((int) this.floor) ^ this.roomName.hashCode(); } /** * Implementation of toString that outputs this object id's primary key * values. */ public String toString() { return String.valueOf(this.floor) + "::" + String.valueOf(this.roomName); } } }