From 0cdf53996fcdae746da426edb20fd08eb2859a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=81opusza=C5=84ski?= Date: Thu, 12 Oct 2023 11:05:08 +0200 Subject: [PATCH] clean code --- .../java/sjpapi/api}/CurlHelper.java | 12 ++---- .../java/sjpapi/api}/CurlReader.java | 43 ++++++++----------- .../java/sjpapi/api}/CurlValidator.java | 5 +-- src/{ => main/java/sjpapi/api}/SjpAPI.java | 3 ++ src/{ => main/java/sjpapi/api}/SjpHelper.java | 3 ++ .../java/sjpapi/api}/SjpValidator.java | 0 .../java/sjpapi/api}/SjpWrapper.java | 6 +-- .../java/sjpapi/api}/StringUtils.java | 7 ++- {test => src/test/java}/CurlReaderTest.java | 6 +-- .../test/java}/CurlValidatorTest.java | 1 + {test => src/test/java}/SjpValidatorTest.java | 3 +- 11 files changed, 43 insertions(+), 46 deletions(-) rename src/{ => main/java/sjpapi/api}/CurlHelper.java (78%) rename src/{ => main/java/sjpapi/api}/CurlReader.java (70%) rename src/{ => main/java/sjpapi/api}/CurlValidator.java (74%) rename src/{ => main/java/sjpapi/api}/SjpAPI.java (93%) rename src/{ => main/java/sjpapi/api}/SjpHelper.java (94%) rename src/{ => main/java/sjpapi/api}/SjpValidator.java (100%) rename src/{ => main/java/sjpapi/api}/SjpWrapper.java (93%) rename src/{ => main/java/sjpapi/api}/StringUtils.java (94%) rename {test => src/test/java}/CurlReaderTest.java (98%) rename {test => src/test/java}/CurlValidatorTest.java (97%) rename {test => src/test/java}/SjpValidatorTest.java (83%) diff --git a/src/CurlHelper.java b/src/main/java/sjpapi/api/CurlHelper.java similarity index 78% rename from src/CurlHelper.java rename to src/main/java/sjpapi/api/CurlHelper.java index 8c97b96..7278040 100644 --- a/src/CurlHelper.java +++ b/src/main/java/sjpapi/api/CurlHelper.java @@ -4,9 +4,11 @@ public class CurlHelper { - private final static CurlReader reader = new CurlReader(); - private final static CurlValidator validator = new CurlValidator(); + private static final CurlReader reader = new CurlReader(); + private static final CurlValidator validator = new CurlValidator(); + private CurlHelper() { + } public static String getOutputFromCurl(String word) throws IOException { @@ -25,10 +27,4 @@ public static String getOutputFromCurl(String word) throws IOException { private static String readCurlFromSJP(String word) throws IOException { return reader.getCurlOutput("https://sjp.pl/"+word); } - - - - - - } diff --git a/src/CurlReader.java b/src/main/java/sjpapi/api/CurlReader.java similarity index 70% rename from src/CurlReader.java rename to src/main/java/sjpapi/api/CurlReader.java index 608d9ec..ac6ed93 100644 --- a/src/CurlReader.java +++ b/src/main/java/sjpapi/api/CurlReader.java @@ -6,27 +6,25 @@ import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; +import java.util.logging.Logger; + +import static java.util.logging.Level.SEVERE; public class CurlReader { - private String readed = ""; + private String readResult = ""; + private static final Logger logger = Logger.getLogger(CurlReader.class.getName()); public String getCurlOutput(final String https) { - - Thread thread = new Thread(new Runnable() { - @Override - public void run() { - try { - try { - readed = CurlReader.this.read(https); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - - } catch (Exception e) { - e.printStackTrace(); - } + Thread thread = new Thread(() -> { + try { + readResult = read(https); + } catch (MalformedURLException e) { + logger.log(SEVERE, "MalformedURLException"); + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } }); thread.start(); @@ -34,8 +32,9 @@ public void run() { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); + Thread.currentThread().interrupt(); } - return readed; + return readResult; } @@ -57,12 +56,9 @@ private String read(String https) throws IOException { BufferedReader br; String response = curlOutput.toString(); - if ("404".equals(response)) - { + if ("404".equals(response)) { br = new BufferedReader(new InputStreamReader(urlConnection.getErrorStream())); - } - else - { + } else { br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); } @@ -72,13 +68,10 @@ private String read(String https) throws IOException { } br.close(); urlConnection.disconnect(); - } - catch(Exception e) { + } catch (Exception e) { curlOutput = new StringBuilder(); } return curlOutput.toString(); } - - } diff --git a/src/CurlValidator.java b/src/main/java/sjpapi/api/CurlValidator.java similarity index 74% rename from src/CurlValidator.java rename to src/main/java/sjpapi/api/CurlValidator.java index 89fbb49..e3a10dc 100644 --- a/src/CurlValidator.java +++ b/src/main/java/sjpapi/api/CurlValidator.java @@ -13,9 +13,6 @@ private Boolean isResponseOK( String curlOutput ) { } private Boolean isBodySection( String curlOutput ) { - if (curlOutput.contains("") && curlOutput.contains("")){ - return true; - } - return false; + return curlOutput.contains("") && curlOutput.contains(""); } } diff --git a/src/SjpAPI.java b/src/main/java/sjpapi/api/SjpAPI.java similarity index 93% rename from src/SjpAPI.java rename to src/main/java/sjpapi/api/SjpAPI.java index d88f0e7..28e9339 100644 --- a/src/SjpAPI.java +++ b/src/main/java/sjpapi/api/SjpAPI.java @@ -6,6 +6,9 @@ public class SjpAPI { + private SjpAPI() { + } + public static String getWord(String word) throws IOException, JSONException { String json; String wordWithoutSpecialChar; diff --git a/src/SjpHelper.java b/src/main/java/sjpapi/api/SjpHelper.java similarity index 94% rename from src/SjpHelper.java rename to src/main/java/sjpapi/api/SjpHelper.java index 363e615..3420a53 100644 --- a/src/SjpHelper.java +++ b/src/main/java/sjpapi/api/SjpHelper.java @@ -9,6 +9,9 @@ public class SjpHelper { private static final SjpValidator validator = new SjpValidator(); private static final SjpWrapper wrapper = new SjpWrapper(); + private SjpHelper() { + } + public static String translateFromCurlToJSON(String curl ) throws JSONException, UnsupportedEncodingException { String json = "EMPTY"; diff --git a/src/SjpValidator.java b/src/main/java/sjpapi/api/SjpValidator.java similarity index 100% rename from src/SjpValidator.java rename to src/main/java/sjpapi/api/SjpValidator.java diff --git a/src/SjpWrapper.java b/src/main/java/sjpapi/api/SjpWrapper.java similarity index 93% rename from src/SjpWrapper.java rename to src/main/java/sjpapi/api/SjpWrapper.java index a6656b4..62aae70 100644 --- a/src/SjpWrapper.java +++ b/src/main/java/sjpapi/api/SjpWrapper.java @@ -20,7 +20,7 @@ public String getWrapped (String curlOutput) throws JSONException, UnsupportedEn private List> regexForInfo (String curlOutput) { List> wrappedCurl = new ArrayList<>(); - if (isInDictionary(curlOutput)) { + if (Boolean.TRUE.equals(isInDictionary(curlOutput))) { final String regex = "]*>(.+?)<\\/h1>.]*>(.+?)<.+?(?=.*)href=\"\\/(.+?)\".+?znaczenie.+?]*>(.+?)<\\/p>"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); @@ -59,7 +59,7 @@ private String translateArrayToJSON(List> wordsFromCurlOutput ) thr jsonObject.put("name",wordsFromCurlOutput.get(0).get(0)); jsonObject.put("count",wordsFromCurlOutput.size()); for( int i = 0; i < wordsFromCurlOutput.size(); i++){ - jsonObject.put("canBeUsed"+"["+i+"]",TranslateCanBeUsed(wordsFromCurlOutput.get(i).get(1))); + jsonObject.put("canBeUsed"+"["+i+"]", translateCanBeUsed(wordsFromCurlOutput.get(i).get(1))); jsonObject.put("variant"+"["+i+"]", StringUtils.htmlToPolishLetter(wordsFromCurlOutput.get(i).get(2))); jsonObject.put("meaning"+"["+i+"]", wrappedDescription(wordsFromCurlOutput.get(i).get(3))); } @@ -68,7 +68,7 @@ private String translateArrayToJSON(List> wordsFromCurlOutput ) thr return allWrappedWord; } - private Boolean TranslateCanBeUsed(String oneParamOfWordFromCurl){ + private Boolean translateCanBeUsed(String oneParamOfWordFromCurl){ return !oneParamOfWordFromCurl.startsWith("niedopuszczalne"); } diff --git a/src/StringUtils.java b/src/main/java/sjpapi/api/StringUtils.java similarity index 94% rename from src/StringUtils.java rename to src/main/java/sjpapi/api/StringUtils.java index 4f1cb6f..c8b5b64 100644 --- a/src/StringUtils.java +++ b/src/main/java/sjpapi/api/StringUtils.java @@ -57,11 +57,14 @@ public class StringUtils { htmlEntities.put("€", "\u20a0"); } + private StringUtils() { + } // Function from // https://www.rgagnon.com/javadetails/java-0307.html public static String unescapeHTML(String source, int start) { - int startOfHtmlSpecialCharCombination, closeOfHtmlSpecialCharCombination; + int startOfHtmlSpecialCharCombination; + int closeOfHtmlSpecialCharCombination; startOfHtmlSpecialCharCombination = source.indexOf("&", start); if (startOfHtmlSpecialCharCombination > -1) { @@ -86,7 +89,7 @@ public static String htmlToPolishLetter(String htmlWithBadCoding) throws Unsuppo } public static boolean hasSpecyficHTMLTags(String text){ - String HTML_PATTERN = "]*>.+?<\\/a>|]*.+?<\\/span>|]*.+?<\\/p>"; + final String HTML_PATTERN = "]*>.+?<\\/a>|]*.+?<\\/span>|]*.+?<\\/p>"; Pattern pattern = Pattern.compile(HTML_PATTERN); Matcher matcher = pattern.matcher(text); return matcher.find(); diff --git a/test/CurlReaderTest.java b/src/test/java/CurlReaderTest.java similarity index 98% rename from test/CurlReaderTest.java rename to src/test/java/CurlReaderTest.java index c1419d9..69190df 100644 --- a/test/CurlReaderTest.java +++ b/src/test/java/CurlReaderTest.java @@ -1,16 +1,16 @@ package sjpapi.api; import junit.framework.TestCase; +import sjpapi.api.CurlReader; import java.io.IOException; -import java.net.MalformedURLException; public class CurlReaderTest extends TestCase { private CurlReader reader = new CurlReader(); - //If this test fails it is means sjp.pl changed something - // in the structure of the page, it is possible that + //If this test fails, it means sjp.pl changed something + // in the structure of the page; it is possible that // SjpAPI has stopped working. // If it still works, you can ignore this test. public void testIsSJPHaveSameSite() throws IOException { diff --git a/test/CurlValidatorTest.java b/src/test/java/CurlValidatorTest.java similarity index 97% rename from test/CurlValidatorTest.java rename to src/test/java/CurlValidatorTest.java index 37750a3..eb514cb 100644 --- a/test/CurlValidatorTest.java +++ b/src/test/java/CurlValidatorTest.java @@ -1,6 +1,7 @@ package sjpapi.api; import junit.framework.TestCase; +import sjpapi.api.CurlValidator; public class CurlValidatorTest extends TestCase { diff --git a/test/SjpValidatorTest.java b/src/test/java/SjpValidatorTest.java similarity index 83% rename from test/SjpValidatorTest.java rename to src/test/java/SjpValidatorTest.java index 5151e86..8d97758 100644 --- a/test/SjpValidatorTest.java +++ b/src/test/java/SjpValidatorTest.java @@ -1,10 +1,11 @@ package sjpapi.api; import junit.framework.TestCase; +import sjpapi.api.SjpValidator; public class SjpValidatorTest extends TestCase { - private SjpValidator validator = new SjpValidator(); + private final SjpValidator validator = new SjpValidator(); public void testIsCurlHaveH1Tag() {