[java] Move inner classes to package level

This commit is contained in:
Wilson Lin 2020-08-26 13:15:32 +10:00
parent a2c9f1a5d8
commit a1df68e213
5 changed files with 47 additions and 40 deletions

View File

@ -80,6 +80,9 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<source>${java.version}</source>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>

View File

@ -0,0 +1,28 @@
package in.wilsonl.minifyhtml;
/**
* Class representing minification configuration.
*/
public class Configuration {
private final boolean minifyJs;
public Configuration(boolean minifyJs) {
this.minifyJs = minifyJs;
}
/**
* Builder to help create configuration.
*/
public static class Builder {
private boolean minifyJs = false;
public Builder setMinifyJs(boolean minifyJs) {
this.minifyJs = minifyJs;
return this;
}
public Configuration build() {
return new Configuration(this.minifyJs);
}
}
}

View File

@ -53,7 +53,7 @@ public class MinifyHtml {
* If the code fails to be minified, a {@link SyntaxException} will be thrown with a descriptive English message and position in code where the error occurred.
*
* @param code {@link ByteBuffer} containing HTML code to minify
* @param cfg {@link Configuration} minification settings to use
* @param cfg {@link Configuration} minification settings to use
* @return length of the written minified code in the {@link ByteBuffer}
*/
public static native int minifyInPlace(ByteBuffer code, Configuration cfg);
@ -64,44 +64,8 @@ public class MinifyHtml {
* If the code fails to be minified, a {@link SyntaxException} will be thrown with a descriptive English message and position in code where the error occurred.
*
* @param code HTML code to minify
* @param cfg {@link Configuration} minification settings to use
* @param cfg {@link Configuration} minification settings to use
* @return minified HTML code
*/
public static native String minify(String code, Configuration cfg);
/**
* Basic exception class representing minification errors.
*/
public static class SyntaxException extends RuntimeException {
private SyntaxException(String message) {
super(message);
}
}
/**
* Class representing minification configuration.
*/
public static class Configuration {
private final boolean minifyJs;
public Configuration(boolean minifyJs) {
this.minifyJs = minifyJs;
}
/**
* Builder to help create configuration.
*/
public static class Builder {
private boolean minifyJs = false;
public Builder setMinifyJs(boolean minifyJs) {
this.minifyJs = minifyJs;
return this;
}
public Configuration build() {
return new Configuration(this.minifyJs);
}
}
}
}

View File

@ -0,0 +1,10 @@
package in.wilsonl.minifyhtml;
/**
* Basic exception class representing minification errors.
*/
public class SyntaxException extends RuntimeException {
private SyntaxException(String message) {
super(message);
}
}

View File

@ -4,6 +4,8 @@ use jni::objects::{JByteBuffer, JClass, JObject, JString};
use jni::sys::{jint, jstring};
use std::str::from_utf8_unchecked;
const SYNTAX_EXCEPTION_CLASS: &str = "in/wilsonl/minifyhtml/SyntaxException";
fn build_cfg(
env: &JNIEnv,
obj: &JObject,
@ -33,7 +35,7 @@ pub extern "system" fn Java_in_wilsonl_minifyhtml_MinifyHtml_minifyInPlace(
Ok(out_len) => out_len,
Err(Error { error_type, position }) => {
env.throw_new(
"in/wilsonl/minifyhtml/MinifyHtml$SyntaxException",
SYNTAX_EXCEPTION_CLASS,
format!("{} [Character {}]", error_type.message(), position),
).unwrap();
0
@ -56,7 +58,7 @@ pub extern "system" fn Java_in_wilsonl_minifyhtml_MinifyHtml_minify(
Ok(out_len) => env.new_string(unsafe { from_utf8_unchecked(&code[0..out_len]) }).unwrap().into_inner(),
Err(Error { error_type, position }) => {
env.throw_new(
"in/wilsonl/minifyhtml/MinifyHtml$SyntaxException",
SYNTAX_EXCEPTION_CLASS,
format!("{} [Character {}]", error_type.message(), position),
).unwrap();
JObject::null().into_inner()