1 package org.apache.torque.mojo; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 import org.apache.commons.configuration.PropertiesConfiguration; 23 24 /** 25 * Generates SQL for populating the id table in the database. 26 * 27 * @author Raphael Pieroni (rafale_at_codehaus.org) 28 * @author <a href="fischer@seitenbau.de">Thomas Fischer</a> 29 * @author <a href="kannegiesser@synyx.de">Marc Kannegiesser</a> 30 * 31 * @goal id-table-init-sql 32 * @phase generate-sources 33 */ 34 public class IdTableInitSqlMojo extends SqlMojoBase 35 { 36 public static final String INITIALID_CONTEXT_PROPERTY 37 = "initialID"; 38 public static final String INITIALIDVALUE_CONTEXT_PROPERTY 39 = "initialIDValue"; 40 public static final String INITIALIDSTEP_CONTEXT_PROPERTY 41 = "initialIDStep"; 42 43 // The following dummies trick the Mojo Description Extractor 44 // into setting the correct default values for 45 // outputDir, reportFile, contextPropertiesPath, schemaExcludes, suffix 46 /** 47 * The directory in which the SQL will be generated. 48 * 49 * @parameter property="outputDir" 50 * expression="${project.build.directory}/generated-sql/torque" 51 */ 52 private String dummy; 53 54 /** 55 * The location where the report file will be generated. 56 * 57 * @parameter property="reportFile" 58 * expression="../../torque/report.${project.artifact.artifactId}.idtable-init-sql.generation" 59 */ 60 private String dummy2; 61 62 /** 63 * The location where the context property file for velocity will be 64 * generated. 65 * 66 * @parameter property="contextPropertiesPath" 67 * expression="${project.build.directory}/torque/context.idtable-init-sql.properties" 68 */ 69 private String dummy3; 70 71 /** 72 * The schema files which should be excluded in generation 73 * (in ant-style notation). 74 * 75 * @parameter property="schemaExcludes" expression="id-table-schema.xml" 76 */ 77 private String dummy4; 78 79 /** 80 * The suffix of the idTable-sql files. 81 * 82 * @parameter property="suffix" 83 * expression="-idtable-init" 84 */ 85 private String dummy5; 86 87 /** 88 * The initial ID of the idtables 89 * 90 * @parameter expression="101" 91 */ 92 private String initialID; 93 94 /** 95 * The initial IDValue of the idtable 96 * 97 * @parameter expression="1000" 98 */ 99 private String initialIDValue; 100 101 /** 102 * The initial ID Step of the idtable 103 * 104 * @parameter expression="10" 105 */ 106 private String initialIDStep; 107 108 /** 109 * Creates a new IdTableInitSqlMojo object. 110 */ 111 public IdTableInitSqlMojo() 112 { 113 } 114 115 /** 116 * Sets the initial id of the idtables 117 * 118 * @param initialID The initial of the idtables 119 */ 120 public void setInitialID(String initialID) 121 { 122 this.initialID = initialID; 123 } 124 125 /** 126 * Returns the initial id of the idtable 127 * 128 * @return initialID The initial ID of the idtables 129 */ 130 public String getInitialID() 131 { 132 return this.initialID; 133 } 134 135 136 137 /** 138 * Sets the initial id value of the idtables 139 * 140 * @param initialIDValue The initial id value of the tables 141 */ 142 public void setInitialIDValue(String initialIDValue) 143 { 144 this.initialIDValue = initialIDValue; 145 } 146 147 /** 148 * Returns the initial id value of the idtables 149 * 150 * @return initialIDValue the initial id value of the idtables 151 */ 152 public String getInitialIDValue() 153 { 154 return this.initialIDValue; 155 } 156 157 158 159 /** 160 * Sets the initial id step of the idtables 161 * 162 * @param initialIDStep The initial id step of the tables 163 */ 164 public void setInitialIDStep(String initialIDStep) 165 { 166 this.initialIDStep = initialIDStep; 167 } 168 169 /** 170 * Returns the initial id step of the idtables 171 * 172 * @return initialIDStep the initial id step of the idtables 173 */ 174 public String getInitialIDStep() 175 { 176 return this.initialIDStep; 177 } 178 179 /** 180 * Returns the context properties for the Texen task. 181 * 182 * @return The PropertiesConfiguration containing all context properties, 183 * not null. 184 */ 185 protected PropertiesConfiguration getMojoContextProperties() 186 { 187 PropertiesConfiguration configuration = super.getMojoContextProperties(); 188 configuration.addProperty( 189 INITIALID_CONTEXT_PROPERTY, 190 initialID); 191 192 configuration.addProperty( 193 INITIALIDVALUE_CONTEXT_PROPERTY, 194 initialIDValue); 195 196 configuration.addProperty( 197 INITIALIDSTEP_CONTEXT_PROPERTY, 198 initialIDStep); 199 return configuration; 200 } 201 202 /** 203 * Returns the path to the control template. 204 * 205 * @return "sql/id-table/Control.vm" 206 */ 207 protected String getControlTemplate() 208 { 209 return "sql/id-table/Control.vm"; 210 } 211 }