1 /***
2 * Copyright (c) 2002, CodeStreet LLC. All rights reserved.<p>
3 * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
4 * conditions are met:<p>
5 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
7 * in the documentation and/or other materials provided with the distribution. Neither the name of CodeStreet LLC. nor the
8 * names of its contributors may be used to endorse or promote products derived from this software without specific prior written
9 * permission.<p>
10 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
11 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
12 * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
13 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
14 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<p>
16 */
17
18 package com.codestreet.messageforge;
19
20 /***
21 * Interface implemented by all message factories.
22 *
23 * @author Jawaid Hakim.
24 */
25 public interface RMsgFactory
26 {
27 /***
28 * Create message instance from message name. The message name is the fully
29 * qualified (including package specification) name of the message class.
30 *
31 * @param msgName
32 * Message name.
33 * @return Message instance.
34 */
35 RMapMessage createMsgObject(String msgName) throws FactoryException;
36
37 /***
38 * Create message instance from message name. The message name is the fully
39 * qualified (including package specification) name of the message class.
40 *
41 * @param msgName
42 * Message name.
43 * @param create
44 * If <tt>true</tt> then nested fields of type <tt>MSGOBJ</tt>
45 * and <tt>BEAN</tt> are precreated.
46 * @return Message instance.
47 */
48 RMapMessage createMsgObject(String msgName, boolean create)
49 throws FactoryException;
50
51 /***
52 * Create message instance from <tt>Class</tt>.
53 *
54 * @param cls
55 * Class.
56 * @return Message instance.
57 */
58 RMapMessage createMsgObject(java.lang.Class cls) throws FactoryException;
59
60 /***
61 * Create message instance from <tt>Class</tt>.
62 *
63 * @param cls
64 * Class.
65 * @param create
66 * If <tt>true</tt> then nested fields of type <tt>MSGOBJ</tt>
67 * and <tt>BEAN</tt> are precreated.
68 * @return Message instance.
69 */
70 RMapMessage createMsgObject(java.lang.Class cls, boolean create)
71 throws FactoryException;
72
73 /***
74 * Get all message names in this factory.
75 *
76 * @return Message names in this factory.
77 */
78 String[] getMsgNames();
79
80 /***
81 * Get the fully qualified name of message class for given message name.
82 *
83 * @param msgName
84 * Message name.
85 * @return Fully qualified name of message class.
86 */
87 String getQualifiedName(String msgName) throws FactoryException;
88
89 /***
90 * Get all bean field class names in this factory.
91 *
92 * @return All bean field class names in this factory.
93 */
94 String[] getBeanFieldNames();
95
96 /***
97 * Get fully qualified name of specified bean field.
98 *
99 * @param beanField
100 * Name of bean field.
101 * @return fully qualified name of specified bean field.
102 */
103 String getFullBeanFieldName(String beanField);
104 }
This page was automatically generated by Maven