Source Code Cross Referenced for TaglibDeclareMacroWebPageTag.java in  » Workflow-Engines » JFolder » org » jfolder » web » page » v1 » 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 » Workflow Engines » JFolder » org.jfolder.web.page.v1 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


0001:        /*
0002:         * JFolder, Copyright 2001-2006 Gary Steinmetz
0003:         *
0004:         * Distributable under LGPL license.
0005:         * See terms of license at gnu.org.
0006:         */
0007:
0008:        package org.jfolder.web.page.v1;
0009:
0010:        //base classes
0011:        import java.util.ArrayList;
0012:        import java.util.HashMap;
0013:
0014:        //project specific classes
0015:        import org.jfolder.common.StandardDataTypes;
0016:        import org.jfolder.common.files.WebPageTagMacro;
0017:        import org.jfolder.common.function.BaseWebPageTag;
0018:        import org.jfolder.common.function.WebPageTagInstanceViewContext;
0019:        import org.jfolder.common.function.WebPageTagInstanceViewContextInfo;
0020:        import org.jfolder.common.function.WebPageTagInstanceViewContextSubHtmlInfo;
0021:        import org.jfolder.common.function.v1.PostConstraintValidatorForDataSource;
0022:        import org.jfolder.common.function.v1.PostConstraintValidatorForVarNameAndType;
0023:        import org.jfolder.common.tagging.AppraiseConceptTagContext;
0024:        import org.jfolder.common.tagging.CompoundConceptTagConstraintContext;
0025:        import org.jfolder.common.tagging.ConceptTagCharacteristic;
0026:        import org.jfolder.common.tagging.ConceptTagCharacteristicHolder;
0027:        import org.jfolder.common.tagging.ConceptTagConstraint;
0028:        import org.jfolder.common.tagging.ConceptTagConstraintHolder;
0029:        import org.jfolder.common.tagging.ConceptTagConstraintTemplate;
0030:        import org.jfolder.common.tagging.ConceptTagFlagsHelper;
0031:        import org.jfolder.common.tagging.ConceptTagHelper;
0032:        import org.jfolder.common.tagging.ConceptTagMessageHolder;
0033:        import org.jfolder.common.tagging.DetermineClassConceptTagContext;
0034:        import org.jfolder.common.tagging.DetermineValueAndClassConceptTagContext;
0035:        import org.jfolder.common.tagging.DetermineValueAndClassConceptTagException;
0036:        import org.jfolder.common.tagging.DynamicConceptTagConstraintContext;
0037:        import org.jfolder.common.tagging.DynamicConceptTagValidator;
0038:        import org.jfolder.common.tagging.InitializeConceptTagContext;
0039:        import org.jfolder.common.tagging.SelectionCriteriaForReturnableConceptTag;
0040:        import org.jfolder.common.tagging.StaticConceptTagConstraintContext;
0041:        import org.jfolder.common.tagging.StudioConceptTagCreParInfoContext;
0042:        import org.jfolder.common.tagging.StudioConceptTagInstanceInfoContext;
0043:        import org.jfolder.common.tagging.StudioConceptTagTypeInfoContext;
0044:        import org.jfolder.common.tagging.ValueAndClassForConceptTag;
0045:        import org.jfolder.common.utils.xml.XMLHelper;
0046:
0047:        //other classes
0048:
0049:        public class TaglibDeclareMacroWebPageTag extends BaseWebPageTag
0050:                implements  WebPageTagMacro {
0051:
0052:            //characteristics
0053:            private ConceptTagCharacteristic nameCtchar = null;
0054:            private ConceptTagCharacteristic parameterCtchar = null;
0055:            private ConceptTagCharacteristic resultCtchar = null;
0056:            private ConceptTagCharacteristic actionCtchar = null;
0057:            private ConceptTagCharacteristic outputCtchar = null;
0058:
0059:            //name details
0060:            private final static String NAME_CTCON = "name";
0061:            private final static String NAME_TITLE = "Macro name";
0062:            private final static String NAME_SHORT_DESCRIPTION = "Macro name";
0063:
0064:            //
0065:            //
0066:            //
0067:            //parameter details
0068:            private final static String PARAMETER_CTCON = "parameter";
0069:            private final static String PARAMETER_TITLE = "Parameter";
0070:            private final static String PARAMETER_SHORT_DESCRIPTION = "Parameter";
0071:            //
0072:            //name of parameter details
0073:            private final static String PARAMETER_CTCON_NAME_CTCTEMP = "name";
0074:            private final static String PARAMETER_CTCON_NAME_TITLE = "Name";
0075:            private final static String PARAMETER_CTCON_NAME_SHORT_DESCRIPTION = "Name";
0076:            //
0077:            //type of parameter details
0078:            private final static String PARAMETER_CTCON_TYPE_CTCTEMP = "type";
0079:            private final static String PARAMETER_CTCON_TYPE_TITLE = "Type";
0080:            private final static String PARAMETER_CTCON_TYPE_SHORT_DESCRIPTION = "Type";
0081:
0082:            //
0083:            //
0084:            //
0085:            //
0086:            //result details
0087:            public final static String RESULT_CTCON = "result";
0088:            private final static String RESULT_TITLE = "Result";
0089:            private final static String RESULT_SHORT_DESCRIPTION = "Result";
0090:            //
0091:            //name of result details
0092:            private final static String RESULT_CTCON_NAME_CTCTEMP = "name";
0093:            private final static String RESULT_CTCON_NAME_TITLE = "Name";
0094:            private final static String RESULT_CTCON_NAME_SHORT_DESCRIPTION = "Name of result variable";
0095:
0096:            //type of result details
0097:            private final static String RESULT_CTCON_TYPE_CTCTEMP = "type";
0098:            private final static String RESULT_CTCON_TYPE_TITLE = "Type";
0099:            private final static String RESULT_CTCON_TYPE_SHORT_DESCRIPTION = "Type of result variable";
0100:
0101:            //value of result details
0102:            public final static String RESULT_CTCON_VALUE_CTCTEMP = "value";
0103:            private final static String RESULT_CTCON_VALUE_TITLE = "Value";
0104:            private final static String RESULT_CTCON_VALUE_SHORT_DESCRIPTION = "Value of result variable";
0105:
0106:            //
0107:            //
0108:            //
0109:            //
0110:            //action details
0111:            public final static String ACTION_CTCON = "action";
0112:            private final static String ACTION_TITLE = "Actions";
0113:            private final static String ACTION_SHORT_DESCRIPTION = "Actions";
0114:
0115:            //
0116:            //
0117:            //
0118:            //
0119:            //output details
0120:            public final static String OUTPUT_CTCON = "output";
0121:            private final static String OUTPUT_TITLE = "Output";
0122:            private final static String OUTPUT_SHORT_DESCRIPTION = "Output";
0123:
0124:            public void initialize(InitializeConceptTagContext inIctc) {
0125:
0126:                //
0127:                ConceptTagConstraintHolder rootCtconh = ConceptTagConstraintHolder
0128:                        .newInstance(inIctc);
0129:                ConceptTagCharacteristicHolder rootCtcharh = rootCtconh
0130:                        .getCharacteristicHolder();
0131:
0132:                //constrain "name"
0133:                ConceptTagConstraint nameCtcon = ConceptTagConstraint
0134:                        .newInstance(NAME_CTCON, rootCtconh);
0135:                //
0136:                nameCtcon.setMinimumLength(1);
0137:                nameCtcon.setMaximumLength(1);
0138:                //
0139:                nameCtcon.setTitle(NAME_TITLE);
0140:                nameCtcon.setShortDescription(NAME_SHORT_DESCRIPTION);
0141:                //
0142:                StaticConceptTagConstraintContext nameSctcc = StaticConceptTagConstraintContext
0143:                        .newInstance(nameCtcon);
0144:                //addendSctcc.setRegularExpression(CommonExpressions.DECIMAL);
0145:                //
0146:
0147:                //
0148:                //
0149:                //
0150:                //
0151:                //constrain "parameter"
0152:                ConceptTagConstraint parameterCtcon = ConceptTagConstraint
0153:                        .newInstance(PARAMETER_CTCON, rootCtconh);
0154:                //
0155:                parameterCtcon.setTitle(PARAMETER_TITLE);
0156:                parameterCtcon.setShortDescription(PARAMETER_SHORT_DESCRIPTION);
0157:                //
0158:                parameterCtcon.setMinimumLength(0);
0159:                parameterCtcon.setLengthUnbounded(true);
0160:                //
0161:                CompoundConceptTagConstraintContext parameterCctcc = CompoundConceptTagConstraintContext
0162:                        .newInstance(parameterCtcon);
0163:                //
0164:                //constrain "name" of "parameter"
0165:                ConceptTagConstraintTemplate parameterCtconNameCtctemp = ConceptTagConstraintTemplate
0166:                        .newInstance(PARAMETER_CTCON_NAME_CTCTEMP,
0167:                                parameterCctcc);
0168:                //
0169:                parameterCtconNameCtctemp.setTitle(PARAMETER_CTCON_NAME_TITLE);
0170:                parameterCtconNameCtctemp
0171:                        .setShortDescription(PARAMETER_CTCON_NAME_SHORT_DESCRIPTION);
0172:                //
0173:                //constrain "type" of "parameter"
0174:                ConceptTagConstraintTemplate parameterCtconTypeCtctemp = ConceptTagConstraintTemplate
0175:                        .newInstance(PARAMETER_CTCON_TYPE_CTCTEMP,
0176:                                parameterCctcc);
0177:                //
0178:                parameterCtconTypeCtctemp.setTitle(PARAMETER_CTCON_TYPE_TITLE);
0179:                parameterCtconTypeCtctemp
0180:                        .setShortDescription(PARAMETER_CTCON_TYPE_SHORT_DESCRIPTION);
0181:                //
0182:                PostConstraintValidatorForVarNameAndType
0183:                        .initializeNameAndTypeCtcon(parameterCtconNameCtctemp,
0184:                                parameterCtconTypeCtctemp,
0185:                                PARAMETER_CTCON_NAME_CTCTEMP,
0186:                                PARAMETER_CTCON_TYPE_CTCTEMP, null, false,
0187:                                rootCtcharh.getHandle(), -1);
0188:                //
0189:                //DynamicConceptTagConstraintContext macroDctcc =
0190:                //    macroCtcon.getDynamicConstraintContext();
0191:                //
0192:                //Class macroClasses[] = new Class[1];
0193:                //macroClasses[0] = TaglibDeclareMacroWebPageTag.class;
0194:                //macroDctcc.getValidator().allowOnlyTheseClasses(
0195:                //    macroClasses, "Only Macro tags are allowed here");
0196:                //
0197:                //macroDctcc.addDefaultValue(TaglibDeclareMacroWebPageTag.class);
0198:
0199:                //
0200:                //CommonV1WebPageTagHelper.prepUndefConForGenUse(rootCtconh);
0201:                ////constrain undefined
0202:                //ConceptTagConstraint unconstrainedCtcon =
0203:                //    rootCtconh.getUndefinedConstraint();
0204:                //unconstrainedCtcon.setMaximumLength(1);
0205:                ////
0206:                //DynamicConceptTagConstraintContext unconstrainedDctcc =
0207:                //    unconstrainedCtcon.getDynamicConstraintContext();
0208:                ////
0209:                //Class unconstrainedClasses[] = new Class[1];
0210:                //unconstrainedClasses[0] = TaglibDeclareMacroWebPageTag.class;
0211:                //unconstrainedDctcc.getValidator().allowOnlyTheseClasses(
0212:                //    unconstrainedClasses, "Only Macro tags are allowed here");
0213:                ////
0214:                //unconstrainedDctcc.addDefaultValue(
0215:                //    TaglibDeclareMacroWebPageTag.class);
0216:
0217:                //
0218:                //
0219:                //
0220:                //
0221:                //
0222:                //
0223:                //
0224:                //
0225:                //
0226:                //
0227:                //
0228:                //constrain "result"
0229:                ConceptTagConstraint resultCtcon = ConceptTagConstraint
0230:                        .newInstance(RESULT_CTCON, rootCtconh);
0231:                //
0232:                resultCtcon.setTitle(RESULT_TITLE);
0233:                resultCtcon.setShortDescription(RESULT_SHORT_DESCRIPTION);
0234:                //
0235:                resultCtcon.setMinimumLength(0);
0236:                resultCtcon.setLengthUnbounded(true);
0237:                //
0238:                CompoundConceptTagConstraintContext resultCctcc = CompoundConceptTagConstraintContext
0239:                        .newInstance(resultCtcon);
0240:                //
0241:                //constrain "name" of "result"
0242:                ConceptTagConstraintTemplate resultCtconNameCtctemp = ConceptTagConstraintTemplate
0243:                        .newInstance(RESULT_CTCON_NAME_CTCTEMP, resultCctcc);
0244:                resultCtconNameCtctemp.setTitle(RESULT_CTCON_NAME_TITLE);
0245:                resultCtconNameCtctemp
0246:                        .setShortDescription(RESULT_CTCON_NAME_SHORT_DESCRIPTION);
0247:                //
0248:                //nameCtcon.setMinimumLength(1);
0249:                //nameCtcon.setMaximumLength(1);
0250:                ////
0251:                //StaticConceptTagConstraintContext nameSctcc =
0252:                //    StaticConceptTagConstraintContext.newInstance(nameCtcon);
0253:                //nameSctcc.addDefaultValue("LocalVariable1");
0254:
0255:                //constrain "type" of "result"
0256:                ConceptTagConstraintTemplate resultCtconTypeCtctemp = ConceptTagConstraintTemplate
0257:                        .newInstance(RESULT_CTCON_TYPE_CTCTEMP, resultCctcc);
0258:                //
0259:                resultCtconTypeCtctemp.setTitle(RESULT_CTCON_TYPE_TITLE);
0260:                resultCtconTypeCtctemp
0261:                        .setShortDescription(RESULT_CTCON_TYPE_SHORT_DESCRIPTION);
0262:                //
0263:                //
0264:                //
0265:                PostConstraintValidatorForVarNameAndType
0266:                        .initializeNameAndTypeCtcon(resultCtconNameCtctemp,
0267:                                resultCtconTypeCtctemp,
0268:                                RESULT_CTCON_NAME_CTCTEMP,
0269:                                RESULT_CTCON_TYPE_CTCTEMP,
0270:                                RESULT_CTCON_VALUE_CTCTEMP, false, rootCtcharh
0271:                                        .getHandle(), -1);
0272:                //
0273:                //
0274:                //
0275:                //constrain "value" of "result"
0276:                ConceptTagConstraintTemplate resultCtconValueCtctemp = ConceptTagConstraintTemplate
0277:                        .newInstance(RESULT_CTCON_VALUE_CTCTEMP, resultCctcc);
0278:                //
0279:                resultCtconValueCtctemp.setMinimumLength(1);
0280:                resultCtconValueCtctemp.setMaximumLength(1);
0281:                //
0282:                resultCtconValueCtctemp.setTitle(RESULT_CTCON_VALUE_TITLE);
0283:                resultCtconValueCtctemp
0284:                        .setShortDescription(RESULT_CTCON_VALUE_SHORT_DESCRIPTION);
0285:                //
0286:                //StaticConceptTagConstraintContext resultCtconValueSctcc =
0287:                //    StaticConceptTagConstraintContext.newInstance(
0288:                //        resultCtconValueCtctemp);
0289:                //DynamicConceptTagConstraintContext resultCtconValueDctcc =
0290:                //    DynamicConceptTagConstraintContext.newInstance(
0291:                //        resultCtconValueCtctemp);
0292:                //valueSctcc.addDefaultValue("(Your Text Here)");
0293:
0294:                //
0295:                //
0296:                //
0297:                //constrain "action"
0298:                ConceptTagConstraint actionCtcon = ConceptTagConstraint
0299:                        .newInstance(ACTION_CTCON, rootCtconh);
0300:                //
0301:                actionCtcon.setTitle(ACTION_TITLE);
0302:                actionCtcon.setShortDescription(ACTION_SHORT_DESCRIPTION);
0303:                //
0304:                //
0305:                //PostConstraintValidatorForDataSource.initializeActionCtcon(
0306:                //    actionCtcon, inIctc);
0307:                PostConstraintValidatorForDataSource.initializeActionCtcon(
0308:                        actionCtcon, inIctc, false);
0309:
0310:                //
0311:                //
0312:                //
0313:                //constrain "output"
0314:                ConceptTagConstraint outputCtcon = ConceptTagConstraint
0315:                        .newInstance(OUTPUT_CTCON, rootCtconh);
0316:                //
0317:                outputCtcon.setTitle(OUTPUT_TITLE);
0318:                outputCtcon.setShortDescription(OUTPUT_SHORT_DESCRIPTION);
0319:                //
0320:                StaticConceptTagConstraintContext outputSctcc = StaticConceptTagConstraintContext
0321:                        .newInstance(outputCtcon);
0322:                outputSctcc.setMultiLine(true);
0323:                //
0324:                DynamicConceptTagConstraintContext outputDctcc = DynamicConceptTagConstraintContext
0325:                        .newInstance(outputCtcon);
0326:                DynamicConceptTagValidator outputDctv = outputDctcc
0327:                        .getValidator();
0328:                outputDctv.allowReturnOfAnythingIncludingNothing();
0329:                //
0330:                outputCtcon.setMinimumLength(0);
0331:                outputCtcon.setLengthUnbounded(true);
0332:
0333:                //
0334:                inIctc.initialize();
0335:                ConceptTagFlagsHelper.showCurrentVariables(inIctc,
0336:                        "TagDecMacWebPagTag after initialize");
0337:
0338:                //
0339:                this .nameCtchar = nameCtcon.getCharacteristic();
0340:                this .parameterCtchar = parameterCtcon.getCharacteristic();
0341:                this .resultCtchar = resultCtcon.getCharacteristic();
0342:                this .actionCtchar = actionCtcon.getCharacteristic();
0343:                this .outputCtchar = outputCtcon.getCharacteristic();
0344:
0345:                //
0346:                if (this .resultCtchar.getValueLength() > 0
0347:                        && this .outputCtchar.getValueLength() > 0) {
0348:                    //
0349:                    ConceptTagMessageHolder resultCtmh = this .resultCtchar
0350:                            .getParentMessageHolder();
0351:                    resultCtmh
0352:                            .addErrorHeaderMessage("Either 'Result' or 'Output' can be declared, but not both");
0353:                }
0354:            }
0355:
0356:            public void appraise(AppraiseConceptTagContext inActc) {
0357:
0358:                if (inActc instanceof  StudioConceptTagInstanceInfoContext) {
0359:
0360:                    StudioConceptTagInstanceInfoContext sctiic = (StudioConceptTagInstanceInfoContext) inActc;
0361:
0362:                    sctiic.setInstanceTitle("Declare Macro");
0363:                    sctiic.setInstanceDescription("Declare Macro");
0364:                } else if (inActc instanceof  StudioConceptTagTypeInfoContext) {
0365:
0366:                    StudioConceptTagTypeInfoContext scttic = (StudioConceptTagTypeInfoContext) inActc;
0367:
0368:                    scttic.setTypeTitle("Declare Macro");
0369:                    scttic.setTypeDescription("Declare Macro");
0370:                } else if (inActc instanceof  WebPageTagInstanceViewContext) {
0371:
0372:                    WebPageTagInstanceViewContext wptivc = (WebPageTagInstanceViewContext) inActc;
0373:
0374:                    //
0375:                    WebPageTagInstanceViewContextInfo info = wptivc
0376:                            .getInfoAsHtml();
0377:
0378:                    HashMap attrs = new HashMap();
0379:                    attrs.put("width", "100%");
0380:                    info
0381:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0382:                                    .newInstance("table", attrs));
0383:                    //
0384:                    //
0385:                    info.declareMouseOutBorderAsGray();
0386:                    info.declareMouseOutBorderAsOnePixel();
0387:                    info.declareMouseOutBorderAsDotted();
0388:                    //
0389:                    //
0390:                    //
0391:                    //name
0392:                    //
0393:                    addSingleLine("Macro", NAME_CTCON, this .nameCtchar, info,
0394:                            wptivc);
0395:                    //
0396:                    //
0397:                    //
0398:                    //parameter
0399:                    addMultiLine("Parameters", PARAMETER_CTCON,
0400:                            this .parameterCtchar, "Name",
0401:                            PARAMETER_CTCON_NAME_CTCTEMP, "Type",
0402:                            PARAMETER_CTCON_TYPE_CTCTEMP, null, null, info,
0403:                            wptivc);
0404:                    //
0405:                    /*
0406:                    for (int i = 0; i < this.parameterCtchar.getValueLength(); i++) {
0407:                        if (this.parameterCtchar.isHolderWithoutConceptTag(i, inActc)) {
0408:                            //
0409:                            ConceptTagCharacteristicHolder nextCtcharh =
0410:                                this.parameterCtchar.getValueAsHolder(i, inActc);
0411:                            //
0412:                            ConceptTagCharacteristic nextNameCtchar =
0413:                                nextCtcharh.getCharacteristic(
0414:                                    PARAMETER_CTCON_NAME_CTCTEMP);
0415:                            //
0416:                            ConceptTagCharacteristic nextTypeCtchar =
0417:                                nextCtcharh.getCharacteristic(
0418:                                    PARAMETER_CTCON_TYPE_CTCTEMP);
0419:                            //
0420:                            WebPageTagInstanceViewContextInfo parameterInfo =
0421:                                info.createHtmlInfo(this.parameterCtchar, i, null);
0422:                            //
0423:                            if (i > 0) {
0424:                                parameterInfo.setHtmlContent(
0425:                                    "<tr><td width=\"25%\">&nbsp;</td>",
0426:                                    "</tr>", true);
0427:                            }
0428:                            else {
0429:                                parameterInfo.setHtmlContent(
0430:                                    "<tr><td width=\"25%\">Parameter:</td>",
0431:                                    "</tr>", true);
0432:                            }
0433:                            //
0434:                            WebPageTagInstanceViewContextInfo nextNameInfo =
0435:                                parameterInfo.createHtmlInfo();
0436:                            if (nextNameCtchar.getValueLength() > 0
0437:                                && nextNameCtchar.isStatic(0, inActc)) {
0438:                                //
0439:                                nextNameInfo.setHtmlContent(
0440:                                    "<td width=\"25%\">Name - "
0441:                                        + XMLHelper.fromStringToHTML(
0442:                                            nextNameCtchar.getValueAsString(0, inActc)),
0443:                                    "</td>", true);
0444:                                //
0445:                                //
0446:                                //nextNameInfo.setEndContent("</td>");
0447:                            }
0448:                            else {
0449:                                nextNameInfo.setHtmlContent(
0450:                                    "<td width=\"25%\">Type - ?Unknown?</td>", true);
0451:                            }
0452:                            //
0453:                            //
0454:                            //
0455:                            WebPageTagInstanceViewContextInfo nextTypeInfo =
0456:                                parameterInfo.createHtmlInfo();
0457:                            if (nextTypeCtchar.getValueLength() > 0
0458:                                && nextTypeCtchar.isStatic(0, inActc)) {
0459:                                //
0460:                                nextTypeInfo.setHtmlContent(
0461:                                    "<td width=\"50%\" colspan=\"2\">Type - "
0462:                                        + XMLHelper.fromStringToHTML(
0463:                                            nextTypeCtchar.getValueAsString(0, inActc)),
0464:                                    "</td>", true);
0465:                                //
0466:                                //
0467:                                //nextTypeInfo.setEndContent("</td>");
0468:                            }
0469:                            else {
0470:                                nextTypeInfo.setHtmlContent(
0471:                                    "<td width=\"50%\" colspan=\"2\">"
0472:                                        + "Type - ?Unknown?</td>", true);
0473:                            }
0474:                            //
0475:                            //
0476:                            //
0477:                            //parameterInfo.setEndContent("</tr>");
0478:                        }
0479:                    }
0480:                    if (this.parameterCtchar.getValueLength() == 0) {
0481:                        WebPageTagInstanceViewContextInfo parameterInfo =
0482:                            info.createHtmlInfo();
0483:                        parameterInfo.setHtmlContent(
0484:                            "<tr><td width=\"25%\">Parameters:</td>"
0485:                                + "<td width=\"75%\" colspan=\"3\">(None)</td>",
0486:                            "</tr>", true);
0487:                        //parameterInfo.setEndContent("</tr>");
0488:                    }
0489:                     */
0490:                    //
0491:                    //
0492:                    //result
0493:                    //
0494:                    addMultiLine("Result", RESULT_CTCON, this .resultCtchar,
0495:                            "Name", RESULT_CTCON_NAME_CTCTEMP, "Type",
0496:                            RESULT_CTCON_TYPE_CTCTEMP, "Value",
0497:                            RESULT_CTCON_VALUE_CTCTEMP, info, wptivc);
0498:                    //
0499:                    /*
0500:                    if (this.resultCtchar.getValueLength() > 0
0501:                        && this.resultCtchar.isHolderWithoutConceptTag(0, inActc)) {
0502:                        //
0503:                        ConceptTagCharacteristicHolder nextCtcharh =
0504:                            this.resultCtchar.getValueAsHolder(0, inActc);
0505:                        //
0506:                        ConceptTagCharacteristic nextNameCtchar =
0507:                            nextCtcharh.getCharacteristic(
0508:                                RESULT_CTCON_NAME_CTCTEMP);
0509:                        //
0510:                        ConceptTagCharacteristic nextTypeCtchar =
0511:                            nextCtcharh.getCharacteristic(
0512:                                RESULT_CTCON_TYPE_CTCTEMP);
0513:                        //
0514:                        ConceptTagCharacteristic nextValueCtchar =
0515:                            nextCtcharh.getCharacteristic(
0516:                                RESULT_CTCON_VALUE_CTCTEMP);
0517:                        //
0518:                        //
0519:                        //
0520:                        //
0521:                        //
0522:                        WebPageTagInstanceViewContextInfo resultInfo =
0523:                            info.createHtmlInfo(this.resultCtchar, 0, null);
0524:                        //
0525:                        resultInfo.setHtmlContent(
0526:                            "<tr><td width=\"25%\">Result:</td>", "</tr>", true);
0527:                        //
0528:                        WebPageTagInstanceViewContextInfo nextNameInfo =
0529:                            resultInfo.createHtmlInfo();
0530:                        if (nextNameCtchar.getValueLength() > 0
0531:                            && nextNameCtchar.isStatic(0, inActc)) {
0532:                            //
0533:                            nextNameInfo.setHtmlContent(
0534:                                "<td width=\"25%\">Name - "
0535:                                    + XMLHelper.fromStringToHTML(
0536:                                        nextNameCtchar.getValueAsString(0, inActc)),
0537:                                "</td>", true);
0538:                            //
0539:                            //
0540:                            //nextNameInfo.setEndContent("</td>");
0541:                        }
0542:                        else {
0543:                            nextNameInfo.setHtmlContent(
0544:                                "<td width=\"25%\">Type - ?Unknown?</td>", true);
0545:                        }
0546:                        //
0547:                        //
0548:                        //
0549:                        WebPageTagInstanceViewContextInfo nextTypeInfo =
0550:                            resultInfo.createHtmlInfo();
0551:                        if (nextTypeCtchar.getValueLength() > 0
0552:                            && nextTypeCtchar.isStatic(0, inActc)) {
0553:                            //
0554:                            nextTypeInfo.setHtmlContent(
0555:                                "<td width=\"25%\">Type - "
0556:                                    + XMLHelper.fromStringToHTML(
0557:                                        nextTypeCtchar.getValueAsString(0, inActc)),
0558:                                "</td>", true);
0559:                            //
0560:                            //
0561:                            //nextTypeInfo.setEndContent("</td>");
0562:                        }
0563:                        else {
0564:                            nextTypeInfo.setHtmlContent(
0565:                                "<td width=\"25%\">Type - ?Unknown?</td>", true);
0566:                        }
0567:                        //
0568:                        //
0569:                        //
0570:                        WebPageTagInstanceViewContextInfo nextValueInfo =
0571:                            resultInfo.createHtmlInfo();
0572:                        if (nextValueCtchar.getValueLength() > 0) {
0573:                            //&& nextValueCtchar.isStatic(0, inActc)) {
0574:                            //
0575:                            nextValueInfo.setHtmlContent(
0576:                                "<td width=\"25%\">Initial Value - ", "</td>", true);
0577:                            //
0578:                            WebPageTagInstanceViewContext.displayView(
0579:                                nextValueCtchar, nextValueInfo, wptivc);
0580:                            //
0581:                            //nextValueInfo.setEndContent("</td>");
0582:                        }
0583:                        else {
0584:                            nextValueInfo.setHtmlContent(
0585:                                "<td width=\"25%\">Initial Value - ?Unknown?</td>",
0586:                                true);
0587:                        }
0588:                        //
0589:                        //
0590:                        //
0591:                        //resultInfo.setEndContent("</tr>");
0592:                    }
0593:                    else {
0594:                        WebPageTagInstanceViewContextInfo resultInfo =
0595:                            info.createHtmlInfo();
0596:                        resultInfo.setHtmlContent(
0597:                            "<tr><td width=\"25%\">Result:</td>"
0598:                                + "<td width=\"75%\" colspan=\"3\">(None)</td>",
0599:                            "</tr>", true);
0600:                        //resultInfo.setEndContent("</tr>");
0601:                    }
0602:                     */
0603:                    //
0604:                    //
0605:                    //action
0606:                    //
0607:                    addSingleLine("Action", ACTION_CTCON, this .actionCtchar,
0608:                            info, wptivc);
0609:                    //
0610:                    //
0611:                    ////////////////////////////////////////////////
0612:                    //
0613:                    //output
0614:                    //
0615:                    addSingleLine("Output", OUTPUT_CTCON, this .outputCtchar,
0616:                            info, wptivc);
0617:                    //
0618:                    //
0619:                    //
0620:                } else if (inActc instanceof  SelectionCriteriaForReturnableConceptTag) {
0621:
0622:                    SelectionCriteriaForReturnableConceptTag scfrct = (SelectionCriteriaForReturnableConceptTag) inActc;
0623:
0624:                    scfrct.canReturnNothing();
0625:                    scfrct.declareFormatAsHtml();
0626:
0627:                    //ConceptTagFlagsHelper.assertCanBeDirectChildOfRoot(scfrct);
0628:                    //ConceptTagFlagsHelper.setConceptTagAsUndeployable(scfrct);
0629:                } else if (inActc instanceof  StudioConceptTagCreParInfoContext) {
0630:
0631:                    StudioConceptTagCreParInfoContext scpc = (StudioConceptTagCreParInfoContext) inActc;
0632:                }
0633:            }
0634:
0635:            //
0636:            //
0637:            //
0638:            private final static void addMultiLine(String inTitle,
0639:                    String inCtconName, ConceptTagCharacteristic inCtchar,
0640:                    String inFirstTitle, String inFirstCtcon,
0641:                    String inSecondTitle, String inSecondCtcon,
0642:                    String inThirdTitle, String inThirdCtcon,
0643:                    WebPageTagInstanceViewContextInfo inParentInfo,
0644:                    WebPageTagInstanceViewContext inWptivc) {
0645:                //
0646:                for (int i = 0; i < inCtchar.getValueLength(); i++) {
0647:                    //
0648:                    WebPageTagInstanceViewContextInfo parentTrInfo = inParentInfo
0649:                            .createHtmlInfo();
0650:                    //
0651:                    HashMap parentTrAttrs = new HashMap();
0652:                    //
0653:                    parentTrInfo
0654:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0655:                                    .newInstance("tr", parentTrAttrs));
0656:                    //
0657:                    ////////////////////////////
0658:                    WebPageTagInstanceViewContextInfo parentFirstTdInfo = parentTrInfo
0659:                            .createHtmlInfo();
0660:                    //
0661:                    //
0662:                    HashMap parentFirstTdAttrs = new HashMap();
0663:                    parentFirstTdAttrs.put("width", "25%");
0664:                    //
0665:                    parentFirstTdInfo
0666:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0667:                                    .newInstance("td", parentFirstTdAttrs));
0668:                    //
0669:                    WebPageTagInstanceViewContextInfo parentFirstSubTdInfo = parentFirstTdInfo
0670:                            .createHtmlInfo();
0671:                    if (i == 0) {
0672:                        parentFirstSubTdInfo
0673:                                .setHtmlContent(inTitle + ":", true);
0674:                    } else {
0675:                        parentFirstSubTdInfo.setHtmlContent(" ", false);
0676:                    }
0677:                    //
0678:                    //
0679:                    //
0680:                    //
0681:                    WebPageTagInstanceViewContextInfo parentSecondTdInfo = parentTrInfo
0682:                            .createHtmlInfo();
0683:                    //
0684:                    //
0685:                    HashMap outputSecondTdAttrs = new HashMap();
0686:                    outputSecondTdAttrs.put("width", "75%");
0687:                    //
0688:                    parentSecondTdInfo
0689:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0690:                                    .newInstance("td", outputSecondTdAttrs));
0691:                    //
0692:                    //
0693:                    //
0694:                    ////create sub-table here
0695:                    WebPageTagInstanceViewContextInfo subTableInfo = parentSecondTdInfo
0696:                            .createHtmlInfo(inCtchar, i, null);
0697:                    //
0698:                    subTableInfo.declareMouseOutBorderAsGray();
0699:                    subTableInfo.declareMouseOutBorderAsDashed();
0700:                    //
0701:                    HashMap subTableAttrs = new HashMap();
0702:                    subTableAttrs.put("cellspacing", "5px");
0703:                    subTableInfo
0704:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0705:                                    .newInstance("table", subTableAttrs));
0706:                    //
0707:                    WebPageTagInstanceViewContextInfo subTrInfo = subTableInfo
0708:                            .createHtmlInfo();
0709:                    subTrInfo.setHtmlContent("<tr>", "</tr>", true);
0710:                    //
0711:                    ConceptTagCharacteristicHolder localCtcharh = inCtchar
0712:                            .getValueAsHolder(i, inWptivc);
0713:                    //
0714:                    //
0715:                    //
0716:                    //
0717:                    //
0718:                    ConceptTagCharacteristic localFirstCtchar = localCtcharh
0719:                            .getCharacteristic(inFirstCtcon);
0720:                    //
0721:                    ConceptTagCharacteristic localSecondCtchar = localCtcharh
0722:                            .getCharacteristic(inSecondCtcon);
0723:                    //
0724:                    //
0725:                    if (inThirdTitle != null && inThirdCtcon != null) {
0726:                        //
0727:                        ConceptTagCharacteristic localThirdCtchar = localCtcharh
0728:                                .getCharacteristic(inThirdCtcon);
0729:                        //
0730:                        addSubMultiLine(inFirstTitle, inFirstCtcon,
0731:                                new Integer(33), localFirstCtchar, subTrInfo,
0732:                                inWptivc);
0733:                        //
0734:                        addSubMultiLine(inSecondTitle, inSecondCtcon,
0735:                                new Integer(33), localSecondCtchar, subTrInfo,
0736:                                inWptivc);
0737:                        //
0738:                        addSubMultiLine(inThirdTitle, inThirdCtcon,
0739:                                new Integer(34), localThirdCtchar, subTrInfo,
0740:                                inWptivc);
0741:                    } else {
0742:                        //
0743:                        addSubMultiLine(inFirstTitle, inFirstCtcon,
0744:                                new Integer(66), localFirstCtchar, subTrInfo,
0745:                                inWptivc);
0746:                        //
0747:                        addSubMultiLine(inSecondTitle, inSecondCtcon,
0748:                                new Integer(34), localSecondCtchar, subTrInfo,
0749:                                inWptivc);
0750:                    }
0751:                }
0752:                if (inCtchar.getValueLength() == 0) {
0753:                    //
0754:                    WebPageTagInstanceViewContextInfo parentTrInfo = inParentInfo
0755:                            .createHtmlInfo();
0756:                    //
0757:                    HashMap parentTrAttrs = new HashMap();
0758:                    //
0759:                    parentTrInfo
0760:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0761:                                    .newInstance("tr", parentTrAttrs));
0762:                    //
0763:                    ////////////////////////////
0764:                    WebPageTagInstanceViewContextInfo parentFirstTdInfo = parentTrInfo
0765:                            .createHtmlInfo();
0766:                    //
0767:                    //
0768:                    HashMap parentFirstTdAttrs = new HashMap();
0769:                    parentFirstTdAttrs.put("width", "25%");
0770:                    //
0771:                    parentFirstTdInfo
0772:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0773:                                    .newInstance("td", parentFirstTdAttrs));
0774:                    //
0775:                    WebPageTagInstanceViewContextInfo parentFirstSubTdInfo = parentFirstTdInfo
0776:                            .createHtmlInfo();
0777:                    parentFirstSubTdInfo.setHtmlContent(inTitle + ":", true);
0778:                    //
0779:                    //
0780:                    //
0781:                    //
0782:                    WebPageTagInstanceViewContextInfo parentSecondTdInfo = parentTrInfo
0783:                            .createHtmlInfo(inCtconName);
0784:                    //
0785:                    //
0786:                    HashMap outputSecondTdAttrs = new HashMap();
0787:                    outputSecondTdAttrs.put("width", "75%");
0788:                    //
0789:                    parentSecondTdInfo
0790:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0791:                                    .newInstance("td", outputSecondTdAttrs));
0792:                    //
0793:                    //
0794:                    //
0795:                    WebPageTagInstanceViewContextInfo parentSubSecondTdInfo = parentSecondTdInfo
0796:                            .createHtmlInfo();
0797:                    parentSubSecondTdInfo.setHtmlContent("(No " + inTitle
0798:                            + " - Click Here To Add)", true);
0799:                }
0800:            }
0801:
0802:            private final static void addSubMultiLine(String inTitle,
0803:                    String inCtcon, Integer inWidth,
0804:                    ConceptTagCharacteristic inCtchar,
0805:                    WebPageTagInstanceViewContextInfo inParentInfo,
0806:                    WebPageTagInstanceViewContext inWptivc) {
0807:                //
0808:                //
0809:                HashMap tdAttrs = new HashMap();
0810:                if (inWidth != null) {
0811:                    tdAttrs.put("width", inWidth + "%");
0812:                }
0813:                //
0814:                //
0815:                if (inCtchar.getValueLength() > 0) {
0816:                    //
0817:                    WebPageTagInstanceViewContextInfo tdInfo = inParentInfo
0818:                            .createHtmlInfo();
0819:                    //
0820:                    tdInfo
0821:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0822:                                    .newInstance("td", tdAttrs));
0823:                    //
0824:                    WebPageTagInstanceViewContextInfo tdContentInfo = tdInfo
0825:                            .createHtmlInfo();
0826:                    //
0827:                    tdContentInfo.setHtmlContent(inTitle + ": ", false);
0828:                    //
0829:                    WebPageTagInstanceViewContext.displayView(inCtchar,
0830:                            tdContentInfo, inWptivc);
0831:                } else {
0832:                    //
0833:                    WebPageTagInstanceViewContextInfo tdInfo = inParentInfo
0834:                            .createHtmlInfo(inCtcon);
0835:                    //
0836:                    tdInfo
0837:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0838:                                    .newInstance("td", tdAttrs));
0839:                    //
0840:                    WebPageTagInstanceViewContextInfo tdContentInfo = tdInfo
0841:                            .createHtmlInfo();
0842:                    //
0843:                    tdContentInfo
0844:                            .setHtmlContent(inTitle + ": ?Unknown?", false);
0845:                }
0846:            }
0847:
0848:            //
0849:            protected final static void addSingleLine(String inTitle,
0850:                    String inCtconName, ConceptTagCharacteristic inCtchar,
0851:                    WebPageTagInstanceViewContextInfo inParentInfo,
0852:                    WebPageTagInstanceViewContext inWptivc) {
0853:                //
0854:                WebPageTagInstanceViewContextInfo outputTrInfo = inParentInfo
0855:                        .createHtmlInfo();
0856:                //
0857:                HashMap outputTrAttrs = new HashMap();
0858:                //
0859:                outputTrInfo
0860:                        .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0861:                                .newInstance("tr", outputTrAttrs));
0862:                //
0863:                ////////////////////////////
0864:                WebPageTagInstanceViewContextInfo outputFirstTdInfo = outputTrInfo
0865:                        .createHtmlInfo();
0866:                //
0867:                //
0868:                HashMap outputFirstTdAttrs = new HashMap();
0869:                outputFirstTdAttrs.put("width", "25%");
0870:                outputFirstTdAttrs.put("valigh", "top");
0871:                //
0872:                outputFirstTdInfo
0873:                        .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0874:                                .newInstance("td", outputFirstTdAttrs));
0875:                //
0876:                WebPageTagInstanceViewContextInfo outputFirstSubTdInfo = outputFirstTdInfo
0877:                        .createHtmlInfo();
0878:                outputFirstSubTdInfo.setHtmlContent(inTitle + ":", true);
0879:                //
0880:                ////////////////////////////
0881:                //
0882:                WebPageTagInstanceViewContextInfo outputSecondTdInfo = null;
0883:                //
0884:                HashMap outputSecondTdAttrs = new HashMap();
0885:                outputSecondTdAttrs.put("width", "75%");
0886:                outputSecondTdAttrs.put("colspan", "3");
0887:                //
0888:                if (inCtchar.getValueLength() > 0) {
0889:                    //
0890:                    outputSecondTdInfo = outputTrInfo.createHtmlInfo();
0891:                    //
0892:                    outputSecondTdInfo
0893:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0894:                                    .newInstance("td", outputSecondTdAttrs));
0895:                    //
0896:                    WebPageTagInstanceViewContext.displayView(inCtchar,
0897:                            outputSecondTdInfo, inWptivc);
0898:                } else {
0899:                    //
0900:                    outputSecondTdInfo = outputTrInfo
0901:                            .createHtmlInfo(inCtconName);
0902:                    //
0903:                    outputSecondTdInfo
0904:                            .setHtmlContent(WebPageTagInstanceViewContextSubHtmlInfo
0905:                                    .newInstance("td", outputSecondTdAttrs));
0906:                    //
0907:                    WebPageTagInstanceViewContextInfo outputSecondSubTdInfo = outputSecondTdInfo
0908:                            .createHtmlInfo();
0909:                    outputSecondSubTdInfo.setHtmlContent("(No " + inTitle
0910:                            + " - Click Here To Add)", true);
0911:                    //WebPageTagInstanceViewContext.displayView(
0912:                    //    this.outputCtchar, outputSecondTdInfo, wptivc);
0913:                }
0914:            }
0915:
0916:            //
0917:            //
0918:            //
0919:            public void determineClass(DetermineClassConceptTagContext inDcctc) {
0920:
0921:                //declare variables
0922:                //ConceptTagHelper.declareVariableInDetermineClassIfValid(
0923:                //    this.parameterCtchar,
0924:                //    PARAMETER_CTCON_NAME_CTCTEMP, PARAMETER_CTCON_TYPE_CTCTEMP,
0925:                //    inDcctc);
0926:
0927:                //
0928:                //ConceptTagHelper.declareVariableInDetermineClassIfValid(
0929:                //    this.resultCtchar,
0930:                //    RESULT_CTCON_NAME_CTCTEMP, RESULT_CTCON_TYPE_CTCTEMP,
0931:                //    inDcctc);
0932:
0933:                String localResultType = getResultType();
0934:                Class deterClass = StandardDataTypes
0935:                        .getActualClass(localResultType);
0936:                if (deterClass != null) {
0937:                    inDcctc.setDetermineClass(deterClass);
0938:                } else {
0939:                    inDcctc.setDetermineClass(StandardDataTypes.getAnyClass());
0940:                }
0941:            }
0942:
0943:            //
0944:            public void determineValueAndClass(
0945:                    DetermineValueAndClassConceptTagContext inDvacctc) {
0946:
0947:                //ArrayList declaredLocalVariables = new ArrayList();
0948:                //
0949:                HashMap previousGlobalVariables[] = new HashMap[1];
0950:                HashMap previousParentLocalVariables[] = new HashMap[1];
0951:                HashMap previousLocalVariables[] = new HashMap[1];
0952:                //
0953:                ConceptTagFlagsHelper.suspendAllVariables(inDvacctc,
0954:                        previousGlobalVariables, previousParentLocalVariables,
0955:                        previousLocalVariables);
0956:
0957:                try {
0958:                    //
0959:                    //declare result variable
0960:                    //
0961:                    String resultName = null;
0962:                    if (this .resultCtchar.getValueLength() > 0) {
0963:                        ConceptTagCharacteristicHolder resultCtcharh = this .resultCtchar
0964:                                .getValueAsHolder(0, inDvacctc);
0965:                        //
0966:                        ConceptTagCharacteristic nameCtchar = resultCtcharh
0967:                                .getCharacteristic(RESULT_CTCON_NAME_CTCTEMP);
0968:                        ConceptTagCharacteristic typeCtchar = resultCtcharh
0969:                                .getCharacteristic(RESULT_CTCON_TYPE_CTCTEMP);
0970:                        ConceptTagCharacteristic valueCtchar = resultCtcharh
0971:                                .getCharacteristic(RESULT_CTCON_VALUE_CTCTEMP);
0972:                        //
0973:                        resultName = nameCtchar.getValueAsString(0, inDvacctc);
0974:                        //
0975:                        String resultType = typeCtchar.getValueAsString(0,
0976:                                inDvacctc);
0977:                        Class resultClass = StandardDataTypes
0978:                                .getActualClass(resultType);
0979:                        Object resultValue = ConceptTagHelper
0980:                                .getStandardValueFromChar(valueCtchar,
0981:                                        resultType, 0, inDvacctc);
0982:                        //
0983:                        ConceptTagFlagsHelper.createLocalVariable(inDvacctc,
0984:                                resultClass, resultName, resultValue);
0985:                    }
0986:                    //
0987:                    //initialize parameters
0988:                    //
0989:                    String paramNames[] = getParameterNames();
0990:                    ValueAndClassForConceptTag paramValues[] = ConceptTagFlagsHelper
0991:                            .getMacroCallVacs(inDvacctc);
0992:                    for (int i = 0; i < paramNames.length; i++) {
0993:                        ValueAndClassForConceptTag nextVac = paramValues[i];
0994:                        ConceptTagFlagsHelper.createLocalVariable(inDvacctc,
0995:                                nextVac.getValueClass(), paramNames[i], nextVac
0996:                                        .getValue());
0997:                    }
0998:
0999:                    //
1000:                    //call actions
1001:                    //
1002:                    for (int i = 0; i < this .actionCtchar.getValueLength(); i++) {
1003:                        this .actionCtchar.getDetermineValueAndClass(i,
1004:                                inDvacctc);
1005:                    }
1006:
1007:                    //
1008:                    //generate output
1009:                    //
1010:                    this .outputCtchar.processIterativeStructure(inDvacctc);
1011:
1012:                    //
1013:                    //establish result
1014:                    //
1015:                    if (resultName != null) {
1016:                        //
1017:                        ValueAndClassForConceptTag resultVac = ConceptTagFlagsHelper
1018:                                .accessLocalVariable(inDvacctc, resultName);
1019:                        //
1020:                        inDvacctc.setDetermineValueAndClass(resultVac);
1021:                    } else {
1022:                        inDvacctc
1023:                                .setDetermineValueAndClass(ValueAndClassForConceptTag
1024:                                        .newNothing());
1025:                    }
1026:                } catch (DetermineValueAndClassConceptTagException dvaccte) {
1027:                    inDvacctc.setDetermineException(dvaccte);
1028:                } finally {
1029:                    ConceptTagFlagsHelper.reinstateAllVariables(inDvacctc,
1030:                            previousGlobalVariables,
1031:                            previousParentLocalVariables,
1032:                            previousLocalVariables);
1033:                }
1034:            }
1035:
1036:            //
1037:            //
1038:            //
1039:            //
1040:            //
1041:            //
1042:            //
1043:            public boolean isSignatureMatch(String inName,
1044:                    String inParameterTypes[]) {
1045:
1046:                boolean outValue = true;
1047:
1048:                //
1049:                outValue &= getName().equals(inName);
1050:                //
1051:                String localParamTypes[] = getParameterTypes();
1052:                if (inParameterTypes.length == localParamTypes.length) {
1053:                    for (int i = 0; i < inParameterTypes.length; i++) {
1054:                        outValue &= (inParameterTypes[i])
1055:                                .equals(localParamTypes[i]);
1056:                    }
1057:                } else {
1058:                    outValue &= false;
1059:                }
1060:
1061:                return outValue;
1062:            }
1063:
1064:            //
1065:            public String getResultType() {
1066:
1067:                String outValue = null;
1068:
1069:                //
1070:                if (this .resultCtchar.getValueLength() > 0
1071:                        && !isErrorPresent(this .resultCtchar)) {
1072:                    //
1073:                    ConceptTagCharacteristicHolder resultCtcharh = this .resultCtchar
1074:                            .getValueAsHolder(0, null);
1075:                    ConceptTagCharacteristic typeCtchar = resultCtcharh
1076:                            .getCharacteristic(RESULT_CTCON_TYPE_CTCTEMP);
1077:                    //
1078:                    outValue = typeCtchar.getValueAsString(0, null);
1079:                } else {
1080:                    HashMap ctdn = StandardDataTypes.getClassToDisplayName();
1081:                    Class nothingClass = StandardDataTypes.getNothingClass();
1082:
1083:                    outValue = ((String) ctdn.get(nothingClass));
1084:                }
1085:
1086:                return outValue;
1087:            }
1088:
1089:            //
1090:            public String getName() {
1091:                return this .nameCtchar.getValueAsString(0, null);
1092:            }
1093:
1094:            //
1095:            public int getParameterCount() {
1096:                return this .parameterCtchar.getValueLength();
1097:            }
1098:
1099:            //
1100:            public String[] getParameterNames() {
1101:
1102:                String outValue[] = new String[getParameterCount()];
1103:
1104:                for (int i = 0; i < getParameterCount(); i++) {
1105:                    outValue[i] = getParameterName(i);
1106:                }
1107:
1108:                return outValue;
1109:            }
1110:
1111:            public String getParameterName(int inIndex) {
1112:
1113:                String outValue = null;
1114:
1115:                //
1116:                ConceptTagCharacteristicHolder paramCtcharh = this .parameterCtchar
1117:                        .getValueAsHolder(inIndex, null);
1118:                //
1119:                ConceptTagCharacteristic nameCtchar = paramCtcharh
1120:                        .getCharacteristic(PARAMETER_CTCON_NAME_CTCTEMP);
1121:                //
1122:                outValue = nameCtchar.getValueAsString(0, null);
1123:
1124:                return outValue;
1125:            }
1126:
1127:            //
1128:            public String[] getParameterTypes() {
1129:
1130:                String outValue[] = new String[getParameterCount()];
1131:
1132:                for (int i = 0; i < getParameterCount(); i++) {
1133:                    outValue[i] = getParameterType(i);
1134:                }
1135:
1136:                return outValue;
1137:            }
1138:
1139:            public String getParameterType(int inIndex) {
1140:
1141:                String outValue = null;
1142:
1143:                //
1144:                ConceptTagCharacteristicHolder paramCtcharh = this .parameterCtchar
1145:                        .getValueAsHolder(inIndex, null);
1146:                //
1147:                ConceptTagCharacteristic typeCtchar = paramCtcharh
1148:                        .getCharacteristic(PARAMETER_CTCON_TYPE_CTCTEMP);
1149:                //
1150:                outValue = typeCtchar.getValueAsString(0, null);
1151:
1152:                return outValue;
1153:            }
1154:
1155:            //
1156:            public boolean isSignatureValid() {
1157:                //
1158:                boolean outValue = true;
1159:
1160:                outValue &= !isErrorPresent(this .nameCtchar);
1161:                outValue &= !isErrorPresent(this .parameterCtchar);
1162:                outValue &= !isErrorPresent(this .resultCtchar);
1163:
1164:                return outValue;
1165:            }
1166:
1167:            //
1168:            private final static boolean isErrorPresent(
1169:                    ConceptTagCharacteristic inCtchar) {
1170:                //
1171:                boolean outValue = false;
1172:
1173:                ConceptTagMessageHolder ctmh = inCtchar
1174:                        .getParentMessageHolder();
1175:                outValue |= ctmh.isErrorPresent();
1176:
1177:                //
1178:
1179:                return outValue;
1180:            }
1181:
1182:            private final static boolean isErrorPresent(
1183:                    ConceptTagCharacteristicHolder inCtcharh) {
1184:                //
1185:                boolean outValue = false;
1186:
1187:                for (int i = 0; i < inCtcharh.getCharacteristicCount(); i++) {
1188:                    //
1189:                    ConceptTagCharacteristic nextCtchar = inCtcharh
1190:                            .getCharacteristic(i);
1191:                    //
1192:                    outValue |= isErrorPresent(nextCtchar);
1193:                }
1194:                //
1195:                if (inCtcharh.getUndefinedCharacteristic() != null) {
1196:                    outValue |= isErrorPresent(inCtcharh
1197:                            .getUndefinedCharacteristic());
1198:                }
1199:
1200:                return outValue;
1201:            }
1202:
1203:            public Object createUninitializedSelf() {
1204:                return new TaglibDeclareMacroWebPageTag();
1205:            }
1206:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.