use of org.ballerinalang.docgen.model.AnnotationDoc in project ballerina by ballerina-lang.
the class HtmlDocTest method testAnnotationPropertiesExtracted.
@Test(description = "Annotation properties should be available via construct", enabled = false)
public void testAnnotationPropertiesExtracted() throws Exception {
BLangPackage bLangPackage = createPackage("package x.y; " + "@Description {value: \"AnnotationDoc to upgrade connection from HTTP to WS in the " + "same base path\"}\n" + "@Field {value:\"upgradePath:Upgrade path for the WebSocket service from " + "HTTP to WS\"}\n" + "@Field {value:\"serviceName:Name of the WebSocket service where the HTTP service should " + " upgrade to\"}\n" + "public annotation webSocket attach service<> {\n" + " string upgradePath;\n" + " string serviceName;\n" + "}");
AnnotationDoc annotationDoc = Generator.createDocForNode(bLangPackage.getAnnotations().get(0));
Assert.assertEquals(annotationDoc.name, "webSocket", "Annotation name should be extracted");
Assert.assertEquals(annotationDoc.description, "AnnotationDoc to upgrade connection from HTTP to WS " + "in the same base path", "Description of the annotation should be extracted");
// Annotation Fields
Assert.assertEquals(annotationDoc.attributes.get(0).name, "upgradePath", "Annotation attribute name " + "should be extracted");
Assert.assertEquals(annotationDoc.attributes.get(0).dataType, "string", "Annotation attribute type " + "should be extracted");
Assert.assertEquals(annotationDoc.attributes.get(0).description, "Upgrade path for the WebSocket service " + "from HTTP to WS", "Description of the annotation attribute should be extracted");
}
use of org.ballerinalang.docgen.model.AnnotationDoc in project ballerina by ballerina-lang.
the class Generator method createDocForNode.
/**
* Create documentation for annotations.
* @param annotationNode ballerina annotation node.
* @return documentation for annotation.
*/
public static AnnotationDoc createDocForNode(BLangAnnotation annotationNode) {
String annotationName = annotationNode.getName().getValue();
List<Variable> attributes = new ArrayList<>();
// Iterate through the attributes of the annotation
if (annotationNode.getAttributes().size() > 0) {
for (BLangAnnotAttribute annotAttribute : annotationNode.getAttributes()) {
String dataType = getTypeName(annotAttribute.getTypeNode());
String desc = annotFieldAnnotation(annotationNode, annotAttribute);
Variable variable = new Variable(annotAttribute.getName().value, dataType, desc);
attributes.add(variable);
}
}
return new AnnotationDoc(annotationName, description(annotationNode), new ArrayList<>(), attributes);
}
Aggregations