X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-jmx-generator-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2Fplugin%2Fftl%2Fmodel%2FAnnotation.java;h=ae5f947d2d7bab78e4d19978216686866702e9c7;hp=7cf241725d78674cd6f7ca9e16aa3cebcc0f7be4;hb=69011f0833c2d383536c2ac61f2b0edc83d119e9;hpb=576aa6018e48dfca8f223b7ac929139a32135201 diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java index 7cf241725d..ae5f947d2d 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java @@ -7,18 +7,20 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model; +import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; - +import java.util.Map; +import java.util.Map.Entry; import org.opendaylight.controller.config.api.annotations.Description; import org.opendaylight.controller.config.api.annotations.RequireInterface; import org.opendaylight.controller.config.api.annotations.ServiceInterfaceAnnotation; -import org.opendaylight.yangtools.yang.binding.annotations.ModuleQName; import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; - -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; +import org.opendaylight.yangtools.yang.binding.annotations.ModuleQName; +import org.opendaylight.yangtools.yang.common.QName; public class Annotation { final String name; @@ -37,6 +39,14 @@ public class Annotation { return params; } + public static Annotation createFromMap(Class annotationClass, Map parameters) { + List parameterList = new ArrayList<>(); + for(Entry entry: parameters.entrySet()) { + parameterList.add(new Parameter(entry.getKey(), entry.getValue())); + } + return new Annotation(annotationClass.getCanonicalName(), parameterList); + } + public static Annotation createDescriptionAnnotation(String description) { Preconditions.checkNotNull(description, "Cannot create annotation from null description"); @@ -44,6 +54,14 @@ public class Annotation { Lists.newArrayList(new Parameter("value", q(description)))); } + public static Annotation createModuleQNameANnotation(QName qName) { + Map parameters = new HashMap<>(); + parameters.put("namespace", q(qName.getNamespace().toString())); + parameters.put("revision", q(qName.getFormattedRevision())); + parameters.put("name", q(qName.getLocalName())); + return Annotation.createFromMap(ModuleQName.class, parameters); + } + public static Collection createSieAnnotations(ServiceInterfaceEntry sie){ String exportedClassName = sie.getExportedOsgiClassName(); @@ -85,7 +103,7 @@ public class Annotation { private static final String quote = "\""; - private static String q(String nullableDescription) { + public static String q(String nullableDescription) { return nullableDescription == null ? null : quote + nullableDescription + quote; } @@ -107,4 +125,8 @@ public class Annotation { } } + @Override + public String toString() { + return AnnotationSerializer.toString(this); + } }