Search in sources :

Example 1 with AnnotationDoc

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");
}
Also used : AnnotationDoc(org.ballerinalang.docgen.model.AnnotationDoc) BLangPackage(org.wso2.ballerinalang.compiler.tree.BLangPackage) Test(org.testng.annotations.Test)

Example 2 with AnnotationDoc

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);
}
Also used : AnnotationDoc(org.ballerinalang.docgen.model.AnnotationDoc) BLangVariable(org.wso2.ballerinalang.compiler.tree.BLangVariable) Variable(org.ballerinalang.docgen.model.Variable) ArrayList(java.util.ArrayList) BLangAnnotAttribute(org.wso2.ballerinalang.compiler.tree.BLangAnnotAttribute)

Aggregations

AnnotationDoc (org.ballerinalang.docgen.model.AnnotationDoc)2 ArrayList (java.util.ArrayList)1 Variable (org.ballerinalang.docgen.model.Variable)1 Test (org.testng.annotations.Test)1 BLangAnnotAttribute (org.wso2.ballerinalang.compiler.tree.BLangAnnotAttribute)1 BLangPackage (org.wso2.ballerinalang.compiler.tree.BLangPackage)1 BLangVariable (org.wso2.ballerinalang.compiler.tree.BLangVariable)1