KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > oracle > toplink > essentials > internal > ejb > cmp3 > xml > accessors > XMLOneToOneAccessor


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the "License"). You may not use this file except
5  * in compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * glassfish/bootstrap/legal/CDDLv1.0.txt or
9  * https://glassfish.dev.java.net/public/CDDLv1.0.html.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * HEADER in each file and include the License file at
15  * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
16  * add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your
18  * own identifying information: Portions Copyright [yyyy]
19  * [name of copyright owner]
20  */

21 // Copyright (c) 1998, 2006, Oracle. All rights reserved.
22
package oracle.toplink.essentials.internal.ejb.cmp3.xml.accessors;
23
24 import oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.objects.MetadataAccessibleObject;
25 import oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.OneToOneAccessor;
26
27 import oracle.toplink.essentials.internal.ejb.cmp3.metadata.columns.MetadataJoinColumns;
28 import oracle.toplink.essentials.internal.ejb.cmp3.metadata.columns.MetadataPrimaryKeyJoinColumns;
29
30 import oracle.toplink.essentials.internal.ejb.cmp3.xml.columns.XMLJoinColumns;
31 import oracle.toplink.essentials.internal.ejb.cmp3.xml.columns.XMLPrimaryKeyJoinColumns;
32
33 import oracle.toplink.essentials.internal.ejb.cmp3.xml.XMLHelper;
34
35 import org.w3c.dom.Node JavaDoc;
36
37 /**
38  * An extended one to one relationship accessor.
39  *
40  * @author Guy Pelletier
41  * @since TopLink EJB 3.0 Reference Implementation
42  */

43 public class XMLOneToOneAccessor extends OneToOneAccessor {
44     private Node JavaDoc m_node;
45     private XMLHelper m_helper;
46     
47     /**
48      * INTERNAL:
49      */

50     public XMLOneToOneAccessor(MetadataAccessibleObject accessibleObject, Node JavaDoc node, XMLClassAccessor classAccessor) {
51         super(accessibleObject, classAccessor);
52         
53         m_node = node;
54         m_helper = classAccessor.getHelper();
55         
56         XMLAccessorHelper.setRelationshipAccessorData(this, m_node, m_helper);
57     }
58     
59     /**
60      * INTERNAL: (Override from MetadataAccessor)
61      * Process the primary-key-join-column(s) elements.
62      */

63     protected MetadataPrimaryKeyJoinColumns getPrimaryKeyJoinColumns(String JavaDoc sourceTableName, String JavaDoc targetTableName) {
64         if (m_helper.nodeHasPrimaryKeyJoinColumns(m_node)) {
65             return new XMLPrimaryKeyJoinColumns(m_node, m_helper, sourceTableName, targetTableName);
66         } else {
67             return super.getPrimaryKeyJoinColumns(sourceTableName, targetTableName);
68         }
69     }
70     
71     /**
72      * INTERNAL: (Override from RelationshipAccessor)
73      * Return true is this one-to-one has primary key join columns.
74      */

75     public boolean hasPrimaryKeyJoinColumns() {
76         if (m_helper.nodeHasPrimaryKeyJoinColumns(m_node)) {
77             return true;
78         } else {
79             return super.hasPrimaryKeyJoinColumns();
80         }
81     }
82     
83     /**
84      * INTERNAL: (Override from RelationshipAccessor)
85      * Process join columns for this node.
86      */

87     protected MetadataJoinColumns getJoinColumns() {
88         if (m_helper.nodeHasJoinColumns(m_node)) {
89             return new XMLJoinColumns(m_node, m_helper);
90         } else {
91             return super.getJoinColumns();
92         }
93     }
94 }
95
Popular Tags