View Javadoc
1   /**
2    *    Copyright 2006-2016 the original author or authors.
3    *
4    *    Licensed under the Apache License, Version 2.0 (the "License");
5    *    you may not use this file except in compliance with the License.
6    *    You may obtain a copy of the License at
7    *
8    *       http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *    Unless required by applicable law or agreed to in writing, software
11   *    distributed under the License is distributed on an "AS IS" BASIS,
12   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *    See the License for the specific language governing permissions and
14   *    limitations under the License.
15   */
16  package org.mybatis.generator.internal;
17  
18  import java.util.ArrayList;
19  import java.util.List;
20  import java.util.Properties;
21  
22  import org.mybatis.generator.api.GeneratedJavaFile;
23  import org.mybatis.generator.api.GeneratedXmlFile;
24  import org.mybatis.generator.api.Plugin;
25  import org.mybatis.generator.api.IntrospectedColumn;
26  import org.mybatis.generator.api.IntrospectedTable;
27  import org.mybatis.generator.api.dom.java.Field;
28  import org.mybatis.generator.api.dom.java.Interface;
29  import org.mybatis.generator.api.dom.java.Method;
30  import org.mybatis.generator.api.dom.java.TopLevelClass;
31  import org.mybatis.generator.api.dom.xml.Document;
32  import org.mybatis.generator.api.dom.xml.XmlElement;
33  import org.mybatis.generator.config.Context;
34  
35  /**
36   * This class is for internal use only. It contains a list of plugins for the
37   * current context and is used to aggregate plugins together. This class
38   * implements the rule that if any plugin returns "false" from a method, then no
39   * other plugin is called.
40   * <p>
41   * This class does not follow the normal plugin lifecycle and should not be
42   * subclassed by clients.
43   * 
44   * @author Jeff Butler
45   * 
46   */
47  public final class PluginAggregator implements Plugin {
48      private List<Plugin> plugins;
49  
50      public PluginAggregator() {
51          plugins = new ArrayList<Plugin>();
52      }
53  
54      public void addPlugin(Plugin plugin) {
55          plugins.add(plugin);
56      }
57  
58      public void setContext(Context context) {
59          throw new UnsupportedOperationException();
60      }
61  
62      public void setProperties(Properties properties) {
63          throw new UnsupportedOperationException();
64      }
65  
66      public boolean validate(List<String> warnings) {
67          throw new UnsupportedOperationException();
68      }
69  
70      public boolean modelBaseRecordClassGenerated(TopLevelClass tlc,
71              IntrospectedTable introspectedTable) {
72          boolean rc = true;
73  
74          for (Plugin plugin : plugins) {
75              if (!plugin.modelBaseRecordClassGenerated(tlc, introspectedTable)) {
76                  rc = false;
77                  break;
78              }
79          }
80  
81          return rc;
82      }
83  
84      public boolean modelRecordWithBLOBsClassGenerated(TopLevelClass tlc,
85              IntrospectedTable introspectedTable) {
86          boolean rc = true;
87  
88          for (Plugin plugin : plugins) {
89              if (!plugin.modelRecordWithBLOBsClassGenerated(tlc,
90                      introspectedTable)) {
91                  rc = false;
92                  break;
93              }
94          }
95  
96          return rc;
97      }
98  
99      public boolean sqlMapCountByExampleElementGenerated(XmlElement element,
100             IntrospectedTable table) {
101         boolean rc = true;
102 
103         for (Plugin plugin : plugins) {
104             if (!plugin.sqlMapCountByExampleElementGenerated(element, table)) {
105                 rc = false;
106                 break;
107             }
108         }
109 
110         return rc;
111     }
112 
113     public boolean sqlMapDeleteByExampleElementGenerated(XmlElement element,
114             IntrospectedTable table) {
115         boolean rc = true;
116 
117         for (Plugin plugin : plugins) {
118             if (!plugin.sqlMapDeleteByExampleElementGenerated(element, table)) {
119                 rc = false;
120                 break;
121             }
122         }
123 
124         return rc;
125     }
126 
127     public boolean sqlMapDeleteByPrimaryKeyElementGenerated(XmlElement element,
128             IntrospectedTable table) {
129         boolean rc = true;
130 
131         for (Plugin plugin : plugins) {
132             if (!plugin
133                     .sqlMapDeleteByPrimaryKeyElementGenerated(element, table)) {
134                 rc = false;
135                 break;
136             }
137         }
138 
139         return rc;
140     }
141 
142     public boolean modelExampleClassGenerated(TopLevelClass tlc,
143             IntrospectedTable introspectedTable) {
144         boolean rc = true;
145 
146         for (Plugin plugin : plugins) {
147             if (!plugin.modelExampleClassGenerated(tlc, introspectedTable)) {
148                 rc = false;
149                 break;
150             }
151         }
152 
153         return rc;
154     }
155 
156     public List<GeneratedJavaFile> contextGenerateAdditionalJavaFiles(
157             IntrospectedTable introspectedTable) {
158         List<GeneratedJavaFile> answer = new ArrayList<GeneratedJavaFile>();
159         for (Plugin plugin : plugins) {
160             List<GeneratedJavaFile> temp = plugin
161                     .contextGenerateAdditionalJavaFiles(introspectedTable);
162             if (temp != null) {
163                 answer.addAll(temp);
164             }
165         }
166         return answer;
167     }
168 
169     public List<GeneratedXmlFile> contextGenerateAdditionalXmlFiles(
170             IntrospectedTable introspectedTable) {
171         List<GeneratedXmlFile> answer = new ArrayList<GeneratedXmlFile>();
172         for (Plugin plugin : plugins) {
173             List<GeneratedXmlFile> temp = plugin
174                     .contextGenerateAdditionalXmlFiles(introspectedTable);
175             if (temp != null) {
176                 answer.addAll(temp);
177             }
178         }
179         return answer;
180     }
181 
182     public boolean modelPrimaryKeyClassGenerated(TopLevelClass tlc,
183             IntrospectedTable introspectedTable) {
184         boolean rc = true;
185 
186         for (Plugin plugin : plugins) {
187             if (!plugin.modelPrimaryKeyClassGenerated(tlc, introspectedTable)) {
188                 rc = false;
189                 break;
190             }
191         }
192 
193         return rc;
194     }
195 
196     public boolean sqlMapResultMapWithoutBLOBsElementGenerated(
197             XmlElement element, IntrospectedTable introspectedTable) {
198         boolean rc = true;
199 
200         for (Plugin plugin : plugins) {
201             if (!plugin.sqlMapResultMapWithoutBLOBsElementGenerated(element,
202                     introspectedTable)) {
203                 rc = false;
204                 break;
205             }
206         }
207 
208         return rc;
209     }
210 
211     public boolean sqlMapExampleWhereClauseElementGenerated(XmlElement element,
212             IntrospectedTable introspectedTable) {
213         boolean rc = true;
214 
215         for (Plugin plugin : plugins) {
216             if (!plugin.sqlMapExampleWhereClauseElementGenerated(element,
217                     introspectedTable)) {
218                 rc = false;
219                 break;
220             }
221         }
222 
223         return rc;
224     }
225 
226     public boolean sqlMapInsertElementGenerated(XmlElement element,
227             IntrospectedTable introspectedTable) {
228         boolean rc = true;
229 
230         for (Plugin plugin : plugins) {
231             if (!plugin
232                     .sqlMapInsertElementGenerated(element, introspectedTable)) {
233                 rc = false;
234                 break;
235             }
236         }
237 
238         return rc;
239     }
240 
241     public boolean sqlMapResultMapWithBLOBsElementGenerated(XmlElement element,
242             IntrospectedTable introspectedTable) {
243         boolean rc = true;
244 
245         for (Plugin plugin : plugins) {
246             if (!plugin.sqlMapResultMapWithBLOBsElementGenerated(element,
247                     introspectedTable)) {
248                 rc = false;
249                 break;
250             }
251         }
252 
253         return rc;
254     }
255 
256     public boolean sqlMapSelectByExampleWithoutBLOBsElementGenerated(
257             XmlElement element, IntrospectedTable introspectedTable) {
258         boolean rc = true;
259 
260         for (Plugin plugin : plugins) {
261             if (!plugin.sqlMapSelectByExampleWithoutBLOBsElementGenerated(
262                     element, introspectedTable)) {
263                 rc = false;
264                 break;
265             }
266         }
267 
268         return rc;
269     }
270 
271     public boolean sqlMapSelectByExampleWithBLOBsElementGenerated(
272             XmlElement element, IntrospectedTable introspectedTable) {
273         boolean rc = true;
274 
275         for (Plugin plugin : plugins) {
276             if (!plugin.sqlMapSelectByExampleWithBLOBsElementGenerated(element,
277                     introspectedTable)) {
278                 rc = false;
279                 break;
280             }
281         }
282 
283         return rc;
284     }
285 
286     public boolean sqlMapSelectByPrimaryKeyElementGenerated(XmlElement element,
287             IntrospectedTable introspectedTable) {
288         boolean rc = true;
289 
290         for (Plugin plugin : plugins) {
291             if (!plugin.sqlMapSelectByPrimaryKeyElementGenerated(element,
292                     introspectedTable)) {
293                 rc = false;
294                 break;
295             }
296         }
297 
298         return rc;
299     }
300 
301     public boolean sqlMapGenerated(GeneratedXmlFile sqlMap,
302             IntrospectedTable introspectedTable) {
303         boolean rc = true;
304 
305         for (Plugin plugin : plugins) {
306             if (!plugin.sqlMapGenerated(sqlMap, introspectedTable)) {
307                 rc = false;
308                 break;
309             }
310         }
311 
312         return rc;
313     }
314 
315     public boolean sqlMapUpdateByExampleSelectiveElementGenerated(
316             XmlElement element, IntrospectedTable introspectedTable) {
317         boolean rc = true;
318 
319         for (Plugin plugin : plugins) {
320             if (!plugin.sqlMapUpdateByExampleSelectiveElementGenerated(element,
321                     introspectedTable)) {
322                 rc = false;
323                 break;
324             }
325         }
326 
327         return rc;
328     }
329 
330     public boolean sqlMapUpdateByExampleWithBLOBsElementGenerated(
331             XmlElement element, IntrospectedTable introspectedTable) {
332         boolean rc = true;
333 
334         for (Plugin plugin : plugins) {
335             if (!plugin.sqlMapUpdateByExampleWithBLOBsElementGenerated(element,
336                     introspectedTable)) {
337                 rc = false;
338                 break;
339             }
340         }
341 
342         return rc;
343     }
344 
345     public boolean sqlMapUpdateByExampleWithoutBLOBsElementGenerated(
346             XmlElement element, IntrospectedTable introspectedTable) {
347         boolean rc = true;
348 
349         for (Plugin plugin : plugins) {
350             if (!plugin.sqlMapUpdateByExampleWithoutBLOBsElementGenerated(
351                     element, introspectedTable)) {
352                 rc = false;
353                 break;
354             }
355         }
356 
357         return rc;
358     }
359 
360     public boolean sqlMapUpdateByPrimaryKeySelectiveElementGenerated(
361             XmlElement element, IntrospectedTable introspectedTable) {
362         boolean rc = true;
363 
364         for (Plugin plugin : plugins) {
365             if (!plugin.sqlMapUpdateByPrimaryKeySelectiveElementGenerated(
366                     element, introspectedTable)) {
367                 rc = false;
368                 break;
369             }
370         }
371 
372         return rc;
373     }
374 
375     public boolean sqlMapUpdateByPrimaryKeyWithBLOBsElementGenerated(
376             XmlElement element, IntrospectedTable introspectedTable) {
377         boolean rc = true;
378 
379         for (Plugin plugin : plugins) {
380             if (!plugin.sqlMapUpdateByPrimaryKeyWithBLOBsElementGenerated(
381                     element, introspectedTable)) {
382                 rc = false;
383                 break;
384             }
385         }
386 
387         return rc;
388     }
389 
390     public boolean sqlMapUpdateByPrimaryKeyWithoutBLOBsElementGenerated(
391             XmlElement element, IntrospectedTable introspectedTable) {
392         boolean rc = true;
393 
394         for (Plugin plugin : plugins) {
395             if (!plugin.sqlMapUpdateByPrimaryKeyWithoutBLOBsElementGenerated(
396                     element, introspectedTable)) {
397                 rc = false;
398                 break;
399             }
400         }
401 
402         return rc;
403     }
404 
405     public boolean clientCountByExampleMethodGenerated(Method method,
406             Interface interfaze, IntrospectedTable introspectedTable) {
407         boolean rc = true;
408 
409         for (Plugin plugin : plugins) {
410             if (!plugin.clientCountByExampleMethodGenerated(method, interfaze,
411                     introspectedTable)) {
412                 rc = false;
413                 break;
414             }
415         }
416 
417         return rc;
418     }
419 
420     public boolean clientCountByExampleMethodGenerated(Method method,
421             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
422         boolean rc = true;
423 
424         for (Plugin plugin : plugins) {
425             if (!plugin.clientCountByExampleMethodGenerated(method, topLevelClass,
426                     introspectedTable)) {
427                 rc = false;
428                 break;
429             }
430         }
431 
432         return rc;
433     }
434 
435     public boolean clientDeleteByExampleMethodGenerated(Method method,
436             Interface interfaze, IntrospectedTable introspectedTable) {
437         boolean rc = true;
438 
439         for (Plugin plugin : plugins) {
440             if (!plugin.clientDeleteByExampleMethodGenerated(method, interfaze,
441                     introspectedTable)) {
442                 rc = false;
443                 break;
444             }
445         }
446 
447         return rc;
448     }
449 
450     public boolean clientDeleteByExampleMethodGenerated(Method method,
451             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
452         boolean rc = true;
453 
454         for (Plugin plugin : plugins) {
455             if (!plugin.clientDeleteByExampleMethodGenerated(method,
456                     topLevelClass, introspectedTable)) {
457                 rc = false;
458                 break;
459             }
460         }
461 
462         return rc;
463     }
464 
465     public boolean clientDeleteByPrimaryKeyMethodGenerated(Method method,
466             Interface interfaze, IntrospectedTable introspectedTable) {
467         boolean rc = true;
468 
469         for (Plugin plugin : plugins) {
470             if (!plugin.clientDeleteByPrimaryKeyMethodGenerated(method, interfaze,
471                     introspectedTable)) {
472                 rc = false;
473                 break;
474             }
475         }
476 
477         return rc;
478     }
479 
480     public boolean clientDeleteByPrimaryKeyMethodGenerated(Method method,
481             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
482         boolean rc = true;
483 
484         for (Plugin plugin : plugins) {
485             if (!plugin.clientDeleteByPrimaryKeyMethodGenerated(method,
486                     topLevelClass, introspectedTable)) {
487                 rc = false;
488                 break;
489             }
490         }
491 
492         return rc;
493     }
494 
495     public boolean clientInsertMethodGenerated(Method method, Interface interfaze,
496             IntrospectedTable introspectedTable) {
497         boolean rc = true;
498 
499         for (Plugin plugin : plugins) {
500             if (!plugin.clientInsertMethodGenerated(method, interfaze,
501                     introspectedTable)) {
502                 rc = false;
503                 break;
504             }
505         }
506 
507         return rc;
508     }
509 
510     public boolean clientInsertMethodGenerated(Method method,
511             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
512         boolean rc = true;
513 
514         for (Plugin plugin : plugins) {
515             if (!plugin.clientInsertMethodGenerated(method, topLevelClass,
516                     introspectedTable)) {
517                 rc = false;
518                 break;
519             }
520         }
521 
522         return rc;
523     }
524 
525     public boolean clientGenerated(Interface interfaze,
526             TopLevelClass topLevelClass,
527             IntrospectedTable introspectedTable) {
528         boolean rc = true;
529 
530         for (Plugin plugin : plugins) {
531             if (!plugin.clientGenerated(interfaze, topLevelClass, introspectedTable)) {
532                 rc = false;
533                 break;
534             }
535         }
536 
537         return rc;
538     }
539 
540     public boolean clientSelectAllMethodGenerated(Method method,
541             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
542         boolean rc = true;
543 
544         for (Plugin plugin : plugins) {
545             if (!plugin.clientSelectAllMethodGenerated(method,
546                     topLevelClass, introspectedTable)) {
547                 rc = false;
548                 break;
549             }
550         }
551 
552         return rc;
553     }
554 
555     public boolean clientSelectAllMethodGenerated(Method method,
556             Interface interfaze, IntrospectedTable introspectedTable) {
557         boolean rc = true;
558 
559         for (Plugin plugin : plugins) {
560             if (!plugin.clientSelectAllMethodGenerated(method,
561                     interfaze, introspectedTable)) {
562                 rc = false;
563                 break;
564             }
565         }
566 
567         return rc;
568     }
569 
570     public boolean clientSelectByExampleWithBLOBsMethodGenerated(Method method,
571             Interface interfaze, IntrospectedTable introspectedTable) {
572         boolean rc = true;
573 
574         for (Plugin plugin : plugins) {
575             if (!plugin.clientSelectByExampleWithBLOBsMethodGenerated(method,
576                     interfaze, introspectedTable)) {
577                 rc = false;
578                 break;
579             }
580         }
581 
582         return rc;
583     }
584 
585     public boolean clientSelectByExampleWithBLOBsMethodGenerated(Method method,
586             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
587         boolean rc = true;
588 
589         for (Plugin plugin : plugins) {
590             if (!plugin.clientSelectByExampleWithBLOBsMethodGenerated(method,
591                     topLevelClass, introspectedTable)) {
592                 rc = false;
593                 break;
594             }
595         }
596 
597         return rc;
598     }
599 
600     public boolean clientSelectByExampleWithoutBLOBsMethodGenerated(Method method,
601             Interface interfaze, IntrospectedTable introspectedTable) {
602         boolean rc = true;
603 
604         for (Plugin plugin : plugins) {
605             if (!plugin.clientSelectByExampleWithoutBLOBsMethodGenerated(method,
606                     interfaze, introspectedTable)) {
607                 rc = false;
608                 break;
609             }
610         }
611 
612         return rc;
613     }
614 
615     public boolean clientSelectByExampleWithoutBLOBsMethodGenerated(Method method,
616             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
617         boolean rc = true;
618 
619         for (Plugin plugin : plugins) {
620             if (!plugin.clientSelectByExampleWithoutBLOBsMethodGenerated(method,
621                     topLevelClass, introspectedTable)) {
622                 rc = false;
623                 break;
624             }
625         }
626 
627         return rc;
628     }
629 
630     public boolean clientSelectByPrimaryKeyMethodGenerated(Method method,
631             Interface interfaze, IntrospectedTable introspectedTable) {
632         boolean rc = true;
633 
634         for (Plugin plugin : plugins) {
635             if (!plugin.clientSelectByPrimaryKeyMethodGenerated(method, interfaze,
636                     introspectedTable)) {
637                 rc = false;
638                 break;
639             }
640         }
641 
642         return rc;
643     }
644 
645     public boolean clientSelectByPrimaryKeyMethodGenerated(Method method,
646             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
647         boolean rc = true;
648 
649         for (Plugin plugin : plugins) {
650             if (!plugin.clientSelectByPrimaryKeyMethodGenerated(method,
651                     topLevelClass, introspectedTable)) {
652                 rc = false;
653                 break;
654             }
655         }
656 
657         return rc;
658     }
659 
660     public boolean clientUpdateByExampleSelectiveMethodGenerated(Method method,
661             Interface interfaze, IntrospectedTable introspectedTable) {
662         boolean rc = true;
663 
664         for (Plugin plugin : plugins) {
665             if (!plugin.clientUpdateByExampleSelectiveMethodGenerated(method,
666                     interfaze, introspectedTable)) {
667                 rc = false;
668                 break;
669             }
670         }
671 
672         return rc;
673     }
674 
675     public boolean clientUpdateByExampleSelectiveMethodGenerated(Method method,
676             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
677         boolean rc = true;
678 
679         for (Plugin plugin : plugins) {
680             if (!plugin.clientUpdateByExampleSelectiveMethodGenerated(method,
681                     topLevelClass, introspectedTable)) {
682                 rc = false;
683                 break;
684             }
685         }
686 
687         return rc;
688     }
689 
690     public boolean clientUpdateByExampleWithBLOBsMethodGenerated(Method method,
691             Interface interfaze, IntrospectedTable introspectedTable) {
692         boolean rc = true;
693 
694         for (Plugin plugin : plugins) {
695             if (!plugin.clientUpdateByExampleWithBLOBsMethodGenerated(method,
696                     interfaze, introspectedTable)) {
697                 rc = false;
698                 break;
699             }
700         }
701 
702         return rc;
703     }
704 
705     public boolean clientUpdateByExampleWithBLOBsMethodGenerated(Method method,
706             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
707         boolean rc = true;
708 
709         for (Plugin plugin : plugins) {
710             if (!plugin.clientUpdateByExampleWithBLOBsMethodGenerated(method,
711                     topLevelClass, introspectedTable)) {
712                 rc = false;
713                 break;
714             }
715         }
716 
717         return rc;
718     }
719 
720     public boolean clientUpdateByExampleWithoutBLOBsMethodGenerated(Method method,
721             Interface interfaze, IntrospectedTable introspectedTable) {
722         boolean rc = true;
723 
724         for (Plugin plugin : plugins) {
725             if (!plugin.clientUpdateByExampleWithoutBLOBsMethodGenerated(method,
726                     interfaze, introspectedTable)) {
727                 rc = false;
728                 break;
729             }
730         }
731 
732         return rc;
733     }
734 
735     public boolean clientUpdateByExampleWithoutBLOBsMethodGenerated(Method method,
736             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
737         boolean rc = true;
738 
739         for (Plugin plugin : plugins) {
740             if (!plugin.clientUpdateByExampleWithoutBLOBsMethodGenerated(method,
741                     topLevelClass, introspectedTable)) {
742                 rc = false;
743                 break;
744             }
745         }
746 
747         return rc;
748     }
749 
750     public boolean clientUpdateByPrimaryKeySelectiveMethodGenerated(Method method,
751             Interface interfaze, IntrospectedTable introspectedTable) {
752         boolean rc = true;
753 
754         for (Plugin plugin : plugins) {
755             if (!plugin.clientUpdateByPrimaryKeySelectiveMethodGenerated(method,
756                     interfaze, introspectedTable)) {
757                 rc = false;
758                 break;
759             }
760         }
761 
762         return rc;
763     }
764 
765     public boolean clientUpdateByPrimaryKeySelectiveMethodGenerated(Method method,
766             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
767         boolean rc = true;
768 
769         for (Plugin plugin : plugins) {
770             if (!plugin.clientUpdateByPrimaryKeySelectiveMethodGenerated(method,
771                     topLevelClass, introspectedTable)) {
772                 rc = false;
773                 break;
774             }
775         }
776 
777         return rc;
778     }
779 
780     public boolean clientUpdateByPrimaryKeyWithBLOBsMethodGenerated(Method method,
781             Interface interfaze, IntrospectedTable introspectedTable) {
782         boolean rc = true;
783 
784         for (Plugin plugin : plugins) {
785             if (!plugin.clientUpdateByPrimaryKeyWithBLOBsMethodGenerated(method,
786                     interfaze, introspectedTable)) {
787                 rc = false;
788                 break;
789             }
790         }
791 
792         return rc;
793     }
794 
795     public boolean clientUpdateByPrimaryKeyWithBLOBsMethodGenerated(Method method,
796             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
797         boolean rc = true;
798 
799         for (Plugin plugin : plugins) {
800             if (!plugin.clientUpdateByPrimaryKeyWithBLOBsMethodGenerated(method,
801                     topLevelClass, introspectedTable)) {
802                 rc = false;
803                 break;
804             }
805         }
806 
807         return rc;
808     }
809 
810     public boolean clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(
811             Method method, Interface interfaze,
812             IntrospectedTable introspectedTable) {
813         boolean rc = true;
814 
815         for (Plugin plugin : plugins) {
816             if (!plugin.clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(
817                     method, interfaze, introspectedTable)) {
818                 rc = false;
819                 break;
820             }
821         }
822 
823         return rc;
824     }
825 
826     public boolean clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(
827             Method method, TopLevelClass topLevelClass,
828             IntrospectedTable introspectedTable) {
829         boolean rc = true;
830 
831         for (Plugin plugin : plugins) {
832             if (!plugin.clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(
833                     method, topLevelClass, introspectedTable)) {
834                 rc = false;
835                 break;
836             }
837         }
838 
839         return rc;
840     }
841 
842     public List<GeneratedJavaFile> contextGenerateAdditionalJavaFiles() {
843         List<GeneratedJavaFile> answer = new ArrayList<GeneratedJavaFile>();
844         for (Plugin plugin : plugins) {
845             List<GeneratedJavaFile> temp = plugin
846                     .contextGenerateAdditionalJavaFiles();
847             if (temp != null) {
848                 answer.addAll(temp);
849             }
850         }
851         return answer;
852     }
853 
854     public List<GeneratedXmlFile> contextGenerateAdditionalXmlFiles() {
855         List<GeneratedXmlFile> answer = new ArrayList<GeneratedXmlFile>();
856         for (Plugin plugin : plugins) {
857             List<GeneratedXmlFile> temp = plugin
858                     .contextGenerateAdditionalXmlFiles();
859             if (temp != null) {
860                 answer.addAll(temp);
861             }
862         }
863         return answer;
864     }
865 
866     public boolean sqlMapDocumentGenerated(Document document,
867             IntrospectedTable introspectedTable) {
868         boolean rc = true;
869 
870         for (Plugin plugin : plugins) {
871             if (!plugin.sqlMapDocumentGenerated(document, introspectedTable)) {
872                 rc = false;
873                 break;
874             }
875         }
876 
877         return rc;
878     }
879 
880     public boolean modelFieldGenerated(Field field,
881             TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
882             IntrospectedTable introspectedTable,
883             Plugin.ModelClassType modelClassType) {
884         boolean rc = true;
885 
886         for (Plugin plugin : plugins) {
887             if (!plugin.modelFieldGenerated(field, topLevelClass,
888                     introspectedColumn, introspectedTable, modelClassType)) {
889                 rc = false;
890                 break;
891             }
892         }
893 
894         return rc;
895     }
896 
897     public boolean modelGetterMethodGenerated(Method method,
898             TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
899             IntrospectedTable introspectedTable,
900             Plugin.ModelClassType modelClassType) {
901         boolean rc = true;
902 
903         for (Plugin plugin : plugins) {
904             if (!plugin.modelGetterMethodGenerated(method, topLevelClass,
905                     introspectedColumn, introspectedTable, modelClassType)) {
906                 rc = false;
907                 break;
908             }
909         }
910 
911         return rc;
912     }
913 
914     public boolean modelSetterMethodGenerated(Method method,
915             TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
916             IntrospectedTable introspectedTable,
917             Plugin.ModelClassType modelClassType) {
918         boolean rc = true;
919 
920         for (Plugin plugin : plugins) {
921             if (!plugin.modelSetterMethodGenerated(method, topLevelClass,
922                     introspectedColumn, introspectedTable, modelClassType)) {
923                 rc = false;
924                 break;
925             }
926         }
927 
928         return rc;
929     }
930 
931     public boolean sqlMapInsertSelectiveElementGenerated(XmlElement element,
932             IntrospectedTable introspectedTable) {
933         boolean rc = true;
934 
935         for (Plugin plugin : plugins) {
936             if (!plugin.sqlMapInsertSelectiveElementGenerated(element,
937                     introspectedTable)) {
938                 rc = false;
939                 break;
940             }
941         }
942 
943         return rc;
944     }
945 
946     public boolean clientInsertSelectiveMethodGenerated(Method method,
947             Interface interfaze, IntrospectedTable introspectedTable) {
948         boolean rc = true;
949 
950         for (Plugin plugin : plugins) {
951             if (!plugin.clientInsertSelectiveMethodGenerated(method, interfaze,
952                     introspectedTable)) {
953                 rc = false;
954                 break;
955             }
956         }
957 
958         return rc;
959     }
960 
961     public boolean clientInsertSelectiveMethodGenerated(Method method,
962             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
963         boolean rc = true;
964 
965         for (Plugin plugin : plugins) {
966             if (!plugin.clientInsertSelectiveMethodGenerated(method,
967                     topLevelClass, introspectedTable)) {
968                 rc = false;
969                 break;
970             }
971         }
972 
973         return rc;
974     }
975 
976     public void initialized(IntrospectedTable introspectedTable) {
977         for (Plugin plugin : plugins) {
978             plugin.initialized(introspectedTable);
979         }
980     }
981 
982     public boolean sqlMapBaseColumnListElementGenerated(XmlElement element,
983             IntrospectedTable introspectedTable) {
984         boolean rc = true;
985 
986         for (Plugin plugin : plugins) {
987             if (!plugin.sqlMapBaseColumnListElementGenerated(element,
988                     introspectedTable)) {
989                 rc = false;
990                 break;
991             }
992         }
993 
994         return rc;
995     }
996 
997     public boolean sqlMapBlobColumnListElementGenerated(XmlElement element,
998             IntrospectedTable introspectedTable) {
999         boolean rc = true;
1000 
1001         for (Plugin plugin : plugins) {
1002             if (!plugin.sqlMapBlobColumnListElementGenerated(element,
1003                     introspectedTable)) {
1004                 rc = false;
1005                 break;
1006             }
1007         }
1008 
1009         return rc;
1010     }
1011 
1012     public boolean providerGenerated(TopLevelClass topLevelClass,
1013             IntrospectedTable introspectedTable) {
1014         boolean rc = true;
1015 
1016         for (Plugin plugin : plugins) {
1017             if (!plugin.providerGenerated(topLevelClass, introspectedTable)) {
1018                 rc = false;
1019                 break;
1020             }
1021         }
1022 
1023         return rc;
1024     }
1025 
1026     public boolean providerApplyWhereMethodGenerated(Method method,
1027             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1028         boolean rc = true;
1029 
1030         for (Plugin plugin : plugins) {
1031             if (!plugin.providerApplyWhereMethodGenerated(method,
1032                     topLevelClass, introspectedTable)) {
1033                 rc = false;
1034                 break;
1035             }
1036         }
1037 
1038         return rc;
1039     }
1040 
1041     public boolean providerCountByExampleMethodGenerated(Method method,
1042             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1043         boolean rc = true;
1044 
1045         for (Plugin plugin : plugins) {
1046             if (!plugin.providerCountByExampleMethodGenerated(method,
1047                     topLevelClass, introspectedTable)) {
1048                 rc = false;
1049                 break;
1050             }
1051         }
1052 
1053         return rc;
1054     }
1055 
1056     public boolean providerDeleteByExampleMethodGenerated(Method method,
1057             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1058         boolean rc = true;
1059 
1060         for (Plugin plugin : plugins) {
1061             if (!plugin.providerDeleteByExampleMethodGenerated(method,
1062                     topLevelClass, introspectedTable)) {
1063                 rc = false;
1064                 break;
1065             }
1066         }
1067 
1068         return rc;
1069     }
1070 
1071     public boolean providerInsertSelectiveMethodGenerated(Method method,
1072             TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1073         boolean rc = true;
1074 
1075         for (Plugin plugin : plugins) {
1076             if (!plugin.providerInsertSelectiveMethodGenerated(method,
1077                     topLevelClass, introspectedTable)) {
1078                 rc = false;
1079                 break;
1080             }
1081         }
1082 
1083         return rc;
1084     }
1085 
1086     public boolean providerSelectByExampleWithBLOBsMethodGenerated(
1087             Method method, TopLevelClass topLevelClass,
1088             IntrospectedTable introspectedTable) {
1089         boolean rc = true;
1090 
1091         for (Plugin plugin : plugins) {
1092             if (!plugin.providerSelectByExampleWithBLOBsMethodGenerated(method,
1093                     topLevelClass, introspectedTable)) {
1094                 rc = false;
1095                 break;
1096             }
1097         }
1098 
1099         return rc;
1100     }
1101 
1102     public boolean providerSelectByExampleWithoutBLOBsMethodGenerated(
1103             Method method, TopLevelClass topLevelClass,
1104             IntrospectedTable introspectedTable) {
1105         boolean rc = true;
1106 
1107         for (Plugin plugin : plugins) {
1108             if (!plugin.providerSelectByExampleWithoutBLOBsMethodGenerated(method,
1109                     topLevelClass, introspectedTable)) {
1110                 rc = false;
1111                 break;
1112             }
1113         }
1114 
1115         return rc;
1116     }
1117 
1118     public boolean providerUpdateByExampleSelectiveMethodGenerated(
1119             Method method, TopLevelClass topLevelClass,
1120             IntrospectedTable introspectedTable) {
1121         boolean rc = true;
1122 
1123         for (Plugin plugin : plugins) {
1124             if (!plugin.providerUpdateByExampleSelectiveMethodGenerated(method,
1125                     topLevelClass, introspectedTable)) {
1126                 rc = false;
1127                 break;
1128             }
1129         }
1130 
1131         return rc;
1132     }
1133 
1134     public boolean providerUpdateByExampleWithBLOBsMethodGenerated(
1135             Method method, TopLevelClass topLevelClass,
1136             IntrospectedTable introspectedTable) {
1137         boolean rc = true;
1138 
1139         for (Plugin plugin : plugins) {
1140             if (!plugin.providerUpdateByExampleWithBLOBsMethodGenerated(method,
1141                     topLevelClass, introspectedTable)) {
1142                 rc = false;
1143                 break;
1144             }
1145         }
1146 
1147         return rc;
1148     }
1149 
1150     public boolean providerUpdateByExampleWithoutBLOBsMethodGenerated(
1151             Method method, TopLevelClass topLevelClass,
1152             IntrospectedTable introspectedTable) {
1153         boolean rc = true;
1154 
1155         for (Plugin plugin : plugins) {
1156             if (!plugin.providerUpdateByExampleWithoutBLOBsMethodGenerated(method,
1157                     topLevelClass, introspectedTable)) {
1158                 rc = false;
1159                 break;
1160             }
1161         }
1162 
1163         return rc;
1164     }
1165 
1166     public boolean providerUpdateByPrimaryKeySelectiveMethodGenerated(
1167             Method method, TopLevelClass topLevelClass,
1168             IntrospectedTable introspectedTable) {
1169         boolean rc = true;
1170 
1171         for (Plugin plugin : plugins) {
1172             if (!plugin.providerUpdateByPrimaryKeySelectiveMethodGenerated(method,
1173                     topLevelClass, introspectedTable)) {
1174                 rc = false;
1175                 break;
1176             }
1177         }
1178 
1179         return rc;
1180     }
1181 
1182     public boolean sqlMapSelectAllElementGenerated(XmlElement element,
1183             IntrospectedTable introspectedTable) {
1184         boolean rc = true;
1185 
1186         for (Plugin plugin : plugins) {
1187             if (!plugin.sqlMapSelectAllElementGenerated(element, introspectedTable)) {
1188                 rc = false;
1189                 break;
1190             }
1191         }
1192 
1193         return rc;
1194     }
1195 }