List of usage examples for org.apache.commons.collections4 MultiMap keySet
Set<K> keySet();
From source file:eu.artist.postmigration.eubt.migrationtracemodel.wsmigrationtrace.loader.WSMigrationTraceHandler.java
public static void main(String[] args) throws Exception { WSMigrationTraceHandler loader = new WSMigrationTraceHandler("models/wsTraceExample.xmi"); System.out.println(".. From source to target ..."); SourceElement sourceElement = loader.sourceElementList.get(1); SourceParameter sourceParameter = sourceElement.getParameters().get(0); List<TargetElement> targetElementList = loader.getTargetElements(sourceElement); MultiMap<TargetElement, TargetParameter> targetMultiMap = loader.getTargetParameters(sourceElement, sourceParameter);/*from w w w. j a v a2s . c om*/ System.out.println("sourceElement = " + sourceElement); System.out.println("sourceParameter = " + sourceParameter); System.out.println("targetElementList = " + targetElementList); System.out.println("targetMultiMap = " + targetMultiMap); for (TargetElement targetElement : targetMultiMap.keySet()) { System.out.println("-----------"); System.out.println("targetElement name = " + targetElement.getElementName()); System.out.println("targetParameter = " + targetMultiMap.get(targetElement)); } // ----------------- System.out.println(".. From target to source ..."); TargetElement targetElement = loader.targetElementList.get(3); TargetParameter targetParameter = targetElement.getParameters().get(0); List<SourceElement> sourceElementList = loader.getSourceElements(targetElement); MultiMap<SourceElement, SourceParameter> sourceMultiMap = loader.getSourceParameters(targetElement, targetParameter); System.out.println("targetElement = " + targetElement); System.out.println("targetParameter = " + targetParameter); System.out.println("sourceElementList = " + sourceElementList); System.out.println("sourceMultiMap = " + sourceMultiMap); for (SourceElement sourceElement1 : sourceMultiMap.keySet()) { System.out.println("-----------"); System.out.println("sourceElement name = " + sourceElement1.getElementName()); System.out.println("sourceParameter = " + sourceMultiMap.get(sourceElement1)); } }
From source file:eu.artist.postmigration.eubt.helpers.SOAPHelper.java
/** * Migrated request operation ==> Original request operation(s) * //from w ww. j av a2 s . c o m * @param migratedOperationModel migrated operation model * @param migratedOperationAttributes operation attributes (= attribute name * and value) * @return original soap envelops corresponding to the given migrated * operation */ public static List<SOAPEnvelope> generateOriginalRequestSoapEnvelops(final TargetElement migratedOperationModel, final Map<String, String> migratedOperationAttributes, final WSMigrationTraceHandler wsMigrationTraceHandler) { final Map<SourceElement, OMElement> oparationMap = new LinkedHashMap<SourceElement, OMElement>(); final SOAP11Factory factory = new SOAP11Factory(); // For every migrated parameter, create its corresponding original parameter within their original operation(s) for (final TargetParameter migratedParameter : migratedOperationModel.getParameters()) { // in which original operation does this parameter exist? final MultiMap<SourceElement, SourceParameter> originalOperationParameters = wsMigrationTraceHandler .getSourceParameters(migratedOperationModel, migratedParameter); // for any original operation in which the migrated parameter exist --> create/extend original operation and parameter for (final SourceElement originalOperation : originalOperationParameters.keySet()) { OMElement operationElement = null; if (!oparationMap.containsKey(originalOperation)) { // new operation encountered --> create new operation final QName operationName = new QName(originalOperation.getElementNamespace().getNamespaceURI(), originalOperation.getElementName(), originalOperation.getElementNamespace().getNamespacePrefix()); operationElement = factory.createOMElement(operationName); } else { // existing operation encountered --> extend operationElement = oparationMap.get(originalOperation); } // obtain corresponding original parameter by checking the source parameter's target parameter back-link SourceParameter originalParameter = null; for (final SourceParameter sourceParameter : originalOperation.getParameters()) { for (final TargetParameter sourcesTargetParameter : sourceParameter.getTargetParameter()) { if (sourcesTargetParameter.equals(migratedParameter)) { originalParameter = sourceParameter; } } } // if there is a corresponding original attribute in the model --> create attribute if (originalParameter != null) { // create operation parameter final QName operationElementAttributeName = new QName(originalParameter.getParameterName()); final OMElement operationElementAttribute = factory .createOMElement(operationElementAttributeName); // obtain attribute value final OMText operationElementAttributeValue = factory.createOMText(operationElementAttribute, migratedOperationAttributes.get(migratedParameter.getParameterName())); // add attribute value to attribute operationElementAttribute.addChild(operationElementAttributeValue); // add attribute to operation operationElement.addChild(operationElementAttribute); // add operation to operation map oparationMap.put(originalOperation, operationElement); } } // for each original operation } // for each migrated parameter // Obtain corresponding original operation(s) final List<SourceElement> originalOperations = wsMigrationTraceHandler .getSourceElements(migratedOperationModel); // create new soap envelope for each original operation final List<SOAPEnvelope> soapEnvelops = new ArrayList<SOAPEnvelope>(); for (final SourceElement originalOperation : originalOperations) { // create operation element final OMElement operationElement = oparationMap.get(originalOperation); //OMNamespace operationNamespace = factory.createOMNamespace(originalOperation.getElementNamespace().getNamespaceURI(), originalOperation.getElementNamespace().getNamespacePrefix()); final SOAPEnvelope soapEnvelope = factory.createSOAPEnvelope(); final SOAPBody soapBody = factory.createSOAPBody(soapEnvelope); soapBody.addChild(operationElement); // populate list of soap envelops soapEnvelops.add(soapEnvelope); } return soapEnvelops; }
From source file:eu.artist.postmigration.eubt.helpers.SOAPHelper.java
/** * Original response operation => Migrated response operation(s) * //from w w w.j a va 2 s .c om * @param originalOperationModel migrated operation model * @param originalOperationAttributes operation attributes (= attribute name * and value) * @return migrated soap envelops corresponding to the given original * operation */ @Deprecated public static List<SOAPEnvelope> generateMigratedResponseSoapEnvelops( final SourceElement originalOperationModel, final OMElement originalOperation, final WSMigrationTraceHandler wsMigrationTraceHandler) { final Map<TargetElement, OMElement> elementMap = new LinkedHashMap<TargetElement, OMElement>(); final SOAP11Factory factory = new SOAP11Factory(); // SourceElement.parameters -> targetParameters (at source element level) // SourceElement.childElement(s) -> targetElement (from there match their parameters) // For every original parameter, create its corresponding migrated parameter within their migrated operation(s) for (final SourceParameter originalParameter : originalOperationModel.getParameters()) { // in which migrated operation does this parameter exist? final MultiMap<TargetElement, TargetParameter> migratedOperationParameters = wsMigrationTraceHandler .getTargetParameters(originalOperationModel, originalParameter); // for any migrated operation in which the original parameter exist --> create/extend migrated operation and parameter for (final TargetElement migratedOperation : migratedOperationParameters.keySet()) { OMElement operationElement = null; if (!elementMap.containsKey(migratedOperation)) { // new operation encountered --> create new operation final QName operationName = new QName(originalOperation.getNamespace().getNamespaceURI(), originalOperation.getLocalName(), originalOperation.getNamespace().getPrefix()); operationElement = factory.createOMElement(operationName); // create <result> element for result operation OMElement resultElement = factory.createOMElement(new QName("result")); operationElement.addChild(resultElement); } else { // existing operation encountered --> extend operation operationElement = elementMap.get(migratedOperation); } // obtain corresponding migrated parameter by checking the target parameter's source parameter back-link TargetParameter migratedParameter = null; for (final TargetParameter targetParameter : migratedOperation.getParameters()) { MultiMap<SourceElement, SourceParameter> sourceElementParameterMap = wsMigrationTraceHandler .getSourceParameters(migratedOperation, targetParameter); for (Iterator<Object> iterator = sourceElementParameterMap.values().iterator(); iterator .hasNext();) { SourceParameter sourceElementParameter = (SourceParameter) iterator.next(); if (sourceElementParameter.equals(originalParameter)) { migratedParameter = targetParameter; break; } } } // if there is a corresponding migrated attribute in the model --> create attribute if (migratedParameter != null) { // create operation parameter final QName operationElementAttributeName = new QName(migratedParameter.getParameterName()); final OMElement operationElementAttribute = factory .createOMElement(operationElementAttributeName); // obtain attribute value final OMText operationElementAttributeValue; if (originalOperation.getFirstOMChild() instanceof OMText) { // no child attributes available (only <result>) operationElementAttributeValue = factory.createOMText(operationElementAttribute, obtainAttributeValue((OMNode) originalOperation)); } else { // child attributes available final Map<String, String> originalOperationAttributes = SOAPHelper .obtainImmediateChildNodesAndValues(originalOperation); operationElementAttributeValue = factory.createOMText(operationElementAttribute, originalOperationAttributes.get(originalParameter.getParameterName())); } // add attribute value to attribute operationElementAttribute.addChild(operationElementAttributeValue); // add attribute to operation result OMElement resultElement = operationElement.getFirstChildWithName(new QName("result")); resultElement.addChild(operationElementAttribute); // add operation to element map elementMap.put(migratedOperation, operationElement); } } // for each migrated operation } // for each original parameter // Obtain corresponding migrated operation(s) final List<TargetElement> migratedOperations = wsMigrationTraceHandler .getTargetElements(originalOperationModel); final List<SOAPEnvelope> soapEnvelops = new ArrayList<SOAPEnvelope>(); for (final TargetElement migratedOperation : migratedOperations) { // create operation element final OMElement operationElement = elementMap.get(migratedOperation); final SOAPEnvelope soapEnvelope = factory.createSOAPEnvelope(); final SOAPBody soapBody = factory.createSOAPBody(soapEnvelope); soapBody.addChild(operationElement); // populate list of soap envelops soapEnvelops.add(soapEnvelope); } return soapEnvelops; }
From source file:eu.artist.postmigration.eubt.executiontrace.IndependentSOAPTrace.java
/** * // w w w . j a v a 2s . c o m * * @param compareableTrace */ private boolean isEqual(IndependentSOAPTrace compareableTrace, ASSERTION_LEVEL comparisonLevel) { // check if the given content matches with the own content for (Response soapResponse : soapTrace.getResponses()) { SOAPEnvelope soapEnvelope = (SOAPEnvelope) soapResponse.getData(); SOAPBody soapBody = soapEnvelope.getBody(); SOAPTrace comparableSoapTrace = (SOAPTrace) compareableTrace.getTrace(); for (Response comparableResponse : comparableSoapTrace.getResponses()) { SOAPEnvelope comparableSoapEnvelope = (SOAPEnvelope) comparableResponse.getData(); SOAPBody comparableSoapBody = comparableSoapEnvelope.getBody(); // obtain own operations and parameters MultiMap<OMElement, OMElement> elementChildrenMultiMap = obtainElementChildrenMap(soapBody); // obtain comparable operations and parameters MultiMap<OMElement, OMElement> comparableElementChildrenMultiMap = obtainElementChildrenMap( comparableSoapBody); OMElement operationElement = (OMElement) elementChildrenMultiMap.keySet().toArray()[0]; OMElement comparableOperationElement = (OMElement) comparableElementChildrenMultiMap.keySet() .toArray()[0]; // check if same operation name exists if (comparisonLevel == ASSERTION_LEVEL.OPERATION_LEVEL || comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_LEVEL || comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_VALUE_LEVEL) { if (operationElement.getLocalName().equals(comparableOperationElement.getLocalName())) { Debug.debug(this, "Trace comparison: found equal operation names '" + operationElement.getLocalName() + "'."); if (comparisonLevel == ASSERTION_LEVEL.OPERATION_LEVEL) { return true; } } else { Debug.debug(this, "Trace comparison: found unequal operation names '" + operationElement.getLocalName() + "' and '" + comparableOperationElement.getLocalName() + "'."); return false; } } // check if same attribute names exist if (comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_LEVEL || comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_VALUE_LEVEL) { boolean attributeNamesComparisonResult = compareElementNames(operationElement, comparableOperationElement); if (comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_LEVEL && attributeNamesComparisonResult) { Debug.debug(this, "Trace comparison: all attribute names are equal."); return true; } else if (comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_LEVEL && !attributeNamesComparisonResult) { Debug.debug(this, "Trace comparison: unequal attribute name found."); return false; } } // check if same attribute values exist if (comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_VALUE_LEVEL) { boolean attributeValuesComparisonResult = compareElementValues(operationElement, comparableOperationElement); if (comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_VALUE_LEVEL && attributeValuesComparisonResult) { Debug.debug(this, "Trace comparison: all attribute values are equal."); return true; } else if (comparisonLevel == ASSERTION_LEVEL.ATTRIBUTE_VALUE_LEVEL && !attributeValuesComparisonResult) { Debug.debug(this, "Trace comparison: unequal attribute values found."); return false; } } } // for each comparable response } // for each response return false; // not equal traces }