private void generateTransformMap() throws IOException { FileOutputStream fos = null; try { StringBuffer sb = new StringBuffer(); sb.append("<transformmap \n"); sb.append(" xmlns=\"http://xml.netbeans.org/schema/transformmap\"\n"); int nss = mNameSpacePrefix.size(); int i = 0; Set<String> nsUris = mNameSpacePrefix.keySet(); for (String nsUri : nsUris) { sb.append(" xmlns:" + mNameSpacePrefix.get(nsUri) + "=\"" + nsUri + "\""); i++; if (i < nss - 1) { sb.append("\n"); } } sb.append(">\n"); if (mProviders != null) { List<TMapServiceEntry> uniqueServices = getUniqueServices(mProviders); for (TMapServiceEntry uniqueService : uniqueServices) { sb.append(" <service partnerLinkType=\"") .append(getColonedQName(uniqueService.getPartnerLinkNameQname(), mNameSpacePrefix)) .append("\""); sb.append(" roleName=\"").append(uniqueService.getRoleName()).append("\" >\n"); sb.append(getServiceOperations(mProviders, uniqueService)); sb.append(" </service>\n"); } } sb.append("</transformmap>\n"); String content = sb.toString(); fos = new FileOutputStream(getTransformMapFile()); store(content.getBytes("UTF-8"), fos); } finally { if (fos != null) { fos.close(); } } }
private List<TMapServiceEntry> getUniqueServices(List<TMapServiceEntry> allServices) { List<TMapServiceEntry> uniqueServices = new ArrayList<TMapServiceEntry>(); if (allServices == null) { return uniqueServices; } for (int j = 0; j < allServices.size(); j++) { TMapServiceEntry tmpService = allServices.get(j); boolean isUnique = true; for (TMapServiceEntry uniqueServiceEntry : uniqueServices) { QName servicePltQname = tmpService.getPartnerLinkNameQname(); String serviceRoleName = tmpService.getRoleName(); if (servicePltQname != null && servicePltQname.equals(uniqueServiceEntry.getPartnerLinkNameQname()) && serviceRoleName != null && serviceRoleName.equals(uniqueServiceEntry.getRoleName())) { isUnique = false; } } if (isUnique) { uniqueServices.add(tmpService); } } return uniqueServices; }
private TMapServiceEntry getInvoke(TMapServiceEntry input) { if (mConsumers == null || mConsumers.size() == 0 || input == null || input.getNode() == null) { return null; } TMapServiceEntry invoke = null; for (TMapServiceEntry consumer : mConsumers) { Node tmpNode = consumer.getNode(); tmpNode = tmpNode == null ? null : tmpNode.getParentNode(); if (tmpNode == null || !TransformationDescType.INPUT.getTagName().equals(tmpNode.getLocalName())) { continue; } if (tmpNode.equals(input.getNode().getParentNode())) { invoke = consumer; break; } } return invoke; }
private String getServiceOperations( List<TMapServiceEntry> allServices, TMapServiceEntry uniqueService) { assert uniqueService != null && allServices != null; assert uniqueService.getPartnerLinkNameQname() != null && uniqueService.getRoleName() != null; StringBuffer serviceOperations = new StringBuffer(""); for (TMapServiceEntry service : allServices) { if (uniqueService.getRoleName().equals(service.getRoleName()) && uniqueService.getPartnerLinkNameQname().equals(service.getPartnerLinkNameQname())) { TMapServiceEntry invoke = getInvoke(service); StringBuffer invokeSb = new StringBuffer(); if (invoke != null) { invokeSb .append(" <invoke partnerLinkType=\"") .append(getColonedQName(invoke.getPartnerLinkNameQname(), mNameSpacePrefix)); invokeSb.append(" opName=\"").append(invoke.getOperation()).append("\" "); invokeSb.append(" roleName=\"").append(invoke.getRoleName()).append("\" "); invokeSb.append(" file=\"").append(invoke.getFile()).append("\" "); invokeSb.append(" transformJBI=\"").append(invoke.getTransformJBI()).append("\" "); } else { invokeSb.append("/>\n"); } StringBuffer sbOperation = new StringBuffer(); sbOperation.append(" <operation"); sbOperation.append(" opName=\"").append(service.getOperation()).append("\" "); // sbOperation.append(" file=\""). // append(service.getFile()). // append("\" "); // sbOperation.append(" transformJBI=\""). // append(service.getTransformJBI()). // append("\" "); sbOperation.append(invokeSb); serviceOperations.append(sbOperation); } } return serviceOperations.toString(); }