From: Robert Varga Date: Thu, 5 Jun 2014 11:09:41 +0000 (+0200) Subject: BUG-614: migrate RuntimeGeneratedInvokerPrototype X-Git-Tag: release/helium~686^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=23c447f8bd2b5b2591ed699c1de1b11cc71a6e27 BUG-614: migrate RuntimeGeneratedInvokerPrototype Splits off RuntimeGeneratedInvokerPrototype DTO into java. There is no reason it should be in xtend. Change-Id: I625d44d398cfe72be21ac33d29986c736412970e Signed-off-by: Robert Varga --- diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RuntimeCodeGenerator.xtend b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RuntimeCodeGenerator.xtend index 465a1f7d9d..d47c0f9ab7 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RuntimeCodeGenerator.xtend +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RuntimeCodeGenerator.xtend @@ -7,38 +7,33 @@ */ package org.opendaylight.controller.sal.binding.codegen.impl +import java.util.HashMap +import java.util.HashSet +import java.util.Map +import java.util.WeakHashMap import javassist.ClassPool -import org.opendaylight.yangtools.yang.binding.RpcService - import javassist.CtClass import javassist.CtMethod -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier -import org.opendaylight.yangtools.yang.binding.annotations.RoutingContext +import javassist.LoaderClassPath +import org.opendaylight.controller.sal.binding.codegen.RuntimeCodeHelper +import org.opendaylight.controller.sal.binding.spi.NotificationInvokerFactory +import org.opendaylight.controller.sal.binding.spi.NotificationInvokerFactory.NotificationInvoker +import org.opendaylight.yangtools.sal.binding.generator.util.ClassLoaderUtils +import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils import org.opendaylight.yangtools.yang.binding.BaseIdentity - -import java.util.Map -import java.util.HashMap - - -import org.opendaylight.yangtools.yang.binding.NotificationListener +import org.opendaylight.yangtools.yang.binding.DataContainer +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier import org.opendaylight.yangtools.yang.binding.Notification +import org.opendaylight.yangtools.yang.binding.NotificationListener +import org.opendaylight.yangtools.yang.binding.RpcImplementation +import org.opendaylight.yangtools.yang.binding.RpcService +import org.opendaylight.yangtools.yang.binding.annotations.QName +import org.opendaylight.yangtools.yang.binding.annotations.RoutingContext +import static org.opendaylight.yangtools.concepts.util.ClassLoaderUtils.* -import static extension org.opendaylight.controller.sal.binding.codegen.YangtoolsMappingHelper.* import static extension org.opendaylight.controller.sal.binding.codegen.RuntimeCodeSpecification.* -import java.util.HashSet -import static org.opendaylight.yangtools.concepts.util.ClassLoaderUtils.* -import org.opendaylight.controller.sal.binding.spi.NotificationInvokerFactory -import org.opendaylight.controller.sal.binding.spi.NotificationInvokerFactory.NotificationInvoker -import java.util.Set -import org.opendaylight.controller.sal.binding.codegen.RuntimeCodeHelper -import java.util.WeakHashMap -import org.opendaylight.yangtools.yang.binding.annotations.QName -import org.opendaylight.yangtools.yang.binding.DataContainer -import org.opendaylight.yangtools.yang.binding.RpcImplementation -import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils -import org.opendaylight.yangtools.sal.binding.generator.util.ClassLoaderUtils -import javassist.LoaderClassPath +import static extension org.opendaylight.controller.sal.binding.codegen.YangtoolsMappingHelper.* class RuntimeCodeGenerator implements org.opendaylight.controller.sal.binding.codegen.RuntimeCodeGenerator, NotificationInvokerFactory { @@ -275,16 +270,6 @@ package class RuntimeGeneratedInvoker implements NotificationInvoker { } } -@Data -package class RuntimeGeneratedInvokerPrototype { - - @Property - val Set> supportedNotifications; - - @Property - val Class> protoClass; -} - package class RpcServiceMetadata { @Property diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RuntimeGeneratedInvokerPrototype.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RuntimeGeneratedInvokerPrototype.java new file mode 100644 index 0000000000..f16074845d --- /dev/null +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RuntimeGeneratedInvokerPrototype.java @@ -0,0 +1,66 @@ +/** + * Copyright (c) 2013 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, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.sal.binding.codegen.impl; + +import java.util.Set; + +import org.opendaylight.controller.sal.binding.api.NotificationListener; +import org.opendaylight.yangtools.yang.binding.Notification; + +import com.google.common.base.Objects; +import com.google.common.base.Preconditions; + +final class RuntimeGeneratedInvokerPrototype { + private final Set> supportedNotifications; + private final Class> protoClass; + + public RuntimeGeneratedInvokerPrototype(final Set> supportedNotifications, final Class> protoClass) { + this.supportedNotifications = Preconditions.checkNotNull(supportedNotifications); + this.protoClass = Preconditions.checkNotNull(protoClass); + } + + public Set> getSupportedNotifications() { + return supportedNotifications; + } + + public Class> getProtoClass() { + return protoClass; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + supportedNotifications.hashCode(); + result = prime * result + protoClass.hashCode(); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof RuntimeGeneratedInvokerPrototype)) { + return false; + } + final RuntimeGeneratedInvokerPrototype other = (RuntimeGeneratedInvokerPrototype) obj; + if (!protoClass.equals(other.protoClass)) { + return false; + } + return supportedNotifications.equals(other.supportedNotifications); + } + + @Override + public String toString() { + return Objects.toStringHelper(this) + .add("protoClass", protoClass) + .add("supportedNotifications", supportedNotifications) + .toString(); + } +}