Skip to content

Commit 9f7b15d

Browse files
authored
Merge pull request #3 from javaquery/v1.0.4
feat: JSONObject, Console added
2 parents 35072e9 + d59d2aa commit 9f7b15d

File tree

12 files changed

+818
-177
lines changed

12 files changed

+818
-177
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,28 @@ Goal is to remove repeated boler plate utility code from your project. This libr
88

99
- <b>Collections</b>: Provides wide range of operation you perform on collection (List, Set and Map) interfaces like <code>nullOrEmpty(Collection)</code>, <code>nonNullNonEmpty(Collection)</code>, <code>batches(List<T> source, int batchSize)</code>, etc...
1010
- <b>Files</b>: Provides wide range of operation you perform on <code>java.io.File</code> like <code>createNewFile(T file)</code>, <code>writeToFile(T file, String data)</code>, <code>appendToFile(T file, String data, boolean appendNewLine)</code>, etc...
11+
- <b>Console</b>: Provides replacement of <code>System.out.println()</code> using .log() and <code>System.err.println()</code> using error().
12+
- <b>JFile</b>: Extends <code>java.io.File</code> and provide some extra function on file like <code>getExtension</code>, <code>read</code>, <code>write</code>.
13+
- <b>JSONObject</b>: Uses <code>org.json.JSONObject</code> and provides facility optValue at any path in JSONObject, like <code>items.item[0].batters.batter[2].available</code>
1114
- <b>Strings</b>: Provides wide range of operation you perform on <code>java.lang.String</code> like <code>nullOrEmpty(String str)</code>, <code>joinStrings(String separator, String... strings)</code>, <code>removeNotSupportedASCIICharacters(String str)</code>, etc...
1215
- <b>DatePattern</b>: Provides wide range of Date patterns commonly used worldwide like <code>yyyyMMddHHmmss</code>, <code>yyyy-MM-dd HH:mm:ss'Z'</code>, <code>yyyy-MM-dd'T'HH:mm:ss.SSSSSSS-HH:MM</code>, etc...
1316
- <b>DateRange</b>: Class can be used to store start-date and end-date.
1417
- <b>Dates</b>: Provides wide range of operation you perform on <code>java.util.Date</code> like <code>addInDate(Date date, int type, int amount)</code>, <code>parse(String date, DatePattern datePattern, TimeZone timeZone)</code>, <code>format(Date date, DatePattern datePattern, TimeZone timeZone)</code>, etc...
1518
- <b>Assert</b>: Provides wide range of operation for Assertions like <code>nonNull(Object object, Supplier<T> exceptionSupplier)</code>, <code>isTrue(boolean expression, Supplier<T> exceptionSupplier)</code>, <code>nonNullNonEmpty(Collection<?> collection, Supplier<T> exceptionSupplier)</code>, etc...
1619
- <b>Objects</b>: Provides wide range of operation on <code>java.lang.Object</code> like <code>isNull(Object obj)</code>, <code>nonNull(Object obj)</code>.
1720
- <b>Regex</b>: Provides wide range of operation using regular expression like <code>isNumber(String value)</code>, <code>isAlphaNumeric(String value)</code>, <code>isValidEmail(String value)</code>.
21+
- <b>UniqueIdGenerator</code>: Generate unique time based random alphanumeric string like Firebase keys.
1822

1923
# Maven
2024
```
2125
<dependency>
2226
<groupId>com.javaquery</groupId>
2327
<artifactId>util</artifactId>
24-
<version>1.0.1</version>
28+
<version>1.0.4</version>
2529
</dependency>
2630
```
2731

2832
# Gradle
2933
```
30-
implementation 'com.javaquery:util:1.0.1'
34+
implementation 'com.javaquery:util:1.0.4'
3135
```

build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ plugins {
55
}
66

77
group 'com.javaquery'
8-
version '1.0.3'
8+
version '1.0.4'
99

1010
repositories {
1111
mavenCentral()
1212
}
1313

1414
dependencies {
1515
implementation('org.slf4j:slf4j-api:+')
16+
implementation('org.json:json:+')
17+
1618
testImplementation('org.junit.jupiter:junit-jupiter:5.7.0')
1719
}
1820

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.javaquery.util.io;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import java.io.BufferedReader;
7+
import java.io.InputStreamReader;
8+
9+
/**
10+
* @author vicky.thakor
11+
* @since 1.4
12+
*/
13+
public final class Console {
14+
15+
private static final Logger LOGGER = LoggerFactory.getLogger(Console.class);
16+
17+
/**
18+
* Print object to output stream. Internally it uses <code>System.out.println(obj);</code>
19+
* @param object object to print on console
20+
*/
21+
public static void log(Object object){
22+
System.out.println(object);
23+
}
24+
25+
/**
26+
* Print object to output stream. Internally it uses <code>System.err.println(obj);</code>
27+
* @param object object to print on console
28+
*/
29+
public static void error(Object object){
30+
System.err.println(object);
31+
}
32+
33+
/**
34+
* Read <code>String</code> from console.
35+
* @return String input provided in console
36+
*/
37+
public static String read(){
38+
try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
39+
return reader.readLine();
40+
}catch (Exception e){
41+
LOGGER.error(e.getMessage(), e);
42+
}
43+
return null;
44+
}
45+
}

0 commit comments

Comments
 (0)