Movie类中的属性使用Java中的标准类型,如String、Date、int等等。你可以将属性声明为private的,不需要对每一属性定义相应的get和set方法。Movie类中还有一些用于访问这些私有属性的方法,尽管这些方法在程序中的其它部分会用到,但它们并不是JDO所要求的。你可以使用属性包装来提供仅仅是抽象建模所需要的方法。这个类还有一些静态属性(static的),这些属性并不存储到数据库。
"genres"属性是一个String型的,内容是该电影所属的电影风格(动作、爱情、诡异等等)。一个Set接口用来表示该电影的演员表中的角色集合。"addRole()"方法将元素加入到演员表中,而"getCast()"方法返回一个不可以更改的集合,该集合中包含演员表。这些方法并不是JDO规定的,只是为了方便应用编程而编写的。"parseReleaseDate()"方法和"formatReleaseDate()"方法用于将电影的发行日期标准化(格式化)。为了保持代码的简单,如果parseReleaseDate()的参数格式不对,将会返回null.
例1-1 Movie.Java
package com.mediamania.prototype;
import Java.util.Set;
import Java.util.HashSet;
import Java.util.Collections;
import Java.util.Date;
import Java.util.Calendar;
import Java.text.SimpleDateFormat;
import Java.text.ParsePosition;
public class Movie {
private static SimpleDateFormat yearFmt = new SimpleDateFormat("yyyy");
public static final String[] MPAAratings = {
"G", "PG", "PG-13", "R", "NC-17", "NR"};
private String title;
private Date releaseDate;
private int runningTime;
private String rating;
private String webSite;
private String genres;
private Set cast; // element type: Role
private Movie() {}
public Movie(String title, Date release, int duration, String rating,
String genres) {
this.title = title;
releaseDate = release;
runningTime = duration;
this.rating = rating;
this.genres = genres;
cast = new HashSet();
}
public String getTitle() {
return title;
}
public Date getReleaseDate() {
return releaseDate;
}
public String getRating() {
return rating;
}
public int getRunningTime() {
return runningTime;
}
public void setWebSite(String site) {
webSite = site;
Java数据对象技术JDO