X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmessagebus-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmessagebus%2Fapp%2Fimpl%2FUtil.java;h=d6bcbf2920e1283692297e10f7b830140c4bf6f7;hp=9927d85c3ec5e9b01b8c89d185309b4ca9606efa;hb=2727bea09c83646b6cbd2ef9672d0b7f6cf3b22f;hpb=e3998d55e33da9f6ecb69da75ecc71a047b6362b diff --git a/opendaylight/md-sal/messagebus-impl/src/main/java/org/opendaylight/controller/messagebus/app/impl/Util.java b/opendaylight/md-sal/messagebus-impl/src/main/java/org/opendaylight/controller/messagebus/app/impl/Util.java index 9927d85c3e..d6bcbf2920 100644 --- a/opendaylight/md-sal/messagebus-impl/src/main/java/org/opendaylight/controller/messagebus/app/impl/Util.java +++ b/opendaylight/md-sal/messagebus-impl/src/main/java/org/opendaylight/controller/messagebus/app/impl/Util.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -8,90 +8,47 @@ package org.opendaylight.controller.messagebus.app.impl; -import com.google.common.util.concurrent.Futures; -import java.math.BigInteger; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.Map; +import java.util.UUID; import java.util.concurrent.Future; import java.util.regex.Pattern; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; -import org.opendaylight.controller.sal.common.util.Rpcs; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.RpcError; + import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; -public final class Util { - private static final MessageDigest messageDigestTemplate = getDigestInstance(); +import com.google.common.util.concurrent.Futures; - private static MessageDigest getDigestInstance() { - try { - return MessageDigest.getInstance("MD5"); - } catch (NoSuchAlgorithmException e) { - throw new RuntimeException("Unable to get MD5 instance"); - } - } - public static String md5String(final String inputString) { +public final class Util { - try { - MessageDigest md = (MessageDigest)messageDigestTemplate.clone(); - md.update(inputString.getBytes("UTF-8"), 0, inputString.length()); - return new BigInteger(1, md.digest()).toString(16); - } catch (Exception e) { - throw new RuntimeException("Unable to get MD5 instance"); - } + public static String getUUIDIdent(){ + UUID uuid = UUID.randomUUID(); + return uuid.toString(); } - public static Future> resultFor(final T output) { - RpcResult result = Rpcs.getRpcResult(true, output, Collections.emptyList()); + public static Future> resultRpcSuccessFor(final T output) { + final RpcResult result = RpcResultBuilder.success(output).build(); return Futures.immediateFuture(result); } - /** - * Extracts affected node from data change event. - * @param event - * @return - */ - public static Node getAffectedNode(final AsyncDataChangeEvent, DataObject> event) { - // TODO: expect listener method to be called even when change impact node - // TODO: test with change.getCreatedData() - for (Map.Entry, DataObject> changeEntry : event.getUpdatedData().entrySet()) { - if (isNode(changeEntry)) { - return (Node) changeEntry.getValue(); - } - } - - return null; - } - - private static boolean isNode(final Map.Entry, DataObject> changeEntry ) { - return Node.class.equals(changeEntry.getKey().getTargetType()); - } - /** * Method filters qnames based on wildcard strings * - * @param availableQnames + * @param list * @param patterh matching pattern * @return list of filtered qnames */ - public static List expandQname(final List availableQnames, final Pattern pattern) { - List matchingQnames = new ArrayList<>(); + public static List expandQname(final List list, final Pattern pattern) { + final List matchingQnames = new ArrayList<>(); - for (QName qname : availableQnames) { - String namespace = qname.getNamespace().toString(); + for (final SchemaPath notification : list) { + final String namespace = notification.getLastComponent().getNamespace().toString(); if (pattern.matcher(namespace).matches()) { - matchingQnames.add(qname); + matchingQnames.add(notification); } } - return matchingQnames; } @@ -100,10 +57,10 @@ public final class Util { * @param wildcard * @return */ - static String wildcardToRegex(final String wildcard){ - StringBuffer s = new StringBuffer(wildcard.length()); + public static String wildcardToRegex(final String wildcard){ + final StringBuffer s = new StringBuffer(wildcard.length()); s.append('^'); - for (char c : wildcard.toCharArray()) { + for (final char c : wildcard.toCharArray()) { switch(c) { case '*': s.append(".*");