MyBeanクラスの定義
では、プログラムの作成を行いましょう。まずは、投稿データを管理するjp.tuyano.MyBeanクラスの作成からです。<ファイル><新規><クラス>メニューを使い、jp.tuyanoパッケージ「MyBean」を作成しましょう。そして、以下のようにソースコード記述します。
package jp.tuyano;
public class MyBean {
private String name;
private String title;
private String content;
public MyBean(){
name = "";
title = "";
content = "";
}
public MyBean(String name,
String title,String content){
this();
this.name = name;
this.title = title;
this.content = content;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((content == null) ?
0 : content.hashCode());
result = prime * result + ((name == null) ?
0 : name.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;
final MyBean other = (MyBean) obj;
if (content == null) {
if (other.content != null)
return false;
} else if (!content.equals(other.content))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (title == null) {
if (other.title != null)
return false;
} else if (!title.equals(other.title))
return false;
return true;
}
@Override
public String toString(){
return this.name + "\n" + this.title +
"\n" + this.content;
}
}
ここでは、name、title、contentという3つのprivateフィールドを用意し、それぞれに値を保持するようにしてあります。また、hashcode、quals、toStringをオーバーライドしてMyBeanにあった値を返すように調整してあります。
続いて、マネージャクラスの定義です。これは、jp.tuyano.MyBeanManagerクラスとして以下のように定義をします。
package jp.tuyano;
import java.util.*;
public class MyBeanManager {
ArrayList
public MyBeanManager(){
data = new ArrayList}
public void add(String name,String title,String msg){
String s1 = this.getEscapedString(name);
String s2 = this.getEscapedString(title);
String s3 = this.getEscapedString(msg);
MyBean bean = new MyBean(s1,s2,s3);
data.add(bean);
}
public void remove(MyBean bean){
for(MyBean obj:data){
if (bean.equals(obj)) data.remove(obj);
}
}
public String getByTableString(){
String result = "<table border='1'>\n";
result += "<tr><th>Name</th><th>Title</th><th>Message</th></tr>\n";
for(MyBean obj:data){
result += "<tr><td>" + obj.getName() + "</td>";
result += "<td>" + obj.getTitle() + "</td>";
result += "<td>" + obj.getContent() + "</td></tr>\n";
}
result += "</table>\n";
return result;
}
public MyBean getLastData(){
MyBean bean = null;
if (data.size() > 0)
bean = data.get(data.size() - 1);
return bean;
}
public String getEscapedString(String s){
String res = s;
res = s.replaceAll("<","<");
res = res.replaceAll(">",">");
res = res.replaceAll("\r","");
res = res.replaceAll("\n","<br>");
return res;
}
}
ここでは、ArrayListを用意して、そこにMyBeanを保管し管理しています。addメソッドでBeanを追加し、removeで削除するわけですね。他、最後の投稿データをMyBeanとして受け取るgetLastData、全Beanの情報をHTMLのテーブルとして取得するgetByTableStringといったメソッドを用意しておきました。