Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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 @@ -672,15 +672,13 @@ public static ProjectDependenciesResult getProjectDependencies(List<Object> argu
return new ProjectDependenciesResult(ProjectDependenciesErrorReason.INVALID_URI, fileUri);
}

// Validate URI format
String parsedPath = null;
// Validate URI format using JDTUtils
try {
java.net.URI uri = new java.net.URI(fileUri);
parsedPath = uri.getPath();
if (parsedPath == null) {
return new ProjectDependenciesResult(ProjectDependenciesErrorReason.URI_PARSE_FAILED, parsedPath);
java.net.URI uri = JDTUtils.toURI(fileUri);
if (uri == null) {
return new ProjectDependenciesResult(ProjectDependenciesErrorReason.URI_PARSE_FAILED, fileUri);
}
} catch (java.net.URISyntaxException e) {
} catch (Exception e) {
return new ProjectDependenciesResult(ProjectDependenciesErrorReason.MALFORMED_URI, fileUri);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IPackageFragmentRoot;
Expand Down Expand Up @@ -232,7 +233,7 @@ public static void resolveSingleType(IJavaProject javaProject, String typeName,
* @return true if the type is from a common JDK package
*/
private static boolean isCommonJdkType(String typeName) {
if (typeName == null || typeName.isEmpty()) {
if (StringUtils.isBlank(typeName)) {
return false;
}

Expand Down Expand Up @@ -789,7 +790,7 @@ public static String generateClassDescription(org.eclipse.jdt.core.IType type, S
description.append("Signature: ").append(signature).append("\n\n");

// === 2. JavaDoc (inserted after signature) ===
if (isNotEmpty(javadoc)) {
if (StringUtils.isNotBlank(javadoc)) {
description.append("JavaDoc:\n").append(javadoc).append("\n\n");
}

Expand Down Expand Up @@ -897,7 +898,7 @@ private static String extractRelevantJavaDocContent(org.eclipse.jdt.core.IType t
}
rawJavadoc = type.getCompilationUnit().getSource().substring(javadocRange.getOffset(), javadocRange.getOffset() + javadocRange.getLength());

if (!isNotEmpty(rawJavadoc)) {
if (StringUtils.isBlank(rawJavadoc)) {
return "";
}

Expand All @@ -911,7 +912,7 @@ private static String extractRelevantJavaDocContent(org.eclipse.jdt.core.IType t

// === High Priority: Extract class description text (first paragraph) ===
String description = extractClassDescription(cleanedJavadoc);
if (isNotEmpty(description)) {
if (StringUtils.isNotBlank(description)) {
result.append("Description:\n").append(description).append("\n\n");
}

Expand All @@ -920,7 +921,7 @@ private static String extractRelevantJavaDocContent(org.eclipse.jdt.core.IType t
Matcher markdownMatcher = MARKDOWN_CODE_PATTERN.matcher(rawJavadoc);
while (markdownMatcher.find()) {
String code = markdownMatcher.group(1).trim();
if (isNotEmpty(code) && seenCodeSnippets.add(code)) {
if (StringUtils.isNotBlank(code) && seenCodeSnippets.add(code)) {
result.append("```java\n").append(code).append("\n```\n\n");
}
}
Expand All @@ -930,7 +931,7 @@ private static String extractRelevantJavaDocContent(org.eclipse.jdt.core.IType t
Matcher preMatcher = HTML_PRE_PATTERN.matcher(cleanedJavadoc);
while (preMatcher.find()) {
String code = preMatcher.group(1).replaceAll("(?i)<code[^>]*>", "").replaceAll("(?i)</code>", "").trim();
if (isNotEmpty(code) && seenCodeSnippets.add(code)) {
if (StringUtils.isNotBlank(code) && seenCodeSnippets.add(code)) {
result.append("```java\n").append(code).append("\n```\n\n");
}
}
Expand All @@ -940,7 +941,7 @@ private static String extractRelevantJavaDocContent(org.eclipse.jdt.core.IType t
while (codeMatcher.find()) {
String code = codeMatcher.group(1).trim();
// Use HashSet for O(1) duplicate checking
if (isNotEmpty(code) && seenCodeSnippets.add(code)) {
if (StringUtils.isNotBlank(code) && seenCodeSnippets.add(code)) {
result.append("```java\n").append(code).append("\n```\n\n");
}
}
Expand All @@ -958,7 +959,7 @@ private static String extractRelevantJavaDocContent(org.eclipse.jdt.core.IType t
* Returns the first paragraph of descriptive text, limited to reasonable length.
*/
private static String extractClassDescription(String cleanedJavadoc) {
if (cleanedJavadoc == null || cleanedJavadoc.isEmpty()) {
if (StringUtils.isBlank(cleanedJavadoc)) {
return "";
}

Expand Down Expand Up @@ -989,7 +990,7 @@ private static String extractClassDescription(String cleanedJavadoc) {
* Clean up raw JavaDoc comment by removing comment markers and asterisks
*/
private static String cleanJavadocComment(String rawJavadoc) {
if (rawJavadoc == null || rawJavadoc.isEmpty()) {
if (StringUtils.isBlank(rawJavadoc)) {
return "";
}

Expand Down Expand Up @@ -1029,7 +1030,7 @@ private static String cleanJavadocComment(String rawJavadoc) {
* Convert HTML entities to their plain text equivalents
*/
private static String convertHtmlEntities(String text) {
if (text == null || text.isEmpty()) {
if (StringUtils.isBlank(text)) {
Comment thread
wenytang-ms marked this conversation as resolved.
Outdated
return text;
}
return text.replace("&nbsp;", " ")
Expand All @@ -1048,7 +1049,7 @@ private static String convertHtmlEntities(String text) {
* Preserves line breaks for block-level tags like <p>, <br>, <div>.
*/
private static String removeHtmlTags(String text) {
if (text == null || text.isEmpty()) {
if (StringUtils.isBlank(text)) {
Comment thread
wenytang-ms marked this conversation as resolved.
Outdated
return text;
}

Expand Down Expand Up @@ -1080,7 +1081,7 @@ private static String extractMethodJavaDocSummary(IMethod method) {
String rawJavadoc = method.getCompilationUnit().getSource()
.substring(javadocRange.getOffset(), javadocRange.getOffset() + javadocRange.getLength());

if (!isNotEmpty(rawJavadoc)) {
if (StringUtils.isBlank(rawJavadoc)) {
return "";
}

Expand All @@ -1098,7 +1099,7 @@ private static String extractMethodJavaDocSummary(IMethod method) {
* Extract the main description part from JavaDoc (before @tags)
*/
private static String extractJavadocDescription(String cleanedJavadoc) {
if (cleanedJavadoc == null || cleanedJavadoc.isEmpty()) {
if (StringUtils.isBlank(cleanedJavadoc)) {
return "";
}

Expand Down Expand Up @@ -1131,7 +1132,7 @@ private static String extractJavadocDescription(String cleanedJavadoc) {
* Get the first sentence or limit the text to maxLength characters
*/
private static String getFirstSentenceOrLimit(String text, int maxLength) {
if (text == null || text.isEmpty()) {
if (StringUtils.isBlank(text)) {
return "";
}

Expand Down Expand Up @@ -1201,7 +1202,7 @@ private static String extractFieldJavaDocSummary(org.eclipse.jdt.core.IField fie
String rawJavadoc = field.getCompilationUnit().getSource()
.substring(javadocRange.getOffset(), javadocRange.getOffset() + javadocRange.getLength());

if (!isNotEmpty(rawJavadoc)) {
if (StringUtils.isBlank(rawJavadoc)) {
return "";
}

Expand Down Expand Up @@ -1439,7 +1440,7 @@ private static String generateMethodSignatureInternal(IMethod method, boolean si
// Add JavaDoc if requested
if (includeJavadoc) {
String javadocSummary = extractMethodJavaDocSummary(method);
if (javadocSummary != null && !javadocSummary.isEmpty()) {
if (StringUtils.isNotBlank(javadocSummary)) {
return "// " + javadocSummary + "\n " + sb.toString();
}
}
Expand Down Expand Up @@ -1494,7 +1495,7 @@ private static String generateFieldSignatureInternal(org.eclipse.jdt.core.IField
// Add JavaDoc if not simplified
if (!simplified) {
String javadocSummary = extractFieldJavaDocSummary(field);
if (javadocSummary != null && !javadocSummary.isEmpty()) {
if (StringUtils.isNotBlank(javadocSummary)) {
return "// " + javadocSummary + "\n " + sb.toString();
}
}
Expand All @@ -1505,10 +1506,4 @@ private static String generateFieldSignatureInternal(org.eclipse.jdt.core.IField
}
}

/**
* Utility method to check if a string is not empty or null
*/
private static boolean isNotEmpty(String value) {
return value != null && !value.isEmpty();
}
}
Loading