View Javadoc

1   package com.ozacc.mail.spring;
2   
3   import java.io.File;
4   
5   import org.springframework.beans.factory.config.AbstractFactoryBean;
6   import org.springframework.core.io.Resource;
7   
8   import com.ozacc.mail.Mail;
9   import com.ozacc.mail.MailBuildException;
10  import com.ozacc.mail.MailBuilder;
11  import com.ozacc.mail.impl.XMLMailBuilderImpl;
12  
13  /***
14   * Spring¤ÎÀßÄ?¥Õ¥¡¥¤¥?¤Ç»ØÄꤵ¤?¤¿¥úÁ±¡¼¥·¥ç¥ó¤ÎXML¥Õ¥¡¥¤¥?¤«¤éMail¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤¹¤?FactoryBean¡£
15   * ¥Ç¥Õ¥©¥?¥È¤Ç¤Ï¡¢singleton¥×¥úÁѥƥ£¤Ïfalse¤ËÀßÄꤵ¤?¤Þ¤¹¡£
16   * <p>
17   * location¡¢classPath¡¢filePath¤Î½ç¤Ç¡¢°?ÈÖÀè¤Ë¥»¥Ã¥È¤µ¤?¤Æ¤¤¤?¥×¥úÁѥƥ£Ãͤ¬XML¥Õ¥¡¥¤¥?¤Î¥Ñ¥¹¤È¤·¤Æ»È¤?¤?¤Þ¤¹¡£
18   * 
19   * @see com.ozacc.mail.impl.XMLMailBuilderImpl
20   * 
21   * @since 1.0
22   * @author Tomohiro Otsuka
23   * @version $Id: XMLMailFactoryBean.java,v 1.4 2004/09/13 19:48:16 otsuka Exp $
24   */
25  public class XMLMailFactoryBean extends AbstractFactoryBean {
26  
27  	private String classPath;
28  
29  	private String filePath;
30  
31  	private Resource location;
32  
33  	private MailBuilder mailBuilder;
34  
35  	/***
36  	 * ¥³¥ó¥¹¥È¥é¥¯¥¿¡£
37  	 */
38  	public XMLMailFactoryBean() {
39  		setSingleton(false);
40  	}
41  
42  	/***
43  	 * @see org.springframework.beans.factory.config.AbstractFactoryBean#createInstance()
44  	 */
45  	protected Object createInstance() throws Exception {
46  		if (mailBuilder == null) {
47  			init();
48  		}
49  
50  		if (getLocation() != null && getLocation().getFile() != null) {
51  			return mailBuilder.buildMail(getLocation().getFile());
52  		}
53  		if (getClassPath() != null) {
54  			return mailBuilder.buildMail(getClassPath());
55  		}
56  		if (getFilePath() != null) {
57  			return mailBuilder.buildMail(new File(getFilePath()));
58  		}
59  		throw new MailBuildException("Mail¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÀ¸À®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£XML¥Ç¡¼¥¿¤Î¥úÁ±¡¼¥·¥ç¥ó¤¬»ØÄꤵ¤?¤Æ¤¤¤Þ¤»¤ó¡£");
60  	}
61  
62  	/***
63  	 * mailBuilder¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¤Þ¤¹¡£
64  	 */
65  	private void init() {
66  		mailBuilder = new XMLMailBuilderImpl();
67  	}
68  
69  	/***
70  	 * @see org.springframework.beans.factory.FactoryBean#getObjectType()
71  	 */
72  	public Class getObjectType() {
73  		return Mail.class;
74  	}
75  
76  	/***
77  	 * <code>MailBuilder</code>¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¼ÂÁõ¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
78  	 * ¥Ç¥Õ¥©¥?¥È¤Ç¤Ï¡¢<code>XMLMailBuilderImpl</code>¤¬»ÈÍѤµ¤?¤Þ¤¹¡£
79  	 * <p>
80  	 * ¤¿¤À¤·¡¢¤³¤³¤Ç¥»¥Ã¥È¤·¤Ê¤¤¾?¹ç¤Ï¡¢<code>XMLMailFactoryBean</code>¤Ò¤È¤Ä¤ËÉÕ¤­¡¢
81  	 * <code>XMLMailBuilderImpl</code>¥¤¥ó¥¹¥¿¥ó¥¹°?¤Ä¤¬ÊÝ»?¤µ¤?¤Þ¤¹¡£
82  	 * ¥·¥ó¥°¥?¥È¥ó¤Î<code>MailBuilder</code>¥¤¥ó¥¹¥¿¥ó¥¹¤ò¥»¥Ã¥È¤¹¤?¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡£
83  	 * 
84  	 * @param mailBuilder MailBuilder¥¤¥ó¥¹¥¿¥ó¥¹
85  	 */
86  	public void setMailBuilder(MailBuilder mailBuilder) {
87  		this.mailBuilder = mailBuilder;
88  	}
89  
90  	/***
91  	 * @return Returns the classPath.
92  	 */
93  	public String getClassPath() {
94  		return classPath;
95  	}
96  
97  	/***
98  	 * @param classPath The classPath to set.
99  	 */
100 	public void setClassPath(String classPath) {
101 		this.classPath = classPath;
102 	}
103 
104 	/***
105 	 * @return Returns the filePath.
106 	 */
107 	public String getFilePath() {
108 		return filePath;
109 	}
110 
111 	/***
112 	 * @param filePath The filePath to set.
113 	 */
114 	public void setFilePath(String filePath) {
115 		this.filePath = filePath;
116 	}
117 
118 	/***
119 	 * @return Returns the location.
120 	 */
121 	public Resource getLocation() {
122 		return location;
123 	}
124 
125 	/***
126 	 * @param location The location to set.
127 	 */
128 	public void setLocation(Resource location) {
129 		this.location = location;
130 	}
131 }