Source Code Cross Referenced for CBCCStructureGenerator.java in  » ESB » cbesb-1.2 » com » bostechcorp » cbesb » ui » ide » customcomponent » wizard » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » ESB » cbesb 1.2 » com.bostechcorp.cbesb.ui.ide.customcomponent.wizard 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


0001:        /**
0002:         * ChainBuilder ESB
0003:         *          Visual Enterprise Integration
0004:         * 
0005:         * Copyright (C) 2006 Bostech Corporation
0006:         * 
0007:         * This program is free software; you can redistribute it and/or modify it 
0008:         * under the terms of the GNU General Public License as published by the 
0009:         * Free Software Foundation; either version 2 of the License, or (at your option) 
0010:         * any later version.
0011:         *
0012:         * This program is distributed in the hope that it will be useful, 
0013:         * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
0014:         * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 
0015:         * for more details.
0016:         * 
0017:         * You should have received a copy of the GNU General Public License along with 
0018:         * this program; if not, write to the Free Software Foundation, Inc., 
0019:         * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0020:         *
0021:         *
0022:         * $Id$
0023:         */package com.bostechcorp.cbesb.ui.ide.customcomponent.wizard;
0024:
0025:        import java.net.MalformedURLException;
0026:        import java.net.URL;
0027:        import java.util.ArrayList;
0028:        import java.util.Date;
0029:        import java.util.HashMap;
0030:        import java.util.List;
0031:
0032:        import org.apache.commons.logging.Log;
0033:        import org.apache.commons.logging.LogFactory;
0034:        import org.eclipse.core.runtime.IPath;
0035:        import org.eclipse.jdt.core.IPackageFragment;
0036:
0037:        import com.bostechcorp.cbesb.common.util.EsbPathHelper;
0038:        import com.bostechcorp.cbesb.common.util.FileUtil;
0039:        import com.bostechcorp.cbesb.common.util.TemplateProcessorIO;
0040:
0041:        /**
0042:         * This class generates the whole project initial content
0043:         * all java files necessary for Chainbuilder Custom component. 
0044:         * @author LPS
0045:         */
0046:        public class CBCCStructureGenerator {
0047:
0048:            protected final transient Log logger = LogFactory
0049:                    .getLog(getClass());
0050:
0051:            private IPath projectPath;
0052:            public IPackageFragment javaPackage;
0053:            public IPackageFragment javaProcessorsPackage;
0054:            public IPackageFragment javaWsdlPackage;
0055:            public IPackageFragment javaUiPackage;
0056:
0057:            public HashMap<String, String> properties;
0058:
0059:            List<PagesModelTableItem> consumerList = null;
0060:            List<PagesModelTableItem> providerList = null;
0061:
0062:            public String templateRoot = EsbPathHelper.getCbesbHomeDir()
0063:                    + "/config/template/custom.component/";
0064:
0065:            public HashMap<String, String> holders = new HashMap<String, String>();
0066:            TemplateProcessorIO writer;
0067:
0068:            public CBCCStructureGenerator(IPath projectPath,
0069:                    IPackageFragment javaPackagePath,
0070:                    IPackageFragment javaProcessorsPackagePath,
0071:                    IPackageFragment javaWsdlPackagePath,
0072:                    IPackageFragment javaUiPackagePath,
0073:                    HashMap<String, String> props,
0074:                    List<PagesModelTableItem> consumerList,
0075:                    List<PagesModelTableItem> providerList) {
0076:                this .projectPath = projectPath;
0077:                this .javaPackage = javaPackagePath;
0078:                this .javaProcessorsPackage = javaProcessorsPackagePath;
0079:                this .javaWsdlPackage = javaWsdlPackagePath;
0080:                this .javaUiPackage = javaUiPackagePath;
0081:                this .properties = props;
0082:                this .consumerList = consumerList;
0083:                this .providerList = providerList;
0084:
0085:                initHolders();
0086:            }
0087:
0088:            private void initHolders() {
0089:                //UI file holders
0090:                //HashMap<String, String> holders = new HashMap<String, String>();
0091:                holders.put("#UIpackageName#", javaUiPackage.getElementName());
0092:                holders.put("#CompUIClassName#", capitalizeFirst(properties
0093:                        .get(ComponentPropertiesComposite.NAME))
0094:                        + "CustomComponent");
0095:
0096:                holders.put("#bigIconName#", "default32.ico");
0097:                holders.put("#smallIconName#", "default16.ico");
0098:                holders
0099:                        .put(
0100:                                "#ScheduleableConsumer#",
0101:                                properties
0102:                                        .get(ComponentPropertiesComposite.CONSUMER_IS_SCHEDULED));
0103:                //
0104:                String surl = "";
0105:                try {
0106:                    surl = new URL(properties
0107:                            .get(ComponentPropertiesComposite.URI)).toString()
0108:                            + ""
0109:                            + properties.get(ComponentPropertiesComposite.NAME)
0110:                                    .toLowerCase().trim()
0111:                            + "/"
0112:                            + properties.get(
0113:                                    ComponentPropertiesComposite.VERSION)
0114:                                    .toLowerCase().trim();
0115:                } catch (MalformedURLException e) {
0116:                    e.printStackTrace();
0117:                    logger.error("wrong URI", e);
0118:                }
0119:
0120:                holders.put("#componentURI#", surl);
0121:                holders.put("#name#", properties
0122:                        .get(ComponentPropertiesComposite.NAME));
0123:                holders.put("#description#", properties
0124:                        .get(ComponentPropertiesComposite.DESCRIPTION));
0125:                holders.put("#componentName#", properties
0126:                        .get(ComponentPropertiesComposite.COMPONENT_NAME));
0127:                holders.put("#vendor#", properties
0128:                        .get(ComponentPropertiesComposite.VENDOR));
0129:                holders.put("#version#", properties
0130:                        .get(ComponentPropertiesComposite.VERSION));
0131:
0132:                holders.put("#useDefaultDeploy#", properties
0133:                        .get(ComponentPropertiesComposite.DEFAULT_DEPLOY));
0134:                holders.put("#useDefaultWSDLGenerator#", properties
0135:                        .get(ComponentPropertiesComposite.DEFAULT_WSDL));
0136:                holders.put("#useCCSL#", properties
0137:                        .get(ComponentPropertiesComposite.USE_CCSL));
0138:
0139:                holders.put("#role#", "Role."
0140:                        + properties.get(ComponentPropertiesComposite.ROLE));
0141:                holders
0142:                        .put(
0143:                                "#providerDefaultMep#",
0144:                                "DefaultMEP."
0145:                                        + properties
0146:                                                .get(ComponentPropertiesComposite.PROVIDER_MEP));
0147:                holders
0148:                        .put(
0149:                                "#consumerDefaultMep#",
0150:                                "DefaultMEP."
0151:                                        + properties
0152:                                                .get(ComponentPropertiesComposite.CONSUMER_MEP));
0153:
0154:                holders.put("#WizardPagesAndProperties#",
0155:                        makePagesAndPropertiesStructure(consumerList,
0156:                                providerList));
0157:
0158:                //bootstrap
0159:                holders.put("#RootPackageName#", javaPackage.getElementName());
0160:                holders.put("#bootstrapClassName#", capitalizeFirst(properties
0161:                        .get(ComponentPropertiesComposite.NAME))
0162:                        + "Bootstrap");
0163:
0164:                // wsdl1Deployer
0165:
0166:                holders.put("#Wsdl1DeployerClassName#",
0167:                        capitalizeFirst(properties
0168:                                .get(ComponentPropertiesComposite.NAME))
0169:                                + "Wsdl1Deployer");
0170:                holders.put("#endpointClassName#", capitalizeFirst(properties
0171:                        .get(ComponentPropertiesComposite.NAME))
0172:                        + "Endpoint");
0173:                holders.put("#consumerClassName#", capitalizeFirst(properties
0174:                        .get(ComponentPropertiesComposite.NAME))
0175:                        + "Consumer");
0176:
0177:                holders
0178:                        .put(
0179:                                "#consumerProviderPackageAndClassName#",
0180:                                generateWsdl1DeployerConsumerProviderPackageAndClassName());
0181:                holders.put("#providerClassName#", capitalizeFirst(properties
0182:                        .get(ComponentPropertiesComposite.NAME))
0183:                        + "Provider");
0184:                holders.put("#extentionRegisrtation#",
0185:                        generateWsdl1DeployerExtentionRegistrstion());
0186:                holders.put("#extentionRegisrtationPackages#",
0187:                        generateWsdl1DeployerExtentionRegistrstionPackages());
0188:                holders.put("#endpointConsumerProperties#",
0189:                        generateWsdl1DeployerEndpointConsumerProperties());
0190:                holders.put("#endpointProviderProperties#",
0191:                        generateWsdl1DeployerEndpointProviderProperties());
0192:
0193:                //components
0194:                holders.put("#componentClassName#", capitalizeFirst(properties
0195:                        .get(ComponentPropertiesComposite.NAME))
0196:                        + "Component");
0197:
0198:                //endpoint
0199:
0200:                holders.put("#consumerProcessorClassName#",
0201:                        capitalizeFirst(properties
0202:                                .get(ComponentPropertiesComposite.NAME))
0203:                                + "ConsumerHandler");
0204:                holders.put("#providerProcessorClassName#",
0205:                        capitalizeFirst(properties
0206:                                .get(ComponentPropertiesComposite.NAME))
0207:                                + "ProviderProcessor");
0208:                holders.put("#name#", capitalizeFirst(properties
0209:                        .get(ComponentPropertiesComposite.NAME)));
0210:                holders.put("#EndpointAllProperties#",
0211:                        generateEndpointAllProperties());
0212:                holders.put("#EndpointAllGettersAndSetters#",
0213:                        generateEndpointAllGettersAndSetters());
0214:
0215:                //Processors files
0216:
0217:                holders.put("#ProcessorsPackageName#", javaProcessorsPackage
0218:                        .getElementName());
0219:                holders.put("#endpointClassName#", capitalizeFirst(properties
0220:                        .get(ComponentPropertiesComposite.NAME))
0221:                        + "Endpoint");
0222:                holders.put("#rootPackage#", javaPackage.getElementName());
0223:                holders.put("#consumerProcessorClassName#",
0224:                        capitalizeFirst(properties
0225:                                .get(ComponentPropertiesComposite.NAME))
0226:                                + "ConsumerHandler");
0227:                holders.put("#providerProcessorClassName#",
0228:                        capitalizeFirst(properties
0229:                                .get(ComponentPropertiesComposite.NAME))
0230:                                + "ProviderProcessor");
0231:
0232:                //Build Script
0233:                holders.put("#componentName#", properties
0234:                        .get(ComponentPropertiesComposite.COMPONENT_NAME));
0235:                holders.put("#version#", properties
0236:                        .get(ComponentPropertiesComposite.VERSION));
0237:
0238:                holders.put("#CompUIClassName#", capitalizeFirst(properties
0239:                        .get(ComponentPropertiesComposite.NAME))
0240:                        + "CustomComponent");
0241:                holders.put("#name#", properties
0242:                        .get(ComponentPropertiesComposite.NAME));
0243:
0244:                // metaInf - ccsl
0245:
0246:                //holders.put("#RootPackageName#",javaPackage.getElementName());
0247:                holders.put("#componentClassName#", capitalizeFirst(properties
0248:                        .get(ComponentPropertiesComposite.NAME))
0249:                        + "Component");
0250:
0251:                //jbi
0252:
0253:                holders.put("#componentType#", getComponentType());
0254:                holders.put("#componentName#", properties
0255:                        .get(ComponentPropertiesComposite.COMPONENT_NAME));
0256:                holders.put("#description#", properties
0257:                        .get(ComponentPropertiesComposite.DESCRIPTION));
0258:                holders.put("#projectName#", javaPackage.getPath().segment(0));
0259:                holders.put("#JBIbootstrapClassName#", javaPackage
0260:                        .getElementName()
0261:                        + "."
0262:                        + capitalizeFirst(properties
0263:                                .get(ComponentPropertiesComposite.NAME))
0264:                        + "Bootstrap");
0265:
0266:                // wsdl Provider files
0267:                holders.put("#packageName#", javaWsdlPackage.getElementName());
0268:                holders.put("#providerClassName#", capitalizeFirst(properties
0269:                        .get(ComponentPropertiesComposite.NAME))
0270:                        + "Provider");
0271:                holders.put("#ProviderProperties#",
0272:                        generateProviderProperties());
0273:                holders.put("#ProviderPropertiesGettersAndSetters#",
0274:                        generateProviderGettersAndSetters());
0275:
0276:                // wsdl provider deserializer
0277:
0278:                holders.put("#providerDeserializerClassName#",
0279:                        capitalizeFirst(properties
0280:                                .get(ComponentPropertiesComposite.NAME))
0281:                                + "ProviderDeserializer");
0282:                holders.put("#ProviderUnmarshallSetters#",
0283:                        generateProviderUnmarshallSetters());
0284:                //provider extention
0285:
0286:                holders.put("#providerExtensionClassName#",
0287:                        capitalizeFirst(properties
0288:                                .get(ComponentPropertiesComposite.NAME))
0289:                                + "ProviderExtension");
0290:                holders.put("#ProviderStaticConstants#",
0291:                        generateProviderExtentionStaticConstants());
0292:                holders.put("#ComponentNamespace#", surl);
0293:
0294:                // WSDL comnsumer files
0295:                holders.put("#WSDLpackageName#", javaWsdlPackage
0296:                        .getElementName());
0297:                holders.put("#consumerClassName#", capitalizeFirst(properties
0298:                        .get(ComponentPropertiesComposite.NAME))
0299:                        + "Consumer");
0300:                holders.put("#ConsumerProperties#",
0301:                        generateConsumerProperties());
0302:                holders.put("#ConsumerPropertiesGettersAndSetters#",
0303:                        generateConsumerGettersAndSetters());
0304:
0305:                //consumer deserializer
0306:
0307:                holders.put("#consumerDeserializerClassName#",
0308:                        capitalizeFirst(properties
0309:                                .get(ComponentPropertiesComposite.NAME))
0310:                                + "ConsumerDeserializer");
0311:                holders.put("#ConsumerUnmarshallSetters#",
0312:                        generateConsumerUnmarshallSetters());
0313:                holders.put("#consumerExtensionClassName#",
0314:                        capitalizeFirst(properties
0315:                                .get(ComponentPropertiesComposite.NAME))
0316:                                + "ConsumerExtension");
0317:
0318:                //extention
0319:                holders.put("#ConsumerStaticConstants#",
0320:                        generateConsumerExtendtionStaticConstants());
0321:                holders.put("#ComponentNamespace#", surl);
0322:
0323:                //TODO: put version holders
0324:                //holders.put("#version#", xxsxs);	already exist
0325:                holders.put("#creationDate#", new Date(System
0326:                        .currentTimeMillis()).toString());
0327:            }
0328:
0329:            private String getComponentType() {
0330:                String componentType = "";
0331:                if (properties.get(
0332:                        ComponentPropertiesComposite.COMPONENT_NAME_AUX_PART2)
0333:                        .equals(ComponentPropertiesComposite.BC)) {
0334:                    componentType = "binding-component";
0335:                } else if (properties.get(
0336:                        ComponentPropertiesComposite.COMPONENT_NAME_AUX_PART2)
0337:                        .equals(ComponentPropertiesComposite.SE)) {
0338:                    componentType = "service-engine";
0339:                } else {
0340:                    componentType = "binding-component";
0341:                }
0342:                return componentType;
0343:            }
0344:
0345:            private void createWsdlFiels() throws Exception {
0346:                if (((String) properties.get(ComponentPropertiesComposite.ROLE))
0347:                        .equalsIgnoreCase(ComponentPropertiesComposite.CONSUMER)) {
0348:                    generateWsdlConsumerFiles();
0349:                } else if (((String) properties
0350:                        .get(ComponentPropertiesComposite.ROLE))
0351:                        .equalsIgnoreCase(ComponentPropertiesComposite.PROVIDER)) {
0352:                    generateWsdlProviderFiles();
0353:                } else if (((String) properties
0354:                        .get(ComponentPropertiesComposite.ROLE))
0355:                        .equalsIgnoreCase(ComponentPropertiesComposite.BOTH)) {
0356:                    generateWsdlConsumerFiles();
0357:                    generateWsdlProviderFiles();
0358:                }
0359:            }
0360:
0361:            private void createUIFiles() throws Exception {
0362:                String inFile = templateRoot + "ui/CompUI.template";
0363:                String outFile = projectPath.append(
0364:                        javaUiPackage.getPath().removeFirstSegments(1)).append(
0365:                        capitalizeFirst(properties
0366:                                .get(ComponentPropertiesComposite.NAME))
0367:                                + "CustomComponent.java").toOSString();
0368:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0369:                writer.filterFile();
0370:            }
0371:
0372:            private void createRootPackageFiles() throws Exception {
0373:                //bootStrap
0374:                String inFile = templateRoot + "Bootstrap.template";
0375:                String outFile = projectPath.append(
0376:                        javaPackage.getPath().removeFirstSegments(1)).append(
0377:                        capitalizeFirst(properties
0378:                                .get(ComponentPropertiesComposite.NAME))
0379:                                + "Bootstrap.java").toOSString();
0380:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0381:                writer.filterFile();
0382:
0383:                //wsdl deployer
0384:
0385:                if (((String) properties.get(ComponentPropertiesComposite.ROLE))
0386:                        .equalsIgnoreCase(ComponentPropertiesComposite.CONSUMER)) {
0387:                    inFile = templateRoot + "Wsdl1Deployer_Consumer.template";
0388:
0389:                } else if (((String) properties
0390:                        .get(ComponentPropertiesComposite.ROLE))
0391:                        .equalsIgnoreCase(ComponentPropertiesComposite.PROVIDER)) {
0392:                    inFile = templateRoot + "Wsdl1Deployer_Provider.template";
0393:                } else if (((String) properties
0394:                        .get(ComponentPropertiesComposite.ROLE))
0395:                        .equalsIgnoreCase(ComponentPropertiesComposite.BOTH)) {
0396:                    inFile = templateRoot + "Wsdl1Deployer.template";
0397:                }
0398:
0399:                outFile = projectPath.append(
0400:                        javaPackage.getPath().removeFirstSegments(1)).append(
0401:                        capitalizeFirst(properties
0402:                                .get(ComponentPropertiesComposite.NAME))
0403:                                + "Wsdl1Deployer.java").toOSString();
0404:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0405:                writer.filterFile();
0406:
0407:                //component
0408:                inFile = templateRoot + "Component.template";
0409:                outFile = projectPath.append(
0410:                        javaPackage.getPath().removeFirstSegments(1)).append(
0411:                        capitalizeFirst(properties
0412:                                .get(ComponentPropertiesComposite.NAME))
0413:                                + "Component.java").toOSString();
0414:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0415:                writer.filterFile();
0416:
0417:                //endpoint
0418:                outFile = projectPath.append(
0419:                        javaPackage.getPath().removeFirstSegments(1)).append(
0420:                        capitalizeFirst(properties
0421:                                .get(ComponentPropertiesComposite.NAME))
0422:                                + "Endpoint.java").toOSString();
0423:
0424:                if (((String) properties.get(ComponentPropertiesComposite.ROLE))
0425:                        .equalsIgnoreCase(ComponentPropertiesComposite.CONSUMER)) {
0426:                    inFile = templateRoot
0427:                            + "Endpoint_ConsumerOnly_Sched.template";
0428:                } else if (((String) properties
0429:                        .get(ComponentPropertiesComposite.ROLE))
0430:                        .equalsIgnoreCase(ComponentPropertiesComposite.PROVIDER)) {
0431:                    inFile = templateRoot + "Endpoint_ProviderOnly.template";
0432:                } else if (((String) properties
0433:                        .get(ComponentPropertiesComposite.ROLE))
0434:                        .equalsIgnoreCase(ComponentPropertiesComposite.BOTH)) {
0435:                    inFile = templateRoot + "Endpoint_Both_Sched.template";
0436:                }
0437:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0438:                writer.filterFile();
0439:            }
0440:
0441:            private String generateWsdl1DeployerConsumerProviderPackageAndClassName() {
0442:                String content = "\n";
0443:                if (((String) properties.get(ComponentPropertiesComposite.ROLE))
0444:                        .equalsIgnoreCase(ComponentPropertiesComposite.CONSUMER)) {
0445:                    content += "import "
0446:                            + javaWsdlPackage.getElementName()
0447:                            + "."
0448:                            + capitalizeFirst(properties
0449:                                    .get(ComponentPropertiesComposite.NAME))
0450:                            + "Consumer" + ";";
0451:                } else if (((String) properties
0452:                        .get(ComponentPropertiesComposite.ROLE))
0453:                        .equalsIgnoreCase(ComponentPropertiesComposite.PROVIDER)) {
0454:                    content += "import "
0455:                            + javaWsdlPackage.getElementName()
0456:                            + "."
0457:                            + capitalizeFirst(properties
0458:                                    .get(ComponentPropertiesComposite.NAME))
0459:                            + "Provider" + ";";
0460:                } else if (((String) properties
0461:                        .get(ComponentPropertiesComposite.ROLE))
0462:                        .equalsIgnoreCase(ComponentPropertiesComposite.BOTH)) {
0463:                    content += "import "
0464:                            + javaWsdlPackage.getElementName()
0465:                            + "."
0466:                            + capitalizeFirst(properties
0467:                                    .get(ComponentPropertiesComposite.NAME))
0468:                            + "Consumer" + ";";
0469:                    content += "\n";
0470:                    content += "import "
0471:                            + javaWsdlPackage.getElementName()
0472:                            + "."
0473:                            + capitalizeFirst(properties
0474:                                    .get(ComponentPropertiesComposite.NAME))
0475:                            + "Provider" + ";";
0476:                }
0477:                return content;
0478:            }
0479:
0480:            private String generateWsdl1DeployerEndpointProviderProperties() {
0481:                String content = "\n\t\t";
0482:                String providerClassName = capitalizeFirst(properties
0483:                        .get(ComponentPropertiesComposite.NAME))
0484:                        + "Provider";
0485:                for (PagesModelTableItem page : providerList)
0486:                    for (PropertiesModelTableItem property : page.properties) {
0487:                        if (property.type != 4) {
0488:                            content += "endpoint.set"
0489:                                    + capitalizeFirst(validPropertyName(property.name));
0490:                            content += "("
0491:                                    + "(("
0492:                                    + providerClassName
0493:                                    + ") portElement[0]).get"
0494:                                    + capitalizeFirst(validPropertyName(property.name))
0495:                                    + "());";
0496:                            content += "\n\t\t";
0497:                        } else {
0498:                            content += "endpoint.set"
0499:                                    + capitalizeFirst(validPropertyName(property.name))
0500:                                    + "ServiceName";
0501:                            content += "("
0502:                                    + "(("
0503:                                    + providerClassName
0504:                                    + ") portElement[0]).get"
0505:                                    + capitalizeFirst(validPropertyName(property.name))
0506:                                    + "ServiceName" + "());";
0507:                            content += "\n\t\t";
0508:                            content += "endpoint.set"
0509:                                    + capitalizeFirst(validPropertyName(property.name))
0510:                                    + "EndpointName";
0511:                            content += "("
0512:                                    + "(("
0513:                                    + providerClassName
0514:                                    + ") portElement[0]).get"
0515:                                    + capitalizeFirst(validPropertyName(property.name))
0516:                                    + "EndpointName" + "());";
0517:                            content += "\n\t\t";
0518:                        }
0519:                    }
0520:                return content;
0521:            }
0522:
0523:            private String generateWsdl1DeployerEndpointConsumerProperties() {
0524:                String content = "\n\t\t";
0525:                String consumerClassName = capitalizeFirst(properties
0526:                        .get(ComponentPropertiesComposite.NAME))
0527:                        + "Consumer";
0528:                for (PagesModelTableItem page : consumerList)
0529:                    for (PropertiesModelTableItem property : page.properties) {
0530:                        if (property.type != 4) {
0531:                            content += "endpoint.set"
0532:                                    + capitalizeFirst(validPropertyName(property.name));
0533:                            content += "("
0534:                                    + "(("
0535:                                    + consumerClassName
0536:                                    + ") portElement[0]).get"
0537:                                    + capitalizeFirst(validPropertyName(property.name))
0538:                                    + "());";
0539:                            content += "\n\t\t";
0540:                        } else {
0541:                            content += "endpoint.set"
0542:                                    + capitalizeFirst(validPropertyName(property.name))
0543:                                    + "ServiceName";
0544:                            content += "("
0545:                                    + "(("
0546:                                    + consumerClassName
0547:                                    + ") portElement[0]).get"
0548:                                    + capitalizeFirst(validPropertyName(property.name))
0549:                                    + "ServiceName" + "());";
0550:                            content += "\n\t\t";
0551:                            content += "endpoint.set"
0552:                                    + capitalizeFirst(validPropertyName(property.name))
0553:                                    + "EndpointName";
0554:                            content += "("
0555:                                    + "(("
0556:                                    + consumerClassName
0557:                                    + ") portElement[0]).get"
0558:                                    + capitalizeFirst(validPropertyName(property.name))
0559:                                    + "EndpointName" + "());";
0560:                            content += "\n\t\t";
0561:                        }
0562:                    }
0563:                return content;
0564:            }
0565:
0566:            private String generateWsdl1DeployerExtentionRegistrstionPackages() {
0567:                String content = "\n";
0568:                if (((String) properties.get(ComponentPropertiesComposite.ROLE))
0569:                        .equalsIgnoreCase(ComponentPropertiesComposite.CONSUMER)) {
0570:                    content += "import "
0571:                            + javaWsdlPackage.getElementName()
0572:                            + "."
0573:                            + capitalizeFirst(properties
0574:                                    .get(ComponentPropertiesComposite.NAME))
0575:                            + "ConsumerExtension" + ";";
0576:                } else if (((String) properties
0577:                        .get(ComponentPropertiesComposite.ROLE))
0578:                        .equalsIgnoreCase(ComponentPropertiesComposite.PROVIDER)) {
0579:                    content += "import "
0580:                            + javaWsdlPackage.getElementName()
0581:                            + "."
0582:                            + capitalizeFirst(properties
0583:                                    .get(ComponentPropertiesComposite.NAME))
0584:                            + "ProviderExtension" + ";";
0585:                } else if (((String) properties
0586:                        .get(ComponentPropertiesComposite.ROLE))
0587:                        .equalsIgnoreCase(ComponentPropertiesComposite.BOTH)) {
0588:                    content += "import "
0589:                            + javaWsdlPackage.getElementName()
0590:                            + "."
0591:                            + capitalizeFirst(properties
0592:                                    .get(ComponentPropertiesComposite.NAME))
0593:                            + "ConsumerExtension" + ";";
0594:                    content += "\n";
0595:                    content += "import "
0596:                            + javaWsdlPackage.getElementName()
0597:                            + "."
0598:                            + capitalizeFirst(properties
0599:                                    .get(ComponentPropertiesComposite.NAME))
0600:                            + "ProviderExtension" + ";";
0601:                }
0602:                return content;
0603:            }
0604:
0605:            private String generateWsdl1DeployerExtentionRegistrstion() {
0606:                String content = "\n\t\t";
0607:                if (((String) properties.get(ComponentPropertiesComposite.ROLE))
0608:                        .equalsIgnoreCase(ComponentPropertiesComposite.CONSUMER)) {
0609:                    content += capitalizeFirst(properties
0610:                            .get(ComponentPropertiesComposite.NAME))
0611:                            + "ConsumerExtension";
0612:                    content += ".register(registry);";
0613:                } else if (((String) properties
0614:                        .get(ComponentPropertiesComposite.ROLE))
0615:                        .equalsIgnoreCase(ComponentPropertiesComposite.PROVIDER)) {
0616:                    content += capitalizeFirst(properties
0617:                            .get(ComponentPropertiesComposite.NAME))
0618:                            + "ProviderExtension";
0619:                    content += ".register(registry);";
0620:
0621:                } else if (((String) properties
0622:                        .get(ComponentPropertiesComposite.ROLE))
0623:                        .equalsIgnoreCase(ComponentPropertiesComposite.BOTH)) {
0624:                    content += capitalizeFirst(properties
0625:                            .get(ComponentPropertiesComposite.NAME))
0626:                            + "ConsumerExtension";
0627:                    content += ".register(registry);";
0628:                    content += "\n\t\t";
0629:                    content += capitalizeFirst(properties
0630:                            .get(ComponentPropertiesComposite.NAME))
0631:                            + "ProviderExtension";
0632:                    content += ".register(registry);";
0633:                }
0634:                content += "\n\t\t";
0635:                return content;
0636:            }
0637:
0638:            private void createProcessorsFiles() throws Exception {
0639:                String inFile = templateRoot + "Bootstrap.template";
0640:                if (((String) properties.get(ComponentPropertiesComposite.ROLE))
0641:                        .equalsIgnoreCase(ComponentPropertiesComposite.CONSUMER)) {
0642:                    inFile = templateRoot
0643:                            + "processors/ScheduledConsumerProcessor.template";
0644:                    String outFile = projectPath.append(
0645:                            javaProcessorsPackage.getPath()
0646:                                    .removeFirstSegments(1)).append(
0647:                            capitalizeFirst(properties
0648:                                    .get(ComponentPropertiesComposite.NAME))
0649:                                    + "ConsumerHandler.java").toOSString();
0650:                    writer = new TemplateProcessorIO(inFile, outFile, holders);
0651:                    writer.filterFile();
0652:                } else if (((String) properties
0653:                        .get(ComponentPropertiesComposite.ROLE))
0654:                        .equalsIgnoreCase(ComponentPropertiesComposite.PROVIDER)) {
0655:                    inFile = templateRoot
0656:                            + "processors/ProviderProcessor.template";
0657:                    String outFile = projectPath.append(
0658:                            javaProcessorsPackage.getPath()
0659:                                    .removeFirstSegments(1)).append(
0660:                            capitalizeFirst(properties
0661:                                    .get(ComponentPropertiesComposite.NAME))
0662:                                    + "ProviderProcessor.java").toOSString();
0663:                    writer = new TemplateProcessorIO(inFile, outFile, holders);
0664:                    writer.filterFile();
0665:                } else if (((String) properties
0666:                        .get(ComponentPropertiesComposite.ROLE))
0667:                        .equalsIgnoreCase(ComponentPropertiesComposite.BOTH)) {
0668:                    inFile = templateRoot
0669:                            + "processors/ScheduledConsumerProcessor.template";
0670:                    String outFile = projectPath.append(
0671:                            javaProcessorsPackage.getPath()
0672:                                    .removeFirstSegments(1)).append(
0673:                            capitalizeFirst(properties
0674:                                    .get(ComponentPropertiesComposite.NAME))
0675:                                    + "ConsumerHandler.java").toOSString();
0676:                    writer = new TemplateProcessorIO(inFile, outFile, holders);
0677:                    writer.filterFile();
0678:                    inFile = templateRoot
0679:                            + "processors/ProviderProcessor.template";
0680:                    outFile = projectPath.append(
0681:                            javaProcessorsPackage.getPath()
0682:                                    .removeFirstSegments(1)).append(
0683:                            capitalizeFirst(properties
0684:                                    .get(ComponentPropertiesComposite.NAME))
0685:                                    + "ProviderProcessor.java").toOSString();
0686:                    writer = new TemplateProcessorIO(inFile, outFile, holders);
0687:                    writer.filterFile();
0688:                }
0689:            }
0690:
0691:            private void createScriptFiles() throws Exception {
0692:                //build
0693:                String inFile = templateRoot + "build.template";
0694:                String outFile = projectPath.append("scripts").append(
0695:                        "build.xml").toOSString();
0696:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0697:                writer.filterFile();
0698:
0699:                //build_ui
0700:                inFile = templateRoot + "build_ui.template";
0701:                outFile = projectPath.append("scripts").append("build_ui.xml")
0702:                        .toOSString();
0703:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0704:                writer.filterFile();
0705:            }
0706:
0707:            private void createMetaInfFiles() throws Exception {
0708:                //ccsl
0709:                String inFile = templateRoot + "ccsl.template";
0710:                String outFile = projectPath.append("src").append("resources")
0711:                        .append("META-INF").append("ccsl.xml").toOSString();
0712:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0713:                writer.filterFile();
0714:
0715:                //jbi
0716:                inFile = templateRoot + "jbi.template";
0717:                outFile = projectPath.append("src").append("resources").append(
0718:                        "META-INF").append("jbi.xml").toOSString();
0719:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0720:                writer.filterFile();
0721:                //version.properties
0722:                inFile = templateRoot + "version.template";
0723:                outFile = projectPath.append("src").append("resources").append(
0724:                        "META-INF").append("version.properties").toOSString();
0725:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0726:                writer.filterFile();
0727:            }
0728:
0729:            /**
0730:             * the only merthod that should be called 
0731:             * @throws Exception
0732:             */
0733:            public void createAllFiles() throws Exception {
0734:                createMetaInfFiles();
0735:                createProcessorsFiles();
0736:                createRootPackageFiles();
0737:                createScriptFiles();
0738:                createUIFiles();
0739:                createWsdlFiels();
0740:                copyIcons();
0741:            }
0742:
0743:            private void copyIcons() {
0744:                FileUtil.copyFile(templateRoot + "icons/default16.ico",
0745:                        projectPath.append("src/resources/default16.ico")
0746:                                .toString());
0747:                FileUtil.copyFile(templateRoot + "icons/default32.ico",
0748:                        projectPath.append("src/resources/default32.ico")
0749:                                .toString());
0750:            }
0751:
0752:            /**
0753:             * Used in GenerateWSDL
0754:             * @throws Exception
0755:             */
0756:            private void generateWsdlProviderFiles() throws Exception {
0757:                String inFile = templateRoot + "wsdl/Provider.template";
0758:                String outFile = projectPath
0759:                        .append(
0760:                                javaWsdlPackage.getPath()
0761:                                        .removeFirstSegments(1))
0762:                        .append(
0763:                                capitalizeFirst(properties
0764:                                        .get(ComponentPropertiesComposite.NAME))
0765:                                        + "Provider.java").toOSString();
0766:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0767:                writer.filterFile();
0768:                //deserializer
0769:                inFile = templateRoot + "wsdl/ProviderDeserializer.template";
0770:                outFile = projectPath
0771:                        .append(
0772:                                javaWsdlPackage.getPath()
0773:                                        .removeFirstSegments(1))
0774:                        .append(
0775:                                capitalizeFirst(properties
0776:                                        .get(ComponentPropertiesComposite.NAME))
0777:                                        + "ProviderDeserializer.java")
0778:                        .toOSString();
0779:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0780:                writer.filterFile();
0781:
0782:                //extension
0783:                inFile = templateRoot + "wsdl/ProviderExtension.template";
0784:                outFile = projectPath
0785:                        .append(
0786:                                javaWsdlPackage.getPath()
0787:                                        .removeFirstSegments(1))
0788:                        .append(
0789:                                capitalizeFirst(properties
0790:                                        .get(ComponentPropertiesComposite.NAME))
0791:                                        + "ProviderExtension.java")
0792:                        .toOSString();
0793:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0794:                writer.filterFile();
0795:            }
0796:
0797:            /**
0798:             * Used in GenerateWSDL
0799:             * @throws Exception
0800:             */
0801:            private void generateWsdlConsumerFiles() throws Exception {
0802:                String inFile = templateRoot + "wsdl/Consumer.template";
0803:                String outFile = projectPath
0804:                        .append(
0805:                                javaWsdlPackage.getPath()
0806:                                        .removeFirstSegments(1))
0807:                        .append(
0808:                                capitalizeFirst(properties
0809:                                        .get(ComponentPropertiesComposite.NAME))
0810:                                        + "Consumer.java").toOSString();
0811:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0812:                writer.filterFile();
0813:
0814:                //deserializer
0815:                inFile = templateRoot + "wsdl/ConsumerDeserializer.template";
0816:                outFile = projectPath
0817:                        .append(
0818:                                javaWsdlPackage.getPath()
0819:                                        .removeFirstSegments(1))
0820:                        .append(
0821:                                capitalizeFirst(properties
0822:                                        .get(ComponentPropertiesComposite.NAME))
0823:                                        + "ConsumerDeserializer.java")
0824:                        .toOSString();
0825:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0826:                writer.filterFile();
0827:
0828:                //extension
0829:                inFile = templateRoot + "wsdl/ConsumerExtension.template";
0830:                outFile = projectPath
0831:                        .append(
0832:                                javaWsdlPackage.getPath()
0833:                                        .removeFirstSegments(1))
0834:                        .append(
0835:                                capitalizeFirst(properties
0836:                                        .get(ComponentPropertiesComposite.NAME))
0837:                                        + "ConsumerExtension.java")
0838:                        .toOSString();
0839:                writer = new TemplateProcessorIO(inFile, outFile, holders);
0840:                writer.filterFile();
0841:            }
0842:
0843:            /**
0844:             * method used in UI generation
0845:             * @param consumerList
0846:             * @param providerList
0847:             * @return
0848:             */
0849:            private String makePagesAndPropertiesStructure(
0850:                    List<PagesModelTableItem> consumerList,
0851:                    List<PagesModelTableItem> providerList) {
0852:                String content = "";
0853:                //      some comments
0854:                content += "\n\t\t";
0855:                content += "/* Feel free to customize and modify any parameters. Property constructors are provided with default values";
0856:                content += "\n\t\t";
0857:                content += "\n\t\t";
0858:                content += "public BooleanProperty(String name, \n\t\t\t\t"
0859:                        + " boolean readOnly,\n\t\t\t\t"
0860:                        + " boolean required, \n\t\t\t\t "
0861:                        + "boolean defaultValue)";
0862:                content += "\n\t\t";
0863:                content += "public EnumProperty(String name,\n\t\t\t\t"
0864:                        + " boolean readOnly,\n\t\t\t\t"
0865:                        + " boolean required,\n\t\t\t\t"
0866:                        + "String defaultValue,\n\t\t\t\t"
0867:                        + " String[] values,\n\t\t\t\t" + " boolean editable)";
0868:                content += "\n\t\t";
0869:                content += "public FileProperty(String name,\n\t\t\t\t"
0870:                        + " boolean readOnly,\n\t\t\t\t"
0871:                        + " boolean required,\n\t\t\t\t"
0872:                        + "String baseFolderName,\n\t\t\t\t"
0873:                        + " String fileName,\n\t\t\t\t"
0874:                        + " boolean allowNewFile,\n\t\t\t\t"
0875:                        + "FolderBrowseStyle folderBrowseStyle)";
0876:                content += "\n\t\t";
0877:                content += "public TextProperty(String name,\n\t\t\t\t"
0878:                        + " boolean readOnly,\n\t\t\t\t"
0879:                        + " boolean required,\n\t\t\t\t"
0880:                        + "String defaultValue)\n\t\t\t\t"
0881:                        + "You can also Hide the text by using setIsPassword(true)";
0882:                content += "\n\t\t";
0883:                content += "EndPointProperty(String name,\n\t\t\t\t"
0884:                        + " boolean readOnly,\n\t\t\t\t" + " boolean required)";
0885:                content += "\n\t\t";
0886:                content += "*/";
0887:                //now more serious stuff
0888:                if (!consumerList.isEmpty()) {
0889:                    int pageNumber = 0;
0890:                    for (PagesModelTableItem page : consumerList) {
0891:                        pageNumber++;
0892:                        content += "\n\t\t";
0893:                        content += "// ---Consumer Pages";
0894:                        content += "\n\t\t";
0895:                        //new BaseCustWizard
0896:                        content += "BaseCustWizard consumerWizard" + pageNumber
0897:                                + "= new BaseCustWizard(" + "\"" + page.name
0898:                                + "\"" + ", " + "\"" + page.description + "\""
0899:                                + ");";
0900:
0901:                        int propertyNumer = 0;
0902:                        for (PropertiesModelTableItem property : page.properties) {
0903:                            //consumerWizard.addProperty
0904:                            propertyNumer++;
0905:                            content += "\n\t\t";
0906:                            if (property.type == 0) //text
0907:                            {
0908:                                content += "consumerWizard"
0909:                                        + pageNumber
0910:                                        + ".addProperty("
0911:                                        + "new TextProperty("
0912:                                        + "\""
0913:                                        + property.name.trim().replaceAll(" ",
0914:                                                "_") + "\"" + ","
0915:                                        + property.readOnly.toString() + ","
0916:                                        + property.required.toString() + ", "
0917:                                        + "\"" + "Default Value" + "\"" + ")"
0918:                                        + ");";
0919:                            }
0920:                            if (property.type == 1)//file
0921:                            {
0922:                                content += "consumerWizard"
0923:                                        + pageNumber
0924:                                        + ".addProperty("
0925:                                        + "new FileProperty("
0926:                                        + "\""
0927:                                        + property.name.trim().replaceAll(" ",
0928:                                                "_") + "\"" + ", "
0929:                                        + property.readOnly.toString() + ", "
0930:                                        + property.required.toString() + ", "
0931:                                        + "\"" + "c:\\" + "\"" + ", " + "null"
0932:                                        + ", " + "true" + ", "
0933:                                        + "FolderBrowseStyle.FILE_SYSTEM" + ""
0934:                                        + "));";
0935:                            }
0936:                            if (property.type == 2)//enumeration
0937:                            {
0938:                                content += "consumerWizard"
0939:                                        + pageNumber
0940:                                        + ".addProperty("
0941:                                        + "new EnumProperty("
0942:                                        + "\""
0943:                                        + property.name.trim().replaceAll(" ",
0944:                                                "_") + "\"" + ", "
0945:                                        + property.readOnly.toString() + ", "
0946:                                        + property.required.toString() + ", "
0947:                                        + "\"" + "Default Value" + "\"" + ", "
0948:                                        + "new String[] {" + "\"" + "One"
0949:                                        + "\", " + "\"" + "Two" + "\", " + "\""
0950:                                        + "Three" + "\"" + "}" + ", " + "false"
0951:                                        + "" + "));";
0952:                            }
0953:                            if (property.type == 3)//boolean
0954:                            {
0955:                                content += "consumerWizard"
0956:                                        + pageNumber
0957:                                        + ".addProperty("
0958:                                        + "new BooleanProperty("
0959:                                        + "\""
0960:                                        + property.name.trim().replaceAll(" ",
0961:                                                "_") + "\"" + ", "
0962:                                        + property.readOnly.toString() + ", "
0963:                                        + property.required.toString() + ", "
0964:                                        + "true" + "" + "));";
0965:                            }
0966:                            if (property.type == 4)//Endpoint
0967:                            {
0968:                                content += "consumerWizard"
0969:                                        + pageNumber
0970:                                        + ".addProperty("
0971:                                        + "new EndPointProperty("
0972:                                        + "\""
0973:                                        + property.name.trim().replaceAll(" ",
0974:                                                "_") + "\"" + ", "
0975:                                        + property.readOnly.toString() + ", "
0976:                                        + property.required.toString() + ""
0977:                                        + "));";
0978:                            }
0979:                        }
0980:                        content += "\n\t\t";
0981:                        content += "this.addWizardPage(consumerWizard"
0982:                                + pageNumber + ", Role.CONSUMER);";
0983:                    }
0984:                }
0985:                content += "\n\t\t";
0986:                if (!providerList.isEmpty()) {
0987:                    int pageNumber = 0;
0988:                    for (PagesModelTableItem page : providerList) {
0989:                        pageNumber++;
0990:                        content += "\n\t\t";
0991:                        content += "// ---Provider Pages";
0992:                        content += "\n\t\t";
0993:                        //new BaseCustWizard
0994:                        content += "BaseCustWizard providerWizard" + pageNumber
0995:                                + "= new BaseCustWizard(" + "\"" + page.name
0996:                                + "\"" + ", " + "\"" + page.description + "\""
0997:                                + ");";
0998:
0999:                        int propertyNumer = 0;
1000:                        for (PropertiesModelTableItem property : page.properties) {
1001:                            //consumerWizard.addProperty
1002:                            propertyNumer++;
1003:                            content += "\n\t\t";
1004:                            if (property.type == 0) //text
1005:                            {
1006:                                content += "providerWizard"
1007:                                        + pageNumber
1008:                                        + ".addProperty("
1009:                                        + "new TextProperty("
1010:                                        + "\""
1011:                                        + property.name.trim().replaceAll(" ",
1012:                                                "_") + "\"" + ","
1013:                                        + property.readOnly.toString() + ","
1014:                                        + property.required.toString() + ", "
1015:                                        + "\"" + "Default Value" + "\"" + ")"
1016:                                        + ");";
1017:                            }
1018:                            if (property.type == 1)//file
1019:                            {
1020:                                content += "providerWizard"
1021:                                        + pageNumber
1022:                                        + ".addProperty("
1023:                                        + "new FileProperty("
1024:                                        + "\""
1025:                                        + property.name.trim().replaceAll(" ",
1026:                                                "_") + "\"" + ", "
1027:                                        + property.readOnly.toString() + ", "
1028:                                        + property.required.toString() + ", "
1029:                                        + "\"" + "c:\\" + "\"" + ", " + "null"
1030:                                        + ", " + "true" + ", "
1031:                                        + "FolderBrowseStyle.FILE_SYSTEM" + ""
1032:                                        + "));";
1033:                            }
1034:                            if (property.type == 2)//enumeration
1035:                            {
1036:                                content += "providerWizard"
1037:                                        + pageNumber
1038:                                        + ".addProperty("
1039:                                        + "new EnumProperty("
1040:                                        + "\""
1041:                                        + property.name.trim().replaceAll(" ",
1042:                                                "_") + "\"" + ", "
1043:                                        + property.readOnly.toString() + ", "
1044:                                        + property.required.toString() + ", "
1045:                                        + "\"" + "Default Value" + "\"" + ", "
1046:                                        + "new String[] {" + "\"" + "One"
1047:                                        + "\", " + "\"" + "Two" + "\", " + "\""
1048:                                        + "Three" + "\"" + "}" + ", " + "false"
1049:                                        + "" + "));";
1050:                            }
1051:                            if (property.type == 3)//boolean
1052:                            {
1053:                                content += "providerWizard"
1054:                                        + pageNumber
1055:                                        + ".addProperty("
1056:                                        + "new BooleanProperty("
1057:                                        + "\""
1058:                                        + property.name.trim().replaceAll(" ",
1059:                                                "_") + "\"" + ", "
1060:                                        + property.readOnly.toString() + ", "
1061:                                        + property.required.toString() + ", "
1062:                                        + "true" + "" + "));";
1063:                            }
1064:                            if (property.type == 4)//Endpoint
1065:                            {
1066:                                content += "providerWizard"
1067:                                        + pageNumber
1068:                                        + ".addProperty("
1069:                                        + "new EndPointProperty("
1070:                                        + "\""
1071:                                        + property.name.trim().replaceAll(" ",
1072:                                                "_") + "\"" + ", "
1073:                                        + property.readOnly.toString() + ", "
1074:                                        + property.required.toString() + ""
1075:                                        + "));";
1076:                            }
1077:                        }
1078:                        content += "\n\t\t";
1079:                        content += "this.addWizardPage(providerWizard"
1080:                                + pageNumber + ", Role.PROVIDER);";
1081:                    }
1082:                }
1083:
1084:                return content;
1085:            }
1086:
1087:            private String generateProviderUnmarshallSetters() {
1088:                String content = "\n\t\t";
1089:                for (PagesModelTableItem page : providerList)
1090:                    for (PropertiesModelTableItem property : page.properties) {
1091:                        if (property.type != 4) {
1092:                            content += "provider.set"
1093:                                    + capitalizeFirst(validPropertyName(property.name))
1094:                                    + "(DOMUtils.getAttribute(el,"
1095:                                    + capitalizeFirst(properties
1096:                                            .get(ComponentPropertiesComposite.NAME))
1097:                                    + "ProviderExtension" + "."
1098:                                    + validConstantName(property.name) + "));";
1099:                            content += "\n\t\t";
1100:                        } else {
1101:                            content += "String serviceName = DOMUtils.getAttribute(el,"
1102:                                    + capitalizeFirst(properties
1103:                                            .get(ComponentPropertiesComposite.NAME))
1104:                                    + "ProviderExtension"
1105:                                    + "."
1106:                                    + validConstantName(property.name
1107:                                            + "ServiceName") + ");";
1108:                            content += "\n\t\t";
1109:                            content += "if (serviceName != null && !serviceName.equals(\"\")) {"
1110:                                    + "\n\t\t\t";
1111:                            content += "QName serviceNameQN = DOMUtils.getQName(serviceName, el, def);"
1112:                                    + "\n\t\t\t";
1113:                            content += "provider.set"
1114:                                    + capitalizeFirst(validPropertyName(property.name))
1115:                                    + "ServiceName(serviceNameQN);" + "\n\t\t";
1116:                            content += "} else " + "\n\t\t\t";
1117:                            content += "{provider.set"
1118:                                    + capitalizeFirst(validPropertyName(property.name))
1119:                                    + "ServiceName(null);}" + "\n\t\t";
1120:                            content += "provider.set"
1121:                                    + capitalizeFirst(validPropertyName(property.name))
1122:                                    + "EndpointName(DOMUtils.getAttribute(el,"
1123:                                    + capitalizeFirst(properties
1124:                                            .get(ComponentPropertiesComposite.NAME))
1125:                                    + "ProviderExtension"
1126:                                    + "."
1127:                                    + validConstantName(property.name
1128:                                            + "EndpointName") + "));";
1129:                            content += "\n\t\t";
1130:                        }
1131:                    }
1132:                content += "\n\t\t";
1133:                return content;
1134:                //        return generateUnmarshallSetters(providerList);
1135:            }
1136:
1137:            private String generateProviderExtentionStaticConstants() {
1138:                return generateExtentionStaticConstants(providerList);
1139:            }
1140:
1141:            private String generateExtentionStaticConstants(
1142:                    List<PagesModelTableItem> list) {
1143:                String content = "\n\t\t";
1144:                for (PagesModelTableItem page : list)
1145:                    for (PropertiesModelTableItem property : page.properties) {
1146:                        if (property.type != 4) {
1147:                            content += "public static final String "
1148:                                    + validConstantName(property.name) + "=\""
1149:                                    + property.name.trim().replaceAll(" ", "_")
1150:                                    + "\";";
1151:                            content += "\n\t\t";
1152:                        } else {
1153:                            content += "public static final String "
1154:                                    + validConstantName(property.name
1155:                                            + "ServiceName") + "=\""
1156:                                    + property.name.trim().replaceAll(" ", "_")
1157:                                    + "ServiceName" + "\";";
1158:                            content += "\n\t\t";
1159:
1160:                            content += "public static final String "
1161:                                    + validConstantName(property.name
1162:                                            + "EndpointName") + "=\""
1163:                                    + property.name.trim().replaceAll(" ", "_")
1164:                                    + "EndpointName" + "\";";
1165:                            content += "\n\t\t";
1166:                        }
1167:                    }
1168:                content += "\n\t\t";
1169:                return content;
1170:            }
1171:
1172:            private String generateProviderGettersAndSetters() {
1173:                return generateGettersAndSetters(providerList);
1174:            }
1175:
1176:            /**
1177:             * Provider Properties
1178:             * @return
1179:             */
1180:            private String generateProviderProperties() {
1181:                return generateProperties(providerList);
1182:            }
1183:
1184:            private String generateConsumerUnmarshallSetters() {
1185:                String content = "\n\t\t";
1186:                for (PagesModelTableItem page : consumerList)
1187:                    for (PropertiesModelTableItem property : page.properties) {
1188:                        if (property.type != 4) {
1189:                            content += "consumer.set"
1190:                                    + capitalizeFirst(validPropertyName(property.name))
1191:                                    + "(DOMUtils.getAttribute(el,"
1192:                                    + capitalizeFirst(properties
1193:                                            .get(ComponentPropertiesComposite.NAME))
1194:                                    + "ConsumerExtension" + "."
1195:                                    + validConstantName(property.name) + "));";
1196:                            content += "\n\t\t";
1197:                        } else {
1198:                            content += "String serviceName = DOMUtils.getAttribute(el,"
1199:                                    + capitalizeFirst(properties
1200:                                            .get(ComponentPropertiesComposite.NAME))
1201:                                    + "ConsumerExtension"
1202:                                    + "."
1203:                                    + validConstantName(property.name
1204:                                            + "ServiceName") + ");";
1205:                            content += "\n\t\t";
1206:                            content += "if (serviceName != null && !serviceName.equals(\"\")) {"
1207:                                    + "\n\t\t\t";
1208:                            content += "QName serviceNameQN = DOMUtils.getQName(serviceName, el, def);"
1209:                                    + "\n\t\t\t";
1210:                            content += "consumer.set"
1211:                                    + capitalizeFirst(validPropertyName(property.name))
1212:                                    + "ServiceName(serviceNameQN);" + "\n\t\t";
1213:                            content += "} else " + "\n\t\t\t";
1214:                            content += "{consumer.set"
1215:                                    + capitalizeFirst(validPropertyName(property.name))
1216:                                    + "ServiceName(null);}" + "\n\t\t";
1217:                            content += "consumer.set"
1218:                                    + capitalizeFirst(validPropertyName(property.name))
1219:                                    + "EndpointName(DOMUtils.getAttribute(el,"
1220:                                    + capitalizeFirst(properties
1221:                                            .get(ComponentPropertiesComposite.NAME))
1222:                                    + "ConsumerExtension"
1223:                                    + "."
1224:                                    + validConstantName(property.name
1225:                                            + "EndpointName") + "));";
1226:                            content += "\n\t\t";
1227:                        }
1228:
1229:                    }
1230:                content += "\n\t\t";
1231:                return content;
1232:            }
1233:
1234:            private String generateConsumerExtendtionStaticConstants() {
1235:                return generateExtentionStaticConstants(consumerList);
1236:            }
1237:
1238:            private String generateConsumerGettersAndSetters() {
1239:                return generateGettersAndSetters(consumerList);
1240:            }
1241:
1242:            private String generateGettersAndSetters(
1243:                    List<PagesModelTableItem> list) {
1244:                String content = "\n\t\t";
1245:                for (PagesModelTableItem page : list)
1246:                    for (PropertiesModelTableItem property : page.properties) {
1247:                        if (property.type != 4) {
1248:                            content += "/* Setter for the "
1249:                                    + validPropertyName(property.name) + " */";
1250:                            content += "\n\t\t";
1251:                            content += "public void set"
1252:                                    + capitalizeFirst(validPropertyName(property.name))
1253:                                    + "(String value)";
1254:                            content += "\n\t\t";
1255:                            content += "{ this."
1256:                                    + validPropertyName(property.name)
1257:                                    + "=value;}";
1258:                            content += "\n\t\t";
1259:                            content += "\n\t\t";
1260:                            content += "/* Getter for the "
1261:                                    + validPropertyName(property.name) + "*/";
1262:                            content += "\n\t\t";
1263:                            content += "public String get"
1264:                                    + capitalizeFirst(validPropertyName(property.name))
1265:                                    + "()";
1266:                            content += "\n\t\t";
1267:                            content += "{ return this."
1268:                                    + validPropertyName(property.name) + ";}";
1269:                            content += "\n\t\t";
1270:                            content += "\n\t\t";
1271:                        } else {
1272:                            content += "/* Setter for the "
1273:                                    + validPropertyName(property.name)
1274:                                    + "ServiceName */";
1275:                            content += "\n\t\t";
1276:                            content += "public void set"
1277:                                    + capitalizeFirst(validPropertyName(property.name))
1278:                                    + "ServiceName(QName value)";
1279:                            content += "\n\t\t";
1280:                            content += "{ this."
1281:                                    + validPropertyName(property.name)
1282:                                    + "ServiceName=value;}";
1283:                            content += "\n\t\t";
1284:                            content += "\n\t\t";
1285:                            content += "/* Getter for the "
1286:                                    + validPropertyName(property.name)
1287:                                    + "ServiceName */";
1288:                            content += "\n\t\t";
1289:                            content += "public QName get"
1290:                                    + capitalizeFirst(validPropertyName(property.name))
1291:                                    + "ServiceName()";
1292:                            content += "\n\t\t";
1293:                            content += "{ return this."
1294:                                    + validPropertyName(property.name)
1295:                                    + "ServiceName;}";
1296:                            content += "\n\t\t";
1297:                            content += "\n\t\t";
1298:
1299:                            content += "/* Setter for the "
1300:                                    + validPropertyName(property.name)
1301:                                    + "EndpointName */";
1302:                            content += "\n\t\t";
1303:                            content += "public void set"
1304:                                    + capitalizeFirst(validPropertyName(property.name))
1305:                                    + "EndpointName(String value)";
1306:                            content += "\n\t\t";
1307:                            content += "{ this."
1308:                                    + validPropertyName(property.name)
1309:                                    + "EndpointName=value;}";
1310:                            content += "\n\t\t";
1311:                            content += "\n\t\t";
1312:                            content += "/* Getter for the "
1313:                                    + validPropertyName(property.name)
1314:                                    + "EndpointName */";
1315:                            content += "\n\t\t";
1316:                            content += "public String get"
1317:                                    + capitalizeFirst(validPropertyName(property.name))
1318:                                    + "EndpointName()";
1319:                            content += "\n\t\t";
1320:                            content += "{ return this."
1321:                                    + validPropertyName(property.name)
1322:                                    + "EndpointName;}";
1323:                            content += "\n\t\t";
1324:                            content += "\n\t\t";
1325:
1326:                        }
1327:                    }
1328:                content += "\n\t\t";
1329:                return content;
1330:            }
1331:
1332:            /**
1333:             * Consumer properties
1334:             * @return
1335:             */
1336:            private String generateConsumerProperties() {
1337:                return generateProperties(consumerList);
1338:            }
1339:
1340:            private String generateProperties(List<PagesModelTableItem> list) {
1341:                String content = "\n\t\t";
1342:                for (PagesModelTableItem page : list)
1343:                    for (PropertiesModelTableItem property : page.properties) {
1344:                        if (property.type != 4) {
1345:                            content += "protected String "
1346:                                    + validPropertyName(property.name)
1347:                                    + "=null;";
1348:                            content += "\n\t\t";
1349:                        } else {
1350:                            content += "protected QName "
1351:                                    + validPropertyName(property.name)
1352:                                    + "ServiceName=null;";
1353:                            content += "\n\t\t";
1354:                            content += "protected String "
1355:                                    + validPropertyName(property.name)
1356:                                    + "EndpointName=null;";
1357:                            content += "\n\t\t";
1358:                        }
1359:                    }
1360:                content += "\n\t\t";
1361:                return content;
1362:            }
1363:
1364:            private String generateEndpointAllGettersAndSetters() {
1365:
1366:                String content = "";
1367:                List<PropertiesModelTableItem> list = existIdenticalPropertyNames();
1368:                if (list == null) {
1369:                    content += generateConsumerGettersAndSetters();
1370:                    content += "\n\t\t";
1371:                    content += generateProviderGettersAndSetters();
1372:                } else {
1373:                    List<PagesModelTableItem> tempList = new ArrayList<PagesModelTableItem>();
1374:                    tempList.add(new PagesModelTableItem("", "", list));
1375:                    content += generateGettersAndSetters(tempList);
1376:                    content += "\n\t\t";
1377:                }
1378:                content += "\n\t\t";
1379:                return content;
1380:            }
1381:
1382:            private String generateEndpointAllProperties() {
1383:                String content = "";
1384:                List<PropertiesModelTableItem> list = existIdenticalPropertyNames();
1385:                if (list == null) {
1386:                    content += generateConsumerProperties();
1387:                    content += "\n\t\t";
1388:                    content += generateProviderProperties();
1389:                } else {
1390:                    List<PagesModelTableItem> tempList = new ArrayList<PagesModelTableItem>();
1391:                    tempList.add(new PagesModelTableItem("", "", list));
1392:                    content += generateProperties(tempList);
1393:                    content += "\n\t\t";
1394:                }
1395:                content += "\n\t\t";
1396:                return content;
1397:            }
1398:
1399:            /**
1400:             * checks if there are in consumer and provider same property names
1401:             * if there are same property names it will return a list of unique
1402:             * properties names, otherwise it will return null; 
1403:             * 
1404:             * @return null if no identical names found, otherwise return a
1405:             * list of all unique properties
1406:             */
1407:            private List<PropertiesModelTableItem> existIdenticalPropertyNames() {
1408:                List<PropertiesModelTableItem> list = new ArrayList<PropertiesModelTableItem>();
1409:                //unify the tree structure under the single list
1410:                for (PagesModelTableItem page : consumerList)
1411:                    for (PropertiesModelTableItem property : page.properties) {
1412:                        list.add(property);
1413:                    }
1414:                for (PagesModelTableItem page : providerList)
1415:                    for (PropertiesModelTableItem property : page.properties) {
1416:                        list.add(property);
1417:                    }
1418:                // check for identical elements
1419:                boolean identical = false;
1420:                List<PropertiesModelTableItem> uniqueList = new ArrayList<PropertiesModelTableItem>();
1421:                for (PropertiesModelTableItem propOne : list) {
1422:                    boolean add = true;
1423:                    if (uniqueList.size() != 0)
1424:                        for (PropertiesModelTableItem propTwo : uniqueList) {
1425:                            if (propOne.name.equalsIgnoreCase(propTwo.name)) {
1426:                                identical = true;
1427:                                add = false;
1428:                                break;
1429:                            }
1430:                        }
1431:                    if (add) {
1432:                        uniqueList.add(propOne);
1433:                    }
1434:                }
1435:                //otherwise no identical elements were found
1436:                return identical ? uniqueList : null;
1437:            }
1438:
1439:            /**
1440:             * just capitalize first letter
1441:             * @param str
1442:             * @return
1443:             */
1444:            protected static String capitalizeFirst(String str) {
1445:                if (!str.equals(str.toLowerCase())
1446:                        && !str.equals(str.toUpperCase()))
1447:                    return str;
1448:                String first = ("" + str.charAt(0)).toUpperCase();
1449:                String rest = str.substring(1).toLowerCase();
1450:                return first + rest;
1451:            }
1452:
1453:            /**
1454:             * returns a valid variable name
1455:             * @param s
1456:             * @return
1457:             */
1458:            protected static String validPropertyName(String s) {
1459:                String temp = s.replaceAll(" ", "_");
1460:                if (!temp.equals(temp.toLowerCase())
1461:                        && !temp.equals(temp.toUpperCase()))
1462:                    return temp;
1463:                return temp.toLowerCase();
1464:            }
1465:
1466:            /**
1467:             * returns a valid constant name
1468:             * @param s
1469:             * @return
1470:             */
1471:            protected static String validConstantName(String s) {
1472:                String temp = s.replaceAll(" ", "_");
1473:                if (!temp.equals(temp.toLowerCase())
1474:                        && !temp.equals(temp.toUpperCase()))
1475:                    return temp;
1476:                return temp.toUpperCase();
1477:            }
1478:
1479:        }
ww__w_.__j_a___v_a_2___s___.__co__m__ | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.