All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fgh90.comment-parser_2.11.0.1.0.source-code.CommentParser Maven / Gradle / Ivy

The newest version!
package io.github.qwefgh90.commentparser;

import io.github.qwefgh90.commentparser.Extractor;
import io.github.qwefgh90.commentparser.Extractor.ExtractResult;
import java.net.URI;
import java.util.Optional;
import java.util.stream.Collectors;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.io.InputStream;

import scala.Option;
import scala.collection.JavaConverters;
import scala.runtime.AbstractFunction1;

/**
 * CommentParser provides static methods for extracting comments.
 * 
Supported languages are JAVA, PY, C, CPP, C_HEADER, CPP_HEADER, SCALA, RUBY, GO, JS, HTML, BAT, SH, XML, TEXT, MD. *
None is provided for unsupported languages. */ public class CommentParser{ /** * CommentResult contains each comment in resource. * If a uri is not provided as parameter, a uri is a location of a temporary file. */ public static class CommentResult{ public final int startOffset; public final String comment; public final URI uri; public CommentResult(int startOffset, String comment, URI uri){ this.startOffset = startOffset; this.comment = comment; this.uri = uri; } } /** * Extract comments from a stream with a resource name. Default charset is utf-8. * @param is a source stream * @param resourceName a name about a resource name * @return a list of CommentResult */ public static Optional> extractComments(InputStream is, String resourceName){ return extractComments(is, resourceName, StandardCharsets.UTF_8); } /** * Extract comments from a stream with a resource name. * @param is a source stream * @param resourceName a name of a resource * @param charset a charset of a resource * @return a list of CommentResult */ public static Optional> extractComments(InputStream is, String resourceName, Charset charset) { Option> scalaReturn = Extractor.extractCommentsByStream(is, resourceName, charset); return Optional.ofNullable(scalaReturn.map(func1).getOrElse(null)); } /** * Extract comments from a uri with a resource name. * @param uri a source uri * @param resourceName a name of a resource * @return a list of CommentResult */ public static Optional> extractComments(URI uri, String resourceName) { return extractComments(uri, resourceName, StandardCharsets.UTF_8); } /** * Extract comments from a uri with a resource name. Default charset is utf-8. * @param uri a source uri * @param resourceName a name of a resource * @param charset a charset of a resource * @return a list of CommentResult */ public static Optional> extractComments(URI uri, String resourceName, Charset charset) { //StandardCharsets.UTF_8 Option> scalaReturn = Extractor.extractComments(uri, resourceName, charset); return Optional.ofNullable(scalaReturn.map(func1).getOrElse(null)); } private static final AbstractFunction1, java.util.List> func1 = new AbstractFunction1, java.util.List>(){ @Override public java.util.List apply(scala.collection.immutable.List list) { java.util.List javaList = JavaConverters.seqAsJavaListConverter(list).asJava(); return javaList.stream().map((ExtractResult result) -> { return new CommentResult(result.startOffset(), result.comment(), result.uri()); }).collect(Collectors.toList()); } }; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy