use of org.ballerinalang.docgen.model.Link in project ballerina by ballerina-lang.
the class HtmlDocTest method testPrimitiveConstructsWithFunctions.
@Test(description = "Testing primitive constructs.")
public void testPrimitiveConstructsWithFunctions() {
BLangPackage bLangPackage = createPackage("package ballerina.builtin;" + "public native function <blob b> data (string encoding) returns" + "(string);" + "public native function <blob b> sample () returns (string);");
List<Link> packages = new ArrayList<>();
packages.add(new Link(new PackageName((bLangPackage.symbol).pkgID.name.value, ""), "", false));
packages.add(new Link(new StaticCaption(BallerinaDocConstants.PRIMITIVE_TYPES_PAGE_NAME), BallerinaDocConstants.PRIMITIVE_TYPES_PAGE_HREF, false));
Page primitivesPage = Generator.generatePageForPrimitives(bLangPackage, packages);
Assert.assertEquals(primitivesPage.constructs.size(), 1);
Assert.assertEquals(primitivesPage.constructs.get(0).children.size(), 2);
}
use of org.ballerinalang.docgen.model.Link in project ballerina by ballerina-lang.
the class Generator method generatePage.
/**
* Generate the page when the bal package is passed.
* @param balPackage The current package that is being viewed.
* @param packages List of available packages.
* @return A page model for the current package.
*/
public static Page generatePage(BLangPackage balPackage, List<Link> packages) {
ArrayList<Documentable> documentables = new ArrayList<>();
String currentPackageName = (balPackage.symbol).pkgID.name.value;
// Check for structs in the package
if (balPackage.getStructs().size() > 0) {
for (BLangStruct struct : balPackage.getStructs()) {
if (struct.getFlags().contains(Flag.PUBLIC)) {
documentables.add(createDocForNode(struct));
}
}
}
// Check for functions in the package
if (balPackage.getFunctions().size() > 0) {
for (BLangFunction function : balPackage.getFunctions()) {
if (function.getFlags().contains(Flag.PUBLIC)) {
if (function.getReceiver() != null) {
if (documentables.size() > 0) {
for (Documentable parentDocumentable : documentables) {
TypeNode langType = function.getReceiver().getTypeNode();
String typeName = (langType instanceof BLangUserDefinedType ? ((BLangUserDefinedType) langType).typeName.value : langType.toString());
if (typeName.equals(parentDocumentable.name)) {
parentDocumentable.children.add(createDocForNode(function));
}
}
}
} else {
// If there's no receiver type i.e. no struct binding to the function
documentables.add(createDocForNode(function));
}
}
}
}
// Check for connectors in the package
for (BLangConnector connector : balPackage.getConnectors()) {
if (connector.getFlags().contains(Flag.PUBLIC)) {
documentables.add(createDocForNode(connector));
}
}
// Check for connectors in the package
for (EnumNode enumNode : balPackage.getEnums()) {
if (enumNode.getFlags().contains(Flag.PUBLIC)) {
documentables.add(createDocForNode(enumNode));
}
}
// Check for annotations
for (BLangAnnotation annotation : balPackage.getAnnotations()) {
if (annotation.getFlags().contains(Flag.PUBLIC)) {
documentables.add(createDocForNode(annotation));
}
}
// Check for global variables
for (BLangVariable var : balPackage.getGlobalVariables()) {
if (var.getFlags().contains(Flag.PUBLIC)) {
documentables.add(createDocForNode(var));
}
}
// Create the links to select which page or package is active
List<Link> links = new ArrayList<>();
PackageName packageNameHeading = null;
for (Link pkgLink : packages) {
if (pkgLink.caption.value.equals(currentPackageName)) {
packageNameHeading = (PackageName) pkgLink.caption;
links.add(new Link(pkgLink.caption, pkgLink.href, true));
} else {
links.add(new Link(pkgLink.caption, pkgLink.href, false));
}
}
return new Page(packageNameHeading, documentables, links);
}
use of org.ballerinalang.docgen.model.Link in project ballerina by ballerina-lang.
the class BallerinaPackageNameDocGenTest method singlePackageLevelPrefixTest.
@Test
public void singlePackageLevelPrefixTest() {
List<String> packageNames = new ArrayList<>();
packageNames.add("a");
packageNames.add("b");
packageNames.add("c");
packageNames.add("d");
List<Link> packageNameList = PackageName.convertList(packageNames);
for (Link pkgLink : packageNameList) {
Assert.assertEquals(((PackageName) pkgLink.caption).prefix, "", "Prefix found.");
}
Assert.assertEquals(((PackageName) packageNameList.get(0).caption).suffix, "a", "Invalid suffix name.");
Assert.assertEquals(((PackageName) packageNameList.get(1).caption).suffix, "b", "Invalid suffix name.");
Assert.assertEquals(((PackageName) packageNameList.get(2).caption).suffix, "c", "Invalid suffix name.");
Assert.assertEquals(((PackageName) packageNameList.get(3).caption).suffix, "d", "Invalid suffix name.");
}
use of org.ballerinalang.docgen.model.Link in project ballerina by ballerina-lang.
the class BallerinaPackageNameDocGenTest method multiplePackagePrefixReorderedTest.
@Test
public void multiplePackagePrefixReorderedTest() {
List<String> packageNames = new ArrayList<>();
packageNames.add("org.eclipse.core.expressions");
packageNames.add("org.eclipse.core.expressions.tests");
packageNames.add("org.eclipse.core.expressions.samples");
List<Link> packageNameList = PackageName.convertList(packageNames);
for (Link pkgLink : packageNameList) {
Assert.assertEquals(((PackageName) pkgLink.caption).prefix, "org.eclipse.core.", "Prefix was not org.eclipse.core for: " + pkgLink);
}
Assert.assertEquals(((PackageName) packageNameList.get(0).caption).suffix, "expressions", "Invalid suffix name.");
Assert.assertEquals(((PackageName) packageNameList.get(1).caption).suffix, "expressions.tests", "Invalid suffix name.");
Assert.assertEquals(((PackageName) packageNameList.get(2).caption).suffix, "expressions.samples", "Invalid suffix name.");
}
use of org.ballerinalang.docgen.model.Link in project ballerina by ballerina-lang.
the class BallerinaPackageNameDocGenTest method multipleCommonPackagePrefixTest.
@Test
public void multipleCommonPackagePrefixTest() {
List<String> packageNames = new ArrayList<>();
packageNames.add("org.eclipse.core.expressions.tests");
packageNames.add("org.eclipse.core.expressions.samples");
packageNames.add("org.eclipse.core.expressions.client");
List<Link> packageNameList = PackageName.convertList(packageNames);
for (Link pkgLink : packageNameList) {
Assert.assertEquals(((PackageName) pkgLink.caption).prefix, "org.eclipse.core.expressions.", "Prefix was not org.eclipse.core.expressions for: " + pkgLink);
}
Assert.assertEquals(((PackageName) packageNameList.get(0).caption).suffix, "tests", "Invalid suffix name.");
Assert.assertEquals(((PackageName) packageNameList.get(1).caption).suffix, "samples", "Invalid suffix name.");
Assert.assertEquals(((PackageName) packageNameList.get(2).caption).suffix, "client", "Invalid suffix name.");
}
Aggregations