KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > enterprise > tools > verifier > tests > ejb > entity > pksinglefield > PrimekeyFieldPersistentFields


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 in
5  * compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * https://glassfish.dev.java.net/public/CDDLv1.0.html or
9  * glassfish/bootstrap/legal/CDDLv1.0.txt.
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 Notice in each file and include the License file
15  * at glassfish/bootstrap/legal/CDDLv1.0.txt.
16  * If applicable, add the following below the CDDL Header,
17  * with the fields enclosed by brackets [] replaced by
18  * you own identifying information:
19  * "Portions Copyrighted [year] [name of copyright owner]"
20  *
21  * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
22  */

23 package com.sun.enterprise.tools.verifier.tests.ejb.entity.pksinglefield;
24
25 import com.sun.enterprise.tools.verifier.tests.ejb.EjbTest;
26 import java.lang.reflect.Field JavaDoc;
27 import java.util.*;
28 import com.sun.enterprise.deployment.*;
29 import com.sun.enterprise.tools.verifier.*;
30 import com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck;
31 import com.sun.enterprise.tools.verifier.tests.*;
32
33 /**
34  * The primkey-field must be one of the fields declared in the cmp-field
35  * elements.
36  */

37 public class PrimekeyFieldPersistentFields extends EjbTest implements EjbCheck {
38
39
40     /**
41      * The primkey-field must be one of the fields declared in the cmp-field
42      * elements.
43      *
44      * @param descriptor the Enterprise Java Bean deployment descriptor
45      *
46      * @return <code>Result</code> the results for this assertion
47      */

48     public Result check(EjbDescriptor descriptor) {
49
50     Result result = getInitializedResult();
51     ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
52
53     // The primkey-field must be one of the fields declared in the
54
// cmp-field elements
55
if (descriptor instanceof EjbEntityDescriptor) {
56         String JavaDoc persistence =
57         ((EjbEntityDescriptor)descriptor).getPersistenceType();
58
59         if (EjbEntityDescriptor.CONTAINER_PERSISTENCE.equals(persistence)) {
60         try {
61             // do i need to use this to help determine single vs. multiple
62
// object finders, etc.
63
String JavaDoc primkey =
64             ((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName();
65                     if (primkey.equals("java.lang.String")) {
66                         try {
67   
68                     FieldDescriptor primField =
69                     ((EjbCMPEntityDescriptor)descriptor).getPrimaryKeyFieldDesc();
70   
71                     // primField must exist in order to be valid & pass test
72
Descriptor persistentField;
73                     Field JavaDoc field;
74                     Set persistentFields =
75                     ((EjbCMPEntityDescriptor)descriptor).getPersistenceDescriptor().getCMPFields();
76                     Iterator iterator = persistentFields.iterator();
77                     boolean foundMatch = false;
78                     while (iterator.hasNext()) {
79                     persistentField = (Descriptor)iterator.next();
80                     if (primField != null) {
81                         if (primField.getName().equals(persistentField.getName())) {
82                             foundMatch = true;
83                             break;
84                         } else {
85                             continue;
86                         }
87                         } else {
88                                     // should already be set, can't ever be in cmp
89
// fields if primField doesn't exist
90
foundMatch = false;
91                         break;
92                         }
93                     }
94                     if (foundMatch) {
95                     result.addGoodDetails(smh.getLocalString
96                               ("tests.componentNameConstructor",
97                                "For [ {0} ]",
98                                new Object JavaDoc[] {compName.toString()}));
99                 result.passed(smh.getLocalString
100                               (getClass().getName() + ".passed",
101                                "Primary key field [ {0} ] is defined within set of container managed fields for bean [ {1} ]",
102                                new Object JavaDoc[] {primField.getName(),descriptor.getName()}));
103                     } else {
104                     if (primField != null) {
105                         result.addErrorDetails(smh.getLocalString
106                                ("tests.componentNameConstructor",
107                                 "For [ {0} ]",
108                                 new Object JavaDoc[] {compName.toString()}));
109                     result.failed(smh.getLocalString
110                               (getClass().getName() + ".failed",
111                                "Primary key field [ {0} ] is not defined within set of container managed fields for bean [ {1} ]",
112                                new Object JavaDoc[] {primField.getName(),descriptor.getName()}));
113                     } else {
114                                     // unless special case, where primary key class
115
// is java.lang.Object, then test should be N/A
116
// not failed
117
try {
118                                         if (((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName().equals("java.lang.Object")) {
119
120                         result.addNaDetails(smh.getLocalString
121                                 ("tests.componentNameConstructor",
122                                  "For [ {0} ]",
123                                  new Object JavaDoc[] {compName.toString()}));
124                                     result.notApplicable(smh.getLocalString
125                                  (getClass().getName() + ".notApplicable2",
126                                   "Primkey field not defined for [ {0} ] bean.",
127                                   new Object JavaDoc[] {descriptor.getName()}));
128                                     
129                                         } else {
130                                 result.addErrorDetails(smh.getLocalString
131                                    ("tests.componentNameConstructor",
132                                     "For [ {0} ]",
133                                     new Object JavaDoc[] {compName.toString()}));
134                         result.failed(smh.getLocalString
135                               (getClass().getName() + ".failed1",
136                                "Primary key field is not defined within set of container managed fields for bean [ {0} ]",
137                                new Object JavaDoc[] {descriptor.getName()}));
138                             }
139                             } catch (NullPointerException JavaDoc e) {
140                     result.addNaDetails(smh.getLocalString
141                                 ("tests.componentNameConstructor",
142                                  "For [ {0} ]",
143                                  new Object JavaDoc[] {compName.toString()}));
144                                 result.notApplicable(smh.getLocalString
145                                  (getClass().getName() + ".notApplicable2",
146                                   "Primkey field not defined for [ {0} ] bean.",
147                                   new Object JavaDoc[] {descriptor.getName()}));
148                             }
149                     }
150                     }
151                         } catch (NullPointerException JavaDoc e) {
152                             result.addErrorDetails(smh.getLocalString
153                         ("tests.componentNameConstructor",
154                          "For [ {0} ]",
155                          new Object JavaDoc[] {compName.toString()}));
156                 result.failed
157                                 (smh.getLocalString
158                                  (getClass().getName() + ".failed2",
159                                   "Error: Primary Key Field must be defined for bean [ {0} ] with primary key class set to [ {1} ]",
160                                   new Object JavaDoc[] {descriptor.getName(),primkey}));
161                         }
162                     } else {
163             result.addNaDetails(smh.getLocalString
164                         ("tests.componentNameConstructor",
165                          "For [ {0} ]",
166                          new Object JavaDoc[] {compName.toString()}));
167                         result.notApplicable(smh.getLocalString
168                          (getClass().getName() + ".notApplicable3",
169                           "primkey [ {0} ] is not java.lang.String for bean [ {1} ]",
170                           new Object JavaDoc[] {primkey,descriptor.getName()}));
171                     }
172         } catch (NullPointerException JavaDoc e) {
173             result.addNaDetails(smh.getLocalString
174                     ("tests.componentNameConstructor",
175                      "For [ {0} ]",
176                      new Object JavaDoc[] {compName.toString()}));
177             result.notApplicable(smh.getLocalString
178                      (getClass().getName() + ".notApplicable2",
179                       "Primkey field not defined for [ {0} ] bean.",
180                       new Object JavaDoc[] {descriptor.getName()}));
181         }
182         } else {
183         result.addNaDetails(smh.getLocalString
184                     ("tests.componentNameConstructor",
185                      "For [ {0} ]",
186                      new Object JavaDoc[] {compName.toString()}));
187         result.notApplicable(smh.getLocalString
188                      (getClass().getName() + ".notApplicable1",
189                       "Expected [ {0} ] managed persistence, but [ {1} ] bean has [ {2} ] managed persistence",
190                       new Object JavaDoc[] {EjbEntityDescriptor.CONTAINER_PERSISTENCE,descriptor.getName(),persistence}));
191         }
192     } else {
193         result.addNaDetails(smh.getLocalString
194                 ("tests.componentNameConstructor",
195                  "For [ {0} ]",
196                  new Object JavaDoc[] {compName.toString()}));
197         result.notApplicable(smh.getLocalString
198                  (getClass().getName() + ".notApplicable",
199                   "{0} expected \n {1} bean, but called with {2} bean",
200                   new Object JavaDoc[] {getClass(),"Entity","Session"}));
201     }
202
203     return result;
204     }
205 }
206
Popular Tags