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.rules;
17  
18  import org.mybatis.generator.api.IntrospectedTable;
19  import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
20  
21  /**
22   * This class can be used by plugins to easily implement a custom rules
23   * implementation. Plugins should respect the rules implementation calculated by
24   * the generator, as well as implementations from other plugins. In general if
25   * something is disabled by the default rules, or is disabled by some other
26   * plugin, it should not be re-enabled. Therefore, the following pattern of use
27   * is recommended:
28   * 
29   * <pre>
30   * public class MyPlugin extends PluginAdapter {
31   *   &#64;Override
32   *   public void initialized(IntrospectedTable introspectedTable) {
33   *     MyRules myRules = new MyRules(introspectedTable.getRules());
34   *     introspectedTable.setRules(myRules);
35   *   }
36   * }
37   * 
38   * public class MyRules extends RulesDelegate (
39   *   public MyRules(Rules rules) {
40   *     super(rules);
41   *   }
42   *   
43   *   &#64;Override
44   *   public boolean generateInsert() {
45   *     boolean rc = super.generateInsert();
46   *     if (rc) {
47   *       // Other plugins, and the default rules, enable generation
48   *       // of the insert method.  We can decide to disable it here
49   *       // if needed.
50   *     }
51   *     
52   *     return rc;
53   *   }
54   * </pre>
55   * 
56   * 
57   * @author Jeff Butler
58   * 
59   */
60  public class RulesDelegate implements Rules {
61      protected Rules rules;
62  
63      public RulesDelegate(Rules rules) {
64          this.rules = rules;
65      }
66  
67      public FullyQualifiedJavaType calculateAllFieldsClass() {
68          return rules.calculateAllFieldsClass();
69      }
70  
71      public boolean generateBaseRecordClass() {
72          return rules.generateBaseRecordClass();
73      }
74  
75      public boolean generateBaseResultMap() {
76          return rules.generateBaseResultMap();
77      }
78  
79      public boolean generateCountByExample() {
80          return rules.generateCountByExample();
81      }
82  
83      public boolean generateDeleteByExample() {
84          return rules.generateDeleteByExample();
85      }
86  
87      public boolean generateDeleteByPrimaryKey() {
88          return rules.generateDeleteByPrimaryKey();
89      }
90  
91      public boolean generateExampleClass() {
92          return rules.generateExampleClass();
93      }
94  
95      public boolean generateInsert() {
96          return rules.generateInsert();
97      }
98  
99      public boolean generateInsertSelective() {
100         return rules.generateInsertSelective();
101     }
102 
103     public boolean generatePrimaryKeyClass() {
104         return rules.generatePrimaryKeyClass();
105     }
106 
107     public boolean generateRecordWithBLOBsClass() {
108         return rules.generateRecordWithBLOBsClass();
109     }
110 
111     public boolean generateResultMapWithBLOBs() {
112         return rules.generateResultMapWithBLOBs();
113     }
114 
115     public boolean generateSelectByExampleWithBLOBs() {
116         return rules.generateSelectByExampleWithBLOBs();
117     }
118 
119     public boolean generateSelectByExampleWithoutBLOBs() {
120         return rules.generateSelectByExampleWithoutBLOBs();
121     }
122 
123     public boolean generateSelectByPrimaryKey() {
124         return rules.generateSelectByPrimaryKey();
125     }
126 
127     public boolean generateSQLExampleWhereClause() {
128         return rules.generateSQLExampleWhereClause();
129     }
130 
131     public boolean generateMyBatis3UpdateByExampleWhereClause() {
132         return rules.generateMyBatis3UpdateByExampleWhereClause();
133     }
134 
135     public boolean generateUpdateByExampleSelective() {
136         return rules.generateUpdateByExampleSelective();
137     }
138 
139     public boolean generateUpdateByExampleWithBLOBs() {
140         return rules.generateUpdateByExampleWithBLOBs();
141     }
142 
143     public boolean generateUpdateByExampleWithoutBLOBs() {
144         return rules.generateUpdateByExampleWithoutBLOBs();
145     }
146 
147     public boolean generateUpdateByPrimaryKeySelective() {
148         return rules.generateUpdateByPrimaryKeySelective();
149     }
150 
151     public boolean generateUpdateByPrimaryKeyWithBLOBs() {
152         return rules.generateUpdateByPrimaryKeyWithBLOBs();
153     }
154 
155     public boolean generateUpdateByPrimaryKeyWithoutBLOBs() {
156         return rules.generateUpdateByPrimaryKeyWithoutBLOBs();
157     }
158 
159     public IntrospectedTable getIntrospectedTable() {
160         return rules.getIntrospectedTable();
161     }
162 
163     public boolean generateBaseColumnList() {
164         return rules.generateBaseColumnList();
165     }
166 
167     public boolean generateBlobColumnList() {
168         return rules.generateBlobColumnList();
169     }
170 
171     public boolean generateJavaClient() {
172         return rules.generateJavaClient();
173     }
174 }