public Connector merge(MergeableMetadata<?> inputMd) throws Exception
{
if (inputMd instanceof ConnectorImpl)
{
ConnectorImpl input = (ConnectorImpl) inputMd;
XsdString newResourceadapterVersion = XsdString.isNull(this.resourceadapterVersion)
? input.resourceadapterVersion
: this.resourceadapterVersion;
XsdString newEisType = XsdString.isNull(this.eisType) ? input.eisType : this.eisType;
List<XsdString> newRequiredWorkContexts = MergeUtil.mergeList(this.requiredWorkContexts,
input.requiredWorkContexts);
XsdString newModuleName = this.moduleName == null ? input.moduleName : this.moduleName;
List<Icon> newIcons = MergeUtil.mergeList(this.icon, input.icon);
boolean newMetadataComplete = this.metadataComplete || input.metadataComplete;
LicenseType newLicense = this.license == null ? input.license : this.license.merge(input.license);
List<LocalizedXsdString> newDescriptions = MergeUtil.mergeList(this.description, input.description);
List<LocalizedXsdString> newDisplayNames = MergeUtil.mergeList(this.displayName, input.displayName);
XsdString newVendorName = XsdString.isNull(this.vendorName) ? input.vendorName : this.vendorName;;
ResourceAdapter newResourceadapter = this.resourceadapter == null
? (ResourceAdapter) input.resourceadapter
: ((ResourceAdapter) this.resourceadapter).merge((ResourceAdapter) input.resourceadapter);
return new ConnectorImpl(version, newModuleName, newVendorName, newEisType, newResourceadapterVersion,
newLicense, newResourceadapter, newRequiredWorkContexts, newMetadataComplete,
newDescriptions, newDisplayNames, newIcons, null);
}
return this;
}