public static Collection<Annotation> createSieAnnotations(ServiceInterfaceEntry sie){
String exportedClassName = sie.getExportedOsgiClassName();
Preconditions.checkNotNull(sie.getQName(),
"Cannot create annotation from null qname");
Preconditions.checkNotNull(exportedClassName,
"Cannot create annotation from null exportedClassName");
List<Annotation> result = new ArrayList<>();
{
List<Parameter> params = Lists.newArrayList(new Parameter("value", q(sie.getQName().toString())));
params.add(new Parameter("osgiRegistrationType", exportedClassName + ".class"));
params.add(new Parameter("registerToOsgi", Boolean.toString(sie.isRegisterToOsgi())));
params.add(new Parameter("namespace", q(sie.getQName().getNamespace().toString())));
params.add(new Parameter("revision", q(sie.getQName().getFormattedRevision())));
params.add(new Parameter("localName", q(sie.getQName().getLocalName())));
Annotation sieAnnotation = new Annotation(ServiceInterfaceAnnotation.class.getCanonicalName(), params);
result.add(sieAnnotation);
}
{
List<Parameter> params = new ArrayList<>();
params.add(new Parameter("namespace", q(sie.getYangModuleQName().getNamespace().toString())));
params.add(new Parameter("revision", q(sie.getYangModuleQName().getFormattedRevision())));
params.add(new Parameter("name", q(sie.getYangModuleQName().getLocalName())));
Annotation moduleQNameAnnotation = new Annotation(ModuleQName.class.getCanonicalName(), params);
result.add(moduleQNameAnnotation);
}
return result;
}