KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ojb > broker > MtoNImplementor


1 package org.apache.ojb.broker;
2
3 /* Copyright 2003-2005 The Apache Software Foundation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 import org.apache.ojb.broker.core.proxy.ProxyHelper;
19 import org.apache.ojb.broker.metadata.CollectionDescriptor;
20
21 /**
22  * Helper class to handle single m:n relation entries (m:n indirection table entries).
23  * <br/>
24  * The "left / right" notation is only used to differ both sides of the relation.
25  *
26  * @author Leandro Rodrigo Saad Cruz
27  * @version $Id: MtoNImplementor.java,v 1.7.2.4 2005/12/21 22:22:08 tomdz Exp $
28  */

29 public class MtoNImplementor
30 {
31     private Object JavaDoc leftObject;
32     private Object JavaDoc rightObject;
33     private Class JavaDoc leftClass;
34     private Class JavaDoc rightClass;
35     private CollectionDescriptor leftDescriptor;
36
37     /**
38      * Creates a new instance.
39      *
40      * @param pb The currently used {@link PersistenceBroker} instance
41      * @param leftDescriptor The collection descriptor for the left side
42      * @param left The left side object
43      * @param right The right side object
44      * @deprecated
45      */

46     public MtoNImplementor(PersistenceBroker pb, CollectionDescriptor leftDescriptor, Object JavaDoc left, Object JavaDoc right)
47     {
48         init(leftDescriptor, left, right);
49     }
50
51     /**
52      * Creates a new instance.
53      *
54      * @param pb The currently used {@link PersistenceBroker} instance
55      * @param leftFieldName Field name of the left m:n reference
56      * @param left The left side object
57      * @param right The right side object
58      */

59     public MtoNImplementor(PersistenceBroker pb, String JavaDoc leftFieldName, Object JavaDoc left, Object JavaDoc right)
60     {
61         if(left == null || right == null)
62         {
63             throw new IllegalArgumentException JavaDoc("both objects must exist");
64         }
65         CollectionDescriptor cod = pb.getClassDescriptor(ProxyHelper.getRealClass(left)).getCollectionDescriptorByName(leftFieldName);
66         init(cod, left, right);
67     }
68
69     /**
70      * Creates a new instance.
71      *
72      * @param leftDescriptor The collection descriptor for the left side
73      * @param left The left side object
74      * @param right The right side object
75      * @deprecated
76      */

77     public MtoNImplementor(CollectionDescriptor leftDescriptor, Object JavaDoc left, Object JavaDoc right)
78     {
79         init(leftDescriptor, left, right);
80     }
81
82     private void init(CollectionDescriptor leftDescriptor, Object JavaDoc left, Object JavaDoc right)
83     {
84         if(left == null || right == null)
85         {
86             throw new IllegalArgumentException JavaDoc("both objects must exist");
87         }
88         this.leftDescriptor = leftDescriptor;
89         leftObject = left;
90         rightObject = right;
91         leftClass = ProxyHelper.getRealClass(leftObject);
92         rightClass = ProxyHelper.getRealClass(rightObject);
93     }
94
95     /**
96      * Returns the collection descriptor for the left side of the m:n collection.
97      *
98      * @return The collection descriptor
99      */

100     public CollectionDescriptor getLeftDescriptor()
101     {
102         return leftDescriptor;
103     }
104
105     /**
106      * Returns the class of the left side of the m:n collection.
107      *
108      * @return The class of the left side
109      */

110     public Class JavaDoc getLeftClass()
111     {
112         return leftClass;
113     }
114
115     /**
116      * Returns the class of the right side of the m:n collection.
117      *
118      * @return The class of the right side
119      */

120     public Class JavaDoc getRightClass()
121     {
122         return rightClass;
123     }
124
125     /**
126      * Returns the object for the left side of the m:n collection.
127      *
128      * @return The object for the left side
129      */

130     public Object JavaDoc getLeftObject()
131     {
132         return leftObject;
133     }
134
135     /**
136      * Returns the object for the right side of the m:n collection.
137      *
138      * @return The object for the right side
139      */

140     public Object JavaDoc getRightObject()
141     {
142         return rightObject;
143     }
144 }
145
Popular Tags