Example usage for org.apache.commons.collections4 MultiMap keySet

List of usage examples for org.apache.commons.collections4 MultiMap keySet

Introduction

In this page you can find the example usage for org.apache.commons.collections4 MultiMap keySet.

Prototype

Set<K> keySet();

Source Link

Document

Returns a Set view of the keys contained in this map.

Usage

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
}