Index: Java/Source/com/seagullsw/appinterface/model/cics/schema/CicsFunctionDefinitionWriterXML.java =================================================================== --- Java/Source/com/seagullsw/appinterface/model/cics/schema/CicsFunctionDefinitionWriterXML.java (revision 27571) +++ Java/Source/com/seagullsw/appinterface/model/cics/schema/CicsFunctionDefinitionWriterXML.java (working copy) @@ -68,22 +68,7 @@ this.initializeStoreContext(MODEL_STORE_SPEC_XML); } - // Cobol comm buffer record definitions are maintained in separate files @Override - protected boolean shouldWriteSingleFile() { - /* - * ISSUE: Need to resolve this. Schema spec specifies that we write separate definition files for the I/O - * buffers, to eliminate duplication when same structure used for both input and output comm buffer and to - * enable cross-function sharing of references to a specific Cobol record definition. But this requires some - * loading mechanism to resolve references that we don't have yet; also, Chris believes there are issues with - * the triple-file organization. Punt for the moment, just write a single CICS function binding schema file for - * the moment. [Deb 16-Sep-99] - */ - // return false; - return true; // TEMP FOR PRE-ALPHA DEMO [Deb 15-Sep-99] - } - - @Override protected void writeBasicElementAttributes(int indentLevel) { XMLPrintWriter pw = this.getWriter(); @@ -138,18 +123,6 @@ } @Override - protected void writeDefinitionDocuments() throws ModelIOException { - - // ###ISSUE: This may not be necessary - if the docs already exist as a result of - // the initial parsing, then we don't have to do anything further at this - // point as long as we emitted the correct file name in the signature attributes - // [Deb 14-Aug-99] - - super.writeDefinitionDocuments(); - - } - - @Override protected void writeDefinitions(DataElementDefinitionList typeHolder, String aPathName) throws ModelIOException { // ###ISSUE: This may not be necessary - if the docs already exist as a result of @@ -160,16 +133,6 @@ } - @Override - protected void writeDefinitionSubElements(int indentLevel) throws ModelIOException { - if (!this.shouldWriteSingleFile()) { - Assert.shouldNotBe("We always write the Cobol structure definitions in separate files"); - return; - } - // TEMP(?) Just write everything in one file - super.writeDefinitionSubElements(indentLevel); - } - // write any sub-elements. @Override protected void writeSubElements(int indentLevel) throws ModelIOException { Index: Java/Source/com/seagullsw/appinterface/model/ims/schema/ImsFunctionDefinitionWriterXML.java =================================================================== --- Java/Source/com/seagullsw/appinterface/model/ims/schema/ImsFunctionDefinitionWriterXML.java (revision 27571) +++ Java/Source/com/seagullsw/appinterface/model/ims/schema/ImsFunctionDefinitionWriterXML.java (working copy) @@ -64,22 +64,7 @@ this.initializeStoreContext(MODEL_STORE_SPEC_XML); } - // Cobol comm buffer record definitions are maintained in separate files @Override - protected boolean shouldWriteSingleFile() { - /* - * ISSUE: Need to resolve this. Schema spec specifies that we write separate definition files for the I/O - * buffers, to eliminate duplication when same structure used for both input and output comm buffer and to - * enable cross-function sharing of references to a specific Cobol record definition. But this requires some - * loading mechanism to resolve references that we don't have yet; also, Chris believes there are issues with - * the triple-file organization. Punt for the moment, just write a single IMS function binding schema file for - * the moment. [Deb 16-Sep-99] - */ - // return false; - return true; // TEMP FOR PRE-ALPHA DEMO [Deb 15-Sep-99] - } - - @Override protected void writeBasicElementAttributes(int indentLevel) { XMLPrintWriter pw = this.getWriter(); @@ -96,18 +81,6 @@ } // writeBasicElementAttributes @Override - protected void writeDefinitionDocuments() throws ModelIOException { - - // ###ISSUE: This may not be necessary - if the docs already exist as a result of - // the initial parsing, then we don't have to do anything further at this - // point as long as we emitted the correct file name in the signature attributes - // [Deb 14-Aug-99] - - super.writeDefinitionDocuments(); - - } // writeDefinitionDocuments - - @Override protected void writeDefinitions(DataElementDefinitionList typeHolder, String aPathName) throws ModelIOException { // ###ISSUE: This may not be necessary - if the docs already exist as a result of @@ -118,16 +91,6 @@ } // writeDefinitions - @Override - protected void writeDefinitionSubElements(int indentLevel) throws ModelIOException { - if (!this.shouldWriteSingleFile()) { - Assert.shouldNotBe("We always write the Cobol structure definitions in separate files"); - return; - } - // TEMP(?) Just write everything in one file - super.writeDefinitionSubElements(indentLevel); - } - protected void writeImsBindingAttribute(String name, String value, int indentLevel) { if (StringUtils.isEmpty(value)) { return; Index: Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionBuilderDOM.java =================================================================== --- Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionBuilderDOM.java (revision 27777) +++ Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionBuilderDOM.java (working copy) @@ -280,31 +280,10 @@ /** Process any attributes on the function declaration element */ @Override protected void processAttributes() throws ModelIOException { - String aFileName; - String aPathName; - DataElementDefinitionList typeHolder; - String version = this.getDomAttribute(ModelXMLConstants.ATTRIBUTE_SYNTAX_VERSION); if (StringUtils.isNotBlank(version)) { this.getFunction().setVersion(version); } - - aFileName = this.getDomAttribute(FunctionDefinitionXMLConstants.ATTRIBUTE_ARGUMENT_TYPES); - if (StringUtils.isNotBlank(aFileName)) { - aPathName = new File(this.sourceDirectory, aFileName).getAbsolutePath(); - typeHolder = this.constructArgumentsHolder(); - this.loadDefinitions(typeHolder, aPathName); - this.installArgumentDefinitions(typeHolder); - } - - aFileName = this.getDomAttribute(FunctionDefinitionXMLConstants.ATTRIBUTE_RESULT_TYPE); - if (StringUtils.isNotBlank(aFileName)) { - aPathName = new File(this.sourceDirectory, aFileName).getAbsolutePath(); - typeHolder = this.constructResultHolder(); - this.loadDefinitions(typeHolder, aPathName); - this.installResultDefinition(typeHolder); - } - } /** Index: Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionWriterXML.java =================================================================== --- Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionWriterXML.java (revision 27571) +++ Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionWriterXML.java (working copy) @@ -181,29 +181,12 @@ } // initializeStoreContext - @Override - public void setTarget(Object target) { - if (!this.shouldWriteSingleFile()) { - Assert.isTrue(target instanceof XMLFilePrintWriter, "FunctionDefinition needs an XMLFilePrintWriter"); - } - super.setTarget(target); - } - - // answer whether argument and result type specifications are contained within the function definition document - // itself - protected boolean shouldWriteSingleFile() { - return FunctionDefinitionXMLConstants.WRITE_SINGLE_FILE; - } - // answer whether sub-elements should be written @Override protected boolean shouldWriteSubElements() { - return (this.shouldWriteSingleFile() - // and there's something to do... (which there usually should be) - && (this.getFunction().getArgumentDefinitions().size() > 0 || this.getFunction().getResultDefinition() != null)) - || getExtraElement(this.getFunction()) != null - || super.shouldWriteSubElements(); + return ((this.getFunction().getArgumentDefinitions().size() > 0 || this.getFunction().getResultDefinition() != null)) + || getExtraElement(this.getFunction()) != null || super.shouldWriteSubElements(); } // shouldWriteSubElements @@ -212,11 +195,6 @@ public void write(int indentLevel) throws ModelIOException { super.write(indentLevel); this.getWriter().flush(); - - if (!this.shouldWriteSingleFile()) { - this.writeDefinitionDocuments(); - } - } protected void writeBasicElementAttributes(int indentLevel) { @@ -232,78 +210,12 @@ } } - // generate attributes referencing the argument/result schema documents when written to separate files - protected void writeDefinitionDocumentReferenceAttributes(int indentLevel) { - - FunctionDefinition aDefinition = this.getFunction(); - XMLPrintWriter pw = this.getWriter(); - String aFileName; - - aFileName = ((aDefinition.getArgumentDefinitions().size() == 0) ? "" : this.fileNameArgumentsSchema()); - pw.printAttribute(FunctionDefinitionXMLConstants.ATTRIBUTE_ARGUMENT_TYPES, aFileName, indentLevel, true); - - aFileName = ((aDefinition.getResultDefinition() == null) ? "" : this.fileNameResultSchema()); - pw.printAttribute(FunctionDefinitionXMLConstants.ATTRIBUTE_RESULT_TYPE, aFileName, indentLevel, true); - - } - - // write the argument/result schema documents in separate files - protected void writeDefinitionDocuments() throws ModelIOException { - - FunctionDefinition aDefinition = this.getFunction(); - File aDirectory = this.getTargetDirectory(); - - String aPathName; - FunctionDefinitionTypeHolder typeHolder; - - DataElementDefinitionList arguments = aDefinition.getArgumentDefinitions(); - if (arguments.size() > 0) { - aPathName = new File(aDirectory, this.fileNameArgumentsSchema()).getAbsolutePath(); - typeHolder = this.constructArgumentsHolder(aDefinition.getSimpleName() + "ArgumentTypes"); - // hack alert, slime coming your way - typeHolder.installTempHolderValue(arguments); - this.writeDefinitions(typeHolder, aPathName); - // verify that putting this into the holder has no undesired side effects that we have to clean up - Assert.isTrue(arguments.getParent() == null); - if (arguments.getName() != null) { - Assert.isTrue(arguments.getQualifiedName().equals(arguments.getName())); - } - for (Object element : arguments) { - AggregateMember anElement = (AggregateMember) element; - Assert.isTrue(anElement.getParentElement() == null && anElement.getQualifiedName().equals(anElement.getName())); - } - } - - DataElementDefinition resultType = aDefinition.getResultDefinition(); - if (resultType != null) { - aPathName = new File(aDirectory, this.fileNameResultSchema()).getAbsolutePath(); - typeHolder = this.constructResultHolder(aDefinition.getSimpleName() + "ResultType"); - typeHolder.installTempHolderValue(resultType); - this.writeDefinitions(typeHolder, aPathName); - // verify that putting this into the holder has no undesired side effects that we have to clean up - // WAS: ((StructureComponentListMember)resultType).clearParentConnections(); - Assert.isTrue(resultType.getParent() == null); - if (resultType.getName() != null) { - Assert.isTrue(resultType.getQualifiedName().equals(resultType.getName())); - } - } - - } - // write any attributes for the definition element @Override protected void writeDefinitionElementAttributes(int indentLevel) { this.writeBasicElementAttributes(indentLevel + 1); - // generate attributes referencing the argument/result schema documents if written to separate files - if (!this.shouldWriteSingleFile()) { - XMLPrintWriter pw = this.getWriter(); - pw.println(); - this.writeDefinitionDocumentReferenceAttributes(indentLevel + 1); - pw.printIndent(indentLevel + 1); // position the ending bracket of the element tag - } - } // writeDefinitionElementAttributes // write separate XML document containing arg/result type definitions @@ -326,64 +238,12 @@ } // writeDefinitions - // gag, hack - clone huge chunk of miserable slimy code; needs work [Deb 11-Aug-99] - protected void writeDefinitionSubElements(int indentLevel) throws ModelIOException { - - FunctionDefinition aDefinition = this.getFunction(); - String elementTag; - FunctionDefinitionTypeHolder typeHolder; - - DataElementDefinitionList arguments = aDefinition.getArgumentDefinitions(); - if (arguments.size() > 0) { - elementTag = FunctionDefinitionXMLConstants.TAG_ARGUMENT_TYPES; - typeHolder = this.constructArgumentsHolder(elementTag); - // slimey hack here - typeHolder.installTempHolderValue(arguments); - this.writeDefinitions(elementTag, typeHolder, indentLevel); - // verify that putting this into the holder has no undesired side effects that we have to clean up - Assert.isTrue(arguments.getParent() == null); - if (arguments.getName() != null) { - Assert.isTrue(arguments.getQualifiedName().equals(arguments.getName())); - } - for (Object element : arguments) { - AggregateMember anElement = (AggregateMember) element; - Assert.isTrue(anElement.getParentElement() == null && anElement.getQualifiedName().equals(anElement.getName())); - } - } - - DataElementDefinition resultType = aDefinition.getResultDefinition(); - if (resultType != null) { - elementTag = FunctionDefinitionXMLConstants.TAG_RESULT_TYPE; - typeHolder = this.constructResultHolder(elementTag); - // slimey hack here - typeHolder.installTempHolderValue(resultType); - this.writeDefinitions(elementTag, typeHolder, indentLevel); - // verify that putting this into the holder has no undesired side effects that we have to clean up - // WAS: ((StructureElementListMember)resultType).clearParentConnections(); - Assert.isTrue(resultType.getParent() == null); - if (resultType.getName() != null) { - Assert.isTrue(resultType.getQualifiedName().equals(resultType.getName())); - } - } - - org.w3c.dom.Element extraElement = this.getExtraElement(aDefinition); - if (extraElement != null) { - this.getWriter().printElement(extraElement); - this.getWriter().println(); - } - - } // writeDefinitionSubElements - // write any sub-elements. @Override protected void writeSubElements(int indentLevel) throws ModelIOException { this.writeDescriptionElement(indentLevel); - if (this.shouldWriteSingleFile()) { - this.writeDefinitionSubElements(indentLevel); - } + } - } // writeSubElements - -} // FunctionDefinitionWriterXML +} Index: Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionXMLConstants.java =================================================================== --- Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionXMLConstants.java (revision 27571) +++ Java/Source/com/seagullsw/appinterface/model/schema/FunctionDefinitionXMLConstants.java (working copy) @@ -14,11 +14,6 @@ public class FunctionDefinitionXMLConstants extends SchemaDefinitionXMLConstants { - /** Signature types can be stored in separate schema definition document. */ - public static final String ATTRIBUTE_ARGUMENT_TYPES = "argumentTypes"; - - public static final String ATTRIBUTE_RESULT_TYPE = "resultType"; - public static final String ATTRIBUTE_RETURN_EMPTY_SEQ_ELTS = "returnEmptySequenceElements"; public static final ModelEncodingSpecification GENERIC_FUNCTION_DEFINITION_ENCODING_SPEC = new ModelEncodingSpecification( Index: Java/Source/com/seagullsw/appinterface/model/schema/mapping/FunctionMappingDefinitionWriterXML.java =================================================================== --- Java/Source/com/seagullsw/appinterface/model/schema/mapping/FunctionMappingDefinitionWriterXML.java (revision 27571) +++ Java/Source/com/seagullsw/appinterface/model/schema/mapping/FunctionMappingDefinitionWriterXML.java (working copy) @@ -110,27 +110,6 @@ return true; // we always have at least a binding function element to write } - // answer whether argument and result type specifications are contained within the function definition document - // itself - @Override - protected boolean shouldWriteSingleFile() { - return true; - } - - // generate attributes referencing the argument/result schema documents when written to separate files - @Override - protected void writeDefinitionDocumentReferenceAttributes(int indentLevel) { - Assert - .shouldNotBe("Arg/result mapping definitions should always be written within single function mapping document."); - } - - // write the argument/result schema documents in separate files - @Override - protected void writeDefinitionDocuments() { - Assert - .shouldNotBe("Arg/result mapping definitions should always be written within single function mapping document."); - } - // write any attributes for the definition element @Override protected void writeDefinitionElementAttributes(int indentLevel) { @@ -138,7 +117,7 @@ super.writeDefinitionElementAttributes(indentLevel); XMLPrintWriter pw = this.getWriter(); - boolean appendAttrsToCurrentLine = this.shouldWriteSingleFile(); // synch with superclass impl + boolean appendAttrsToCurrentLine = true; // sync with superclass impl if (appendAttrsToCurrentLine) { pw.space();