ParameterSet.java

00001 /*
00002  * JOnAS: Java(TM) Open Application Server
00003  * Copyright (C) 1999 Bull S.A.
00004  * Contact: jonas-team@objectweb.org
00005  * 
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or any later version.
00010  * 
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  * 
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
00019  * USA
00020  *
00021  * Initial developer(s): Nicolas Christin
00022  * Contributor(s): ______________________________________.
00023  *
00024  * --------------------------------------------------------------------------
00025  * $Id: ParameterSet.java,v 1.5 2003/11/21 01:13:25 skrupanszky Exp $
00026  * --------------------------------------------------------------------------
00027  */
00028 
00029 
00030 package org.objectweb.jonas.newbean;
00031 
00032 
00033 import org.apache.velocity.VelocityContext;
00034 
00035 
00039 public class ParameterSet {
00040 
00041     private Parameter beanNameParameter = null;
00042     private Parameter beanFlavorParameter = null;
00043     private Parameter sessionTypeParameter = null;
00044     private Parameter persistenceManagerParameter = null;
00045     private Parameter isLocalParameter = null;
00046     private Parameter pkgNameParameter = null;
00047     private Parameter jarNameParameter = null;
00048     private Parameter pkClassParameter = null;
00049 
00050 
00055     public ParameterSet(VelocityContext context) {
00056 
00057         // ----------------------------
00058         // beanNameParameter definition
00059         // ----------------------------
00060 
00061         beanNameParameter = new Parameter(context) {
00062 
00063                 public String getPrompt() {
00064                     return "Bean Name";
00065                 }
00066 
00067                                 public String getArgKeyword()
00068                                 {
00069                                         return "-beanName";
00070                                 }
00071 
00072                 public boolean isValid() {
00073                     return (value.length() > 0);
00074                 }
00075                 
00076                 public void export() {
00077                     vContext.put("beanName", value);
00078                 }
00079                 
00080                 public Parameter getNextParameter() {
00081                     return beanFlavorParameter;
00082                 }
00083 
00084             };
00085 
00086 
00087         // ------------------------------
00088         // beanFlavorParameter definition
00089         // ------------------------------
00090 
00091         beanFlavorParameter = new Parameter(context) {
00092 
00093                 private final Integer SESSION_BEAN        = new Integer(0);
00094                 private final Integer ENTITY_BEAN         = new Integer(1);
00095                 private final Integer MESSAGE_DRIVEN_BEAN = new Integer(2);
00096                 
00097                 public String getPrompt() {
00098                     return "Bean type\n  S   Session bean\n  E   Entity bean\n  MD  Message-Driven bean";
00099                 }
00100 
00101                                 public String getArgKeyword()
00102                                 {
00103                                         return "-beanType";
00104                                 }
00105 
00106                 public void setValue(String input) {
00107                     value = input.toUpperCase();
00108                 }
00109     
00110                 public boolean isValid() {
00111                     return (value.equals("S") 
00112                             || value.equals("E")
00113                             || value.equals("MD"));
00114                 }
00115 
00116                 public void export() {
00117                     vContext.put("SESSION_BEAN", SESSION_BEAN);
00118                     vContext.put("ENTITY_BEAN", ENTITY_BEAN);
00119                     vContext.put("MESSAGE_DRIVEN_BEAN", MESSAGE_DRIVEN_BEAN);
00120                     Integer beanFlavor = null;
00121                     String beanType = null;
00122                     if (value.equals("S")) {
00123                         beanFlavor = SESSION_BEAN;
00124                         beanType = "S";
00125                     }
00126                     else if (value.equals("E")) {
00127                         beanFlavor = ENTITY_BEAN;
00128                         beanType = "E";
00129                     }
00130                     else if (value.equals("MD")) {
00131                         beanFlavor = MESSAGE_DRIVEN_BEAN;
00132                         beanType = "MD";
00133                     }
00134                     vContext.put("beanFlavor", beanFlavor);
00135                     vContext.put("beanType", beanType);
00136                 }
00137 
00138                 public Parameter getNextParameter() {
00139                     Integer beanFlavor = (Integer)vContext.get("beanFlavor");
00140                     if (beanFlavor == SESSION_BEAN) {
00141                         return sessionTypeParameter;
00142                     }
00143                     else if (beanFlavor == ENTITY_BEAN) {
00144                         return persistenceManagerParameter;
00145                     }
00146                     return pkgNameParameter;
00147                 }
00148 
00149             };
00150         
00151 
00152         // -------------------------------
00153         // sessionTypeParameter definition
00154         // -------------------------------
00155 
00156         sessionTypeParameter = new Parameter(context) {
00157 
00158                 private final Integer STATELESS = new Integer(0);
00159                 private final Integer STATEFUL  = new Integer(1);
00160 
00161                 public String getPrompt() {
00162                     return "Session type\n  L  Staless\n  F  Stateful";
00163                 }
00164 
00165                                 public String getArgKeyword()
00166                                 {
00167                                         return "-sessionType";
00168                                 }
00169 
00170                 public void setValue(String input) {
00171                     value = input.toUpperCase();
00172                 }
00173     
00174                 public boolean isValid() {
00175                     return (value.equals("L")
00176                             || value.equals("F"));
00177                 }
00178                 
00179                 public void export() {
00180                     vContext.put("STATELESS", STATELESS);
00181                     vContext.put("STATEFUL", STATEFUL);
00182                     Integer sessionType = null;
00183                     String beanType = (String)vContext.get("beanType");
00184                     if (value.equals("L")) {
00185                         sessionType = STATELESS;
00186                         beanType += "L";
00187                     }
00188                     else if (value.equals("F")) {
00189                         sessionType = STATEFUL;
00190                         beanType += "F";
00191                     }
00192                     vContext.put("sessionType", sessionType);
00193                     vContext.put("beanType", beanType);
00194                 }
00195                 
00196                 public Parameter getNextParameter() {
00197                     return isLocalParameter;
00198                 }
00199 
00200             };
00201 
00202 
00203         // --------------------------------------
00204         // persistenceManagerParameter definition
00205         // --------------------------------------
00206 
00207         persistenceManagerParameter = new Parameter(context) {
00208 
00209                 private final Integer BMP      = new Integer(0);
00210                 private final Integer CMP1     = new Integer(1);
00211                 private final Integer CMP2     = new Integer(2);
00212 
00213                 public String getPrompt() {
00214                     return "Persistance manager\n    B  BMP\n    C  CMP 1.x\n    C2 CMP 2.x";
00215                 }
00216 
00217                                 public String getArgKeyword()
00218                                 {
00219                                         return "-persistence";
00220                                 }
00221 
00222                 public void setValue(String input) {
00223                     value = input.toUpperCase();
00224                 }
00225     
00226                 public boolean isValid() {
00227                     return (value.equals("C")
00228                             || value.equals("B")
00229                             || value.equals("C2"));
00230                 }
00231                 
00232                 public void export() {
00233                     vContext.put("CMP1", CMP1);
00234                     vContext.put("CMP2", CMP2);
00235                     vContext.put("BMP", BMP);
00236                     Integer persistenceManager = null;
00237                     
00238                     String beanType = (String)vContext.get("beanType");
00239                     if (value.equals("C")) {
00240                         persistenceManager = CMP1;
00241                         beanType += "C";
00242                     }
00243                     else if (value.equals("B")) {
00244                         persistenceManager = BMP;
00245                         beanType += "B";
00246                     }
00247                     else if (value.equals("C2")) {
00248                         persistenceManager = CMP2;
00249                         beanType += "C2";
00250                     }
00251                     vContext.put("persistenceManager", persistenceManager);
00252                     vContext.put("beanType", beanType);
00253                 }
00254                 
00255                 public Parameter getNextParameter() {
00256                     return isLocalParameter;
00257                 }
00258 
00259             };
00260 
00261 
00262         // ---------------------------
00263         // isLocalParameter definition
00264         // ---------------------------
00265 
00266         isLocalParameter = new Parameter(context) {
00267 
00268                 private final Boolean FALSE  = Boolean.FALSE;
00269                 private final Boolean TRUE   = Boolean.TRUE;
00270 
00271                 public String getPrompt() {
00272                     return "Bean location\n  R  Remote\n  L  Local";
00273                 }
00274 
00275                                 public String getArgKeyword()
00276                                 {
00277                                         return "-location";
00278                                 }
00279 
00280                 public void setValue(String input) {
00281                     value = input.toUpperCase();
00282                 }
00283     
00284                 public boolean isValid() {
00285                     return (value.equals("R")
00286                             || value.equals("L"));
00287                 }
00288                 
00289                 public void export() {
00290                     Boolean isLocal = null;
00291                     String beanType = (String)vContext.get("beanType");
00292                     if (value.equals("L")) {
00293                         isLocal = TRUE;
00294                         beanType += "L";
00295                     }
00296                     else if (value.equals("R")) {
00297                         isLocal = FALSE;
00298                         beanType += "R";
00299                     }
00300                     vContext.put("isLocal", isLocal);
00301                     vContext.put("beanType", beanType);
00302                 }
00303                 
00304                 public Parameter getNextParameter() {
00305                     return pkgNameParameter;
00306                 }
00307 
00308             };
00309 
00310 
00311         // ---------------------------
00312         // pkgNameParameter definition
00313         // ---------------------------
00314 
00315         pkgNameParameter = new Parameter(context) {
00316 
00317                 public String getPrompt() {
00318                     return "Package name";
00319                 }
00320 
00321                                 public String getArgKeyword()
00322                                 {
00323                                         return "-pkgName";
00324                                 }
00325 
00326                 public boolean isValid() {
00327                     return (value.length() > 0);
00328                 }
00329                 
00330                 public void export() {
00331                     vContext.put("pkgName", value);
00332                 }
00333                 
00334                 public Parameter getNextParameter() {
00335                     return jarNameParameter;
00336                 }
00337 
00338             };
00339 
00340 
00341         // ---------------------------
00342         // jarNameParameter definition
00343         // ---------------------------
00344 
00345         jarNameParameter = new Parameter(context) {
00346 
00347                 public String getPrompt() {
00348                     return "Jar name";
00349                 }
00350 
00351                                 public String getArgKeyword()
00352                                 {
00353                                         return "-jarName";
00354                                 }
00355 
00356                 public void setValue(String input) {
00357                     if (input.endsWith(".jar")) {
00358                         value = input.substring(0, input.length() - 4);
00359                     }
00360                     else {
00361                         value = input;
00362                     }
00363                 }
00364                 
00365                 public boolean isValid() {
00366                     return (value.length() > 0);
00367                 }
00368                 
00369                 public void export() {
00370                     vContext.put("jarName", value);
00371                 }
00372                 
00373                 public Parameter getNextParameter() {
00374                     final Integer ENTITY_BEAN =
00375                         (Integer)vContext.get("ENTITY_BEAN");
00376                     Integer beanFlavor = 
00377                         (Integer)vContext.get("beanFlavor");
00378                     if (beanFlavor == ENTITY_BEAN)
00379                         return pkClassParameter;
00380                     else
00381                         return null;
00382                 }
00383 
00384             };
00385 
00386 
00387         // ---------------------------
00388         // pkClassParameter definition
00389         // ---------------------------
00390 
00391         pkClassParameter = new Parameter(context) {
00392 
00393                 public String getPrompt() {
00394                     return "Primary Key class\n  S  String\n  I  Integer\n  O  Object";
00395                 }
00396 
00397                                 public String getArgKeyword()
00398                                 {
00399                                         return "-primaryKey";
00400                                 }
00401 
00402                 public void setValue(String input) {
00403                     value = input.toUpperCase();
00404                 }
00405     
00406                 public boolean isValid() {
00407                     return (value.equals("S")
00408                             || value.equals("I")
00409                             || value.equals("O"));
00410                 }
00411                 
00412                 public void export() {
00413                     String pkClass = null;
00414                     if (value.equals("S"))
00415                         pkClass = "java.lang.String";
00416                     else if (value.equals("I"))
00417                         pkClass = "java.lang.Integer";
00418                     else if (value.equals("O"))
00419                         pkClass = "java.lang.Object";
00420                     vContext.put("pkClass", pkClass);
00421                 }
00422                 
00423                 public Parameter getNextParameter() {
00424                     return null;
00425                 }
00426 
00427             };
00428 
00429     }
00430 
00431 
00436     public void walkThrough() {
00437         beanNameParameter.walkThrough();
00438     }
00439 
00440 }

Generated on Tue Feb 15 15:05:19 2005 for JOnAS by  doxygen 1.3.9.1