/* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and/or its affiliates, and individual * contributors by the @authors tag. See the copyright.txt in the * distribution for a full listing of individual contributors. * * 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 org.jboss.as.quickstarts.tasksrs.model; // JSON: uncomment to include json support (note json is not part of the JAX-RS standard) //import org.codehaus.jackson.annotate.JsonIgnore; import static javax.persistence.GenerationType.IDENTITY; import java.io.Serializable; import java.io.StringReader; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.xml.bind.JAXB; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; /** * User's task entity which is marked up with JPA annotations and JAXB for serializing XML * (and JSON if required) * * @author Oliver Kiss and others */ @SuppressWarnings("serial") @Entity @XmlRootElement(name = "task") public class Task implements Serializable { @Id @GeneratedValue(strategy = IDENTITY) private Long id; @ManyToOne private User owner; private String title; public Task() { } public Task(String title) { super(); this.title = title; } @XmlAttribute public Long getId() { return id; } public void setId(Long id) { this.id = id; } @XmlTransient // JSON: uncomment to include json support (note json is not part of the JAX-RS standard) // @JsonIgnore public User getOwner() { return owner; } @XmlAttribute public String getOwnerName() { return owner.getUsername(); } public void setOwner(User owner) { this.owner = owner; } @XmlElement public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((owner == null) ? 0 : owner.hashCode()); result = prime * result + ((title == null) ? 0 : title.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Task other = (Task) obj; if (owner == null) { if (other.owner != null) { return false; } } else if (!owner.equals(other.owner)) { return false; } if (title == null) { if (other.title != null) { return false; } } else if (!title.equals(other.title)) { return false; } return true; } public static Task stringToTask(String content) { return JAXB.unmarshal(new StringReader(content), Task.class); } }