Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,28 @@ Goal is to remove repeated boler plate utility code from your project. This libr

- <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...
- <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...
- <b>Console</b>: Provides replacement of <code>System.out.println()</code> using .log() and <code>System.err.println()</code> using error().
- <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>.
- <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>
- <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...
- <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...
- <b>DateRange</b>: Class can be used to store start-date and end-date.
- <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...
- <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...
- <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>.
- <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>.
- <b>UniqueIdGenerator</code>: Generate unique time based random alphanumeric string like Firebase keys.

# Maven
```
<dependency>
<groupId>com.javaquery</groupId>
<artifactId>util</artifactId>
<version>1.0.1</version>
<version>1.0.4</version>
</dependency>
```

# Gradle
```
implementation 'com.javaquery:util:1.0.1'
implementation 'com.javaquery:util:1.0.4'
```
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@ plugins {
}

group 'com.javaquery'
version '1.0.3'
version '1.0.4'

repositories {
mavenCentral()
}

dependencies {
implementation('org.slf4j:slf4j-api:+')
implementation('org.json:json:+')

testImplementation('org.junit.jupiter:junit-jupiter:5.7.0')
}

Expand Down
45 changes: 45 additions & 0 deletions src/main/java/com/javaquery/util/io/Console.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.javaquery.util.io;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
* @author vicky.thakor
* @since 1.4
*/
public final class Console {

private static final Logger LOGGER = LoggerFactory.getLogger(Console.class);

/**
* Print object to output stream. Internally it uses <code>System.out.println(obj);</code>
* @param object object to print on console
*/
public static void log(Object object){
System.out.println(object);
}

/**
* Print object to output stream. Internally it uses <code>System.err.println(obj);</code>
* @param object object to print on console
*/
public static void error(Object object){
System.err.println(object);
}

/**
* Read <code>String</code> from console.
* @return String input provided in console
*/
public static String read(){
try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
return reader.readLine();
}catch (Exception e){
LOGGER.error(e.getMessage(), e);
}
return null;
}
}
Loading