*/
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;
return params;
}
+ public static Annotation createFromMap(Class<?> annotationClass, Map<String, String> parameters) {
+ List<Parameter> parameterList = new ArrayList<>();
+ for(Entry<String, String> 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");
Lists.newArrayList(new Parameter("value", q(description))));
}
+ public static Annotation createModuleQNameANnotation(QName qName) {
+ Map<String, String> 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<Annotation> createSieAnnotations(ServiceInterfaceEntry sie){
String exportedClassName = sie.getExportedOsgiClassName();
private static final String quote = "\"";
- private static String q(String nullableDescription) {
+ public static String q(String nullableDescription) {
return nullableDescription == null ? null : quote + nullableDescription
+ quote;
}
}
}
+ @Override
+ public String toString() {
+ return AnnotationSerializer.toString(this);
+ }
}