/* * This code was written by Bear Giles <bgiles@coyotesong.com> and he * 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 * * Any contributions made by others are licensed to this project under * one or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. * * 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. * * Copyright (c) 2013 Bear Giles <bgiles@coyotesong.com> */ package com.invariantproperties.project.student.domain; import java.util.List; import javax.persistence.AttributeOverride; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Lob; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.xml.bind.annotation.XmlRootElement; /** * Course bean * * FIXME - add validation that code follows expected pattern FIXME - add * validation that credit hours >= 0 * * @author Bear Giles <bgiles@coyotesong.com> */ @XmlRootElement @Entity @Table(name = "course") @AttributeOverride(name = "id", column = @Column(name = "course_pkey")) public class Course extends TestablePersistentObject { private static final long serialVersionUID = 1L; private String code; private String name; private String summary; private String description; private Integer creditHours; private List<Section> sections; @Column(length = 12, unique = true, updatable = false) public String getCode() { return code; } public void setCode(String code) { this.code = code; } @Column(length = 80, unique = false, updatable = true) public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(length = 400, unique = false, updatable = true) public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } @Column @Lob public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Column(name = "credit_hours") public Integer getCreditHours() { return creditHours; } public void setCreditHours(Integer creditHours) { this.creditHours = creditHours; } @OneToMany(cascade = CascadeType.ALL, mappedBy = "course") public List<Section> getSections() { return sections; } public void setSections(List<Section> sections) { this.sections = sections; } public String toString() { return String.format("[%s: %s, %s, '%s', '%s', %d]", this.getClass() .getSimpleName(), getId(), getUuid(), getCode(), getName(), getCreditHours()); } }