Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fix cutoff snippets & incorrect exceptions #82

Merged
merged 2 commits into from
Nov 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,7 @@ <T extends Element> void populateItemFields(MetadataFileItem item, BaseLookup<T>
item.setNameWithType(lookup.extractNameWithType(element));
item.setFullName(lookup.extractFullName(element));
item.setType(lookup.extractType(element));
String javatype = lookup.extractJavaType(element,name);
item.setJavaType(javatype);
item.setJavaType(lookup.extractJavaType(element));
item.setSummary(lookup.extractSummary(element));
item.setContent(lookup.extractContent(element));
}
Expand Down Expand Up @@ -339,7 +338,7 @@ MetadataFileItem buildMetadataFileItem(Element element) {
setNameWithType(classItemsLookup.extractNameWithType(element));
setFullName(classItemsLookup.extractFullName(element));
setType(classItemsLookup.extractType(element));
setJavaType(classItemsLookup.extractJavaType(element, name));
setJavaType(classItemsLookup.extractJavaType(element));
setPackageName(classItemsLookup.extractPackageName(element));
setSummary(classItemsLookup.extractSummary(element));
}};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,17 +119,7 @@ public String extractType(T key) {
return resolve(key).getType();
}

public String extractJavaType(T element, String name) {
if (element.getKind().name().equals(ElementKind.CLASS.name()) && name.contains("Exception")){
return "exception";
}
String javatype = element.getKind().name().toLowerCase().replaceAll("_","");

if (javatype.equals("package") || javatype.equals("overview") || javatype.equals("annotationtype")){
return javatype;
}
return null;
}
public String extractJavaType(T element) {return null;}

public String extractContent(T key) {
return resolve(key).getContent();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ protected ExtendedMetadataFileItem buildMetadataFileItem(Element element) {
setHref(classQName + ".yml");
setName(elementQName);
setType(determineType(element));
setJavaType(extractJavaType(element, elementQName));
setPackageName(packageName);
setSummary(determineComment(element));
}};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ protected ExtendedMetadataFileItem buildMetadataFileItem(TypeElement classElemen
result.setNameWithType(classSNameWithGenericsSupport);
result.setFullName(classQNameWithGenericsSupport);
result.setType(determineType(classElement));
result.setJavaType(extractJavaType(classElement, classSNameWithGenericsSupport));
result.setPackageName(packageName);
result.setSummary(determineComment(classElement));
result.setSuperclass(determineNestedSuperclass(classElement, result, inheritedMethods));
result.setTypeParameters(determineTypeParameters(classElement));
result.setInheritedMethods(determineInheritedMembers(inheritedMethods));
result.setJavaType(extractJavaType(classElement));
populateContent(classElement, classSNameWithGenericsSupport, result);
result.setTocName(classQName.replace(packageName.concat("."), ""));
return result;
Expand Down Expand Up @@ -220,4 +220,17 @@ List<String> determineInheritedMembers(List<ExtendedMetadataFileItem> inheritedM
}
return new ArrayList<>();
}

public String extractJavaType(TypeElement element) {
String superClass = determineSuperclass(element);
if (superClass != null && superClass.contains("Exception")) {
return "exception";
}

String javatype = element.getKind().name().toLowerCase().replaceAll("_","");
if (javatype.equals("annotationtype")){
return javatype;
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@

import com.microsoft.lookup.model.ExtendedMetadataFileItem;
import com.microsoft.model.Status;
import com.sun.source.doctree.DeprecatedTree;
import com.sun.source.doctree.DocTree;
import jdk.javadoc.doclet.DocletEnvironment;

import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;

public class PackageLookup extends BaseLookup<PackageElement> {

Expand All @@ -26,7 +25,7 @@ protected ExtendedMetadataFileItem buildMetadataFileItem(PackageElement packageE
result.setNameWithType(qName);
result.setFullName(qName);
result.setType(determineType(packageElement));
result.setJavaType(extractJavaType(packageElement, qName));
result.setJavaType(extractJavaType(packageElement));
result.setSummary(determineComment(packageElement));
result.setContent(determinePackageContent(packageElement));
return result;
Expand All @@ -45,4 +44,12 @@ public String extractStatus(String name) {
String determinePackageContent(PackageElement packageElement) {
return "package " + packageElement.getQualifiedName();
}

public String extractJavaType(PackageElement element) {
String javatype = element.getKind().name().toLowerCase().replaceAll("_","");
if (javatype.equals("package")){
return javatype;
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public static String cleanupHtml(String text) {
}
return text.replaceAll("<pre>([^<]+)</pre>","$1")
.replaceAll("<pre><code>", "<pre class=\"prettyprint lang-java\"><code>")
.replaceAll("<([A-Z][a-z]+||)>", "&lt;$1&gt;")
.replaceAll("`([^`]+)`", "<code>$1</code>")
.replaceAll("\\[([^]]+)]\\(([^)]+)\\)", "<a href=\"$2\">$1</a>")
.replaceAll("\\[([^]]+)]\\[([^]]+)\\]", "<xref uid=\"$2\" data-throw-if-not-resolved=\"false\">$1</xref>")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,29 +222,6 @@ public void testExtractMethods() {
assertEquals("Wrong references", baseLookup.extractReferences(element), lastBuiltItem.getReferences());
}

@Test
public void testExtractJavaType() {
String name = "com.microsoft.samples.google.ValidationException";
when(typeElement.getKind()).thenReturn(ElementKind.CLASS);
assertEquals("Wrong javaType", baseLookup.extractJavaType(typeElement, name), "exception");

name = "com.microsoft.samples.google.BetaApi";
when(typeElement.getKind()).thenReturn(ElementKind.ANNOTATION_TYPE);
assertEquals("Wrong javaType", baseLookup.extractJavaType(typeElement, name), "annotationtype");

name = "com.microsoft.samples.google";
when(typeElement.getKind()).thenReturn(ElementKind.PACKAGE);
assertEquals("Wrong javaType", baseLookup.extractJavaType(typeElement, name), "package");

name = "com.microsoft.samples.google.SpeechClient";
when(typeElement.getKind()).thenReturn(ElementKind.CLASS);
assertEquals("Wrong javaType", baseLookup.extractJavaType(typeElement, name), null);

name = "com.microsoft.samples.google.ValidationException.Supplier";
when(typeElement.getKind()).thenReturn(ElementKind.INTERFACE);
assertEquals("Wrong javaType", baseLookup.extractJavaType(typeElement, name), null);
}

private ExtendedMetadataFileItem buildExtendedMetadataFileItem(Element element) {
ExtendedMetadataFileItem result = new ExtendedMetadataFileItem(String.valueOf(element));
result.setPackageName("Some package name");
Expand Down Expand Up @@ -272,4 +249,9 @@ private ExtendedMetadataFileItem buildExtendedMetadataFileItem(Element element)
result.addReferences(Set.of(new MetadataFileItem("ref uid")));
return result;
}

@Test
public void testExtractJavaType() {
assertEquals("Wrong javaType", baseLookup.extractJavaType(typeElement), null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;

import javax.lang.model.element.ElementKind;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.Elements;
import java.util.Arrays;
import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.*;
Expand All @@ -39,6 +40,7 @@ public class ClassLookupTest {
private DocCommentTree docCommentTree;
private DeprecatedTree deprecatedTree;
private TextTree textTree;
private TypeMirror typeMirror;

@Before
public void setup() {
Expand All @@ -50,6 +52,7 @@ public void setup() {
docCommentTree = Mockito.mock(DocCommentTree.class);
deprecatedTree = Mockito.mock(DeprecatedTree.class);
textTree = Mockito.mock(TextTree.class);
typeMirror = Mockito.mock(TypeMirror.class);
}

@Test
Expand Down Expand Up @@ -237,4 +240,19 @@ public void extractStatusNotDeprecated() {
verify(docCommentTree).getBlockTags();
assertEquals("Wrong description", result, null);
}

@Test
public void testExtractJavaType() {
TypeElement typeElement = elements.getTypeElement("com.microsoft.samples.google.ValidationException");
assertEquals("Wrong javaType", classLookup.extractJavaType(typeElement), "exception");

typeElement = elements.getTypeElement("com.microsoft.samples.google.RecognitionAudio");
assertEquals("Wrong javaType", classLookup.extractJavaType(typeElement), null);

typeElement = elements.getTypeElement("com.microsoft.samples.google.BetaApi");
assertEquals("Wrong javaType", classLookup.extractJavaType(typeElement), "annotationtype");

typeElement = elements.getTypeElement("com.microsoft.samples.IPartner");
assertEquals("Wrong javaType", classLookup.extractJavaType(typeElement), null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.mockito.junit.MockitoJUnitRunner;

import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.util.Elements;

import static org.junit.Assert.assertEquals;
Expand Down Expand Up @@ -52,4 +53,9 @@ public void extractPackageStatus() {
assertEquals("Wrong result", resultB, Status.BETA.toString());
}

@Test
public void testExtractJavaType() {
PackageElement packageElement = elements.getPackageElement("com.microsoft.samples.google.v1beta");
assertEquals("Wrong javaType", packageLookup.extractJavaType(packageElement), "package");
}
}
Loading