Subversion Repositories SmartDukaan

Rev

Rev 23568 | Rev 23780 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21543 ashik.ali 1
package com.spice.profitmandi.common.util;
2
 
21792 ashik.ali 3
import java.time.Instant;
21543 ashik.ali 4
import java.time.LocalDate;
21652 ashik.ali 5
import java.time.LocalDateTime;
21543 ashik.ali 6
import java.time.LocalTime;
21792 ashik.ali 7
import java.time.ZoneId;
22215 ashik.ali 8
import java.time.format.DateTimeFormatter;
21543 ashik.ali 9
import java.time.format.DateTimeParseException;
21570 ashik.ali 10
import java.util.ArrayList;
11
import java.util.List;
21543 ashik.ali 12
 
13
import javax.mail.internet.InternetAddress;
14
 
23568 govind 15
import org.apache.logging.log4j.Logger;
16
import org.apache.logging.log4j.LogManager;
21570 ashik.ali 17
 
18
import com.fasterxml.jackson.core.JsonProcessingException;
19
import com.fasterxml.jackson.databind.ObjectMapper;
22858 ashik.ali 20
import com.spice.profitmandi.common.enumuration.DateTimePattern;
21570 ashik.ali 21
 
21543 ashik.ali 22
public class StringUtils {
21570 ashik.ali 23
 
24
	private static ObjectMapper objectMapper = new ObjectMapper();
25
 
23568 govind 26
	private static final Logger LOGGER = LogManager.getLogger(StringUtils.class);
23188 ashik.ali 27
	private static final String DATE_PATTERN = "dd/MM/yyyy";
23602 amit.gupta 28
	private static final String GADGET_COP_DATE_PATTERN = "MM/dd/yyyy";
22895 amit.gupta 29
	private static final String DATE_PATTERN_HYPHENATED = "yyyy-MM-dd";
23201 ashik.ali 30
	private static final String DATE_TIME_PATTERN = "dd/MM/yyyy HH:mm:ss";
21543 ashik.ali 31
	private StringUtils(){
32
 
33
	}
22242 ashik.ali 34
	public static final LocalDate toDate(String dateString)throws DateTimeParseException{	
22215 ashik.ali 35
		LOGGER.info("Converting dateString [{}] with pattern[{}]", dateString, DATE_PATTERN);
23188 ashik.ali 36
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DATE_PATTERN);
37
		return LocalDate.parse(dateString, dateTimeFormatter);
21543 ashik.ali 38
	}
39
 
23602 amit.gupta 40
	public static final String toGadgetCopDateString(LocalDate ldt) {	
41
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(GADGET_COP_DATE_PATTERN);
42
		return dateTimeFormatter.format(ldt);
43
	}
44
 
22895 amit.gupta 45
	public static final LocalDate fromHypendatedDate(String dateString)throws DateTimeParseException{	
46
		LOGGER.info("Converting dateString [{}] with pattern[{}]", dateString, DATE_PATTERN_HYPHENATED);
23188 ashik.ali 47
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DATE_PATTERN_HYPHENATED);
48
		return LocalDate.parse(dateString, dateTimeFormatter);
22895 amit.gupta 49
	}
50
 
21543 ashik.ali 51
	public static final LocalTime toTime(String timeString) throws DateTimeParseException{
52
		return LocalTime.parse(timeString);
53
	}
21652 ashik.ali 54
 
21792 ashik.ali 55
	public static final LocalDateTime toDateTime(long epocTime){
56
		return Instant.ofEpochMilli(epocTime).atZone(ZoneId.systemDefault()).toLocalDateTime();
57
	}
58
 
22215 ashik.ali 59
	public static final String toString(LocalDate localDate){
60
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_PATTERN);
22858 ashik.ali 61
		String formattedDateTime = localDate.format(formatter);
22215 ashik.ali 62
		return formattedDateTime;
63
	}
64
 
23017 ashik.ali 65
	public static final String toString(LocalDateTime localDateTime){
66
		if(localDateTime == null){
67
			return null;
68
		}
69
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm:ss");
70
		return localDateTime.format(formatter);
71
	}
72
 
21652 ashik.ali 73
	public static final LocalDateTime toDateTime(String dateTimeString) throws DateTimeParseException{
22290 ashik.ali 74
		if(dateTimeString == null || dateTimeString.equals("0") || dateTimeString.isEmpty()){
21655 ashik.ali 75
			return null;
76
		}
23201 ashik.ali 77
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DATE_TIME_PATTERN);
78
		return LocalDateTime.parse(dateTimeString, dateTimeFormatter);
21652 ashik.ali 79
	}
22858 ashik.ali 80
 
81
	public static final LocalDateTime toDateTime(String dateTimeString, DateTimePattern dateTimePattern) throws DateTimeParseException{
82
		if(dateTimeString == null || dateTimeString.equals("0") || dateTimeString.isEmpty()){
83
			return null;
84
		}
85
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateTimePattern.getValue());
86
		return LocalDateTime.parse(dateTimeString, formatter);
87
	}
21543 ashik.ali 88
 
89
	public static boolean isValidMobile(String mobile){
90
		try{
91
			Long.valueOf(mobile);
92
		}
93
		catch(Exception e){
94
			return false;
95
		}
96
 
97
		if (mobile.startsWith("0")){
98
			return false;
99
		}
100
		if (mobile.length()!=10){
101
			return false;
102
		}
103
		return true;
104
	}
105
 
106
	public static boolean isValidEmailAddress(String email) {
107
		boolean result = true;
108
		try {
109
			InternetAddress emailAddr = new InternetAddress(email);
110
			emailAddr.validate();
111
		} catch (Exception ex) {
112
			result = false;
113
		}
114
		return result;
115
	}
21570 ashik.ali 116
 
23369 ashik.ali 117
	public static boolean isValidGstNumber(String gstNumber) {
23370 ashik.ali 118
		if(gstNumber == null || gstNumber.isEmpty() || gstNumber.length() == 15) {
23369 ashik.ali 119
			return true;
120
		}
121
		return false;
122
	}
123
 
21570 ashik.ali 124
	public static List<String> getDuplicateElements(List<String> elements){
125
		List<String> duplicates = new ArrayList<>();
126
		for(int i = 0; i < elements.size(); i++){
127
			for(int j = i + 1; j < elements.size(); j++){
128
				if(elements.get(i).equals(elements.get(j))){
129
					duplicates.add(elements.get(i));
130
				}
131
			}
132
		}
133
		return duplicates;
134
	}
135
 
136
	public static String toString(Object object) throws Exception{
137
		try {
138
			return objectMapper.writeValueAsString(object);
139
		} catch (JsonProcessingException e) {
140
			LOGGER.error("Error occured while converting object to json", e);
141
			throw e;
142
		}
143
	}
21756 ashik.ali 144
	public static boolean isValidPinCode(String pinCode){
145
		if(pinCode == null || pinCode.isEmpty()){
146
			return false;
147
		}
148
		if(pinCode.length() != 6){
149
			return false;
150
		}
151
		if(pinCode.startsWith("00") || pinCode.startsWith("01") || pinCode.startsWith("10")){
152
			return false;
153
		}
154
		return true;
155
 
156
	}
21792 ashik.ali 157
 
22215 ashik.ali 158
	public static String generatePolicyNumber(String prefix, int sequence){
159
		String policyNumber = String.format(prefix + "%06d", sequence);
23017 ashik.ali 160
		LOGGER.info("Generated Policy Number [{}]", policyNumber);
22215 ashik.ali 161
		return policyNumber;
162
	}
22470 ashik.ali 163
 
164
	public static String generateFofoStoreSequence(String prefix, int sequence){
165
		String fofoStoreSequenceNumber = String.format(prefix + "%03d", sequence);
23017 ashik.ali 166
		LOGGER.info("Generated Fofo Store Sequence Number [{}]", fofoStoreSequenceNumber);
22470 ashik.ali 167
		return fofoStoreSequenceNumber;
168
	}
23017 ashik.ali 169
 
23502 ashik.ali 170
	public static String generateRechageRequestId(String prefix, int sequence){
171
		String oxigenRechargeRequestId = String.format(prefix + "%06d", sequence);
172
		LOGGER.info("Generated Recharge Request Id [{}]", oxigenRechargeRequestId);
23017 ashik.ali 173
		return oxigenRechargeRequestId;
174
	}
175
 
176
	public static String toOxigenRechargeRequestDate(LocalDateTime now){
177
		StringBuilder oxigenRechargeRequestDate = new StringBuilder();
178
		oxigenRechargeRequestDate.append(now.getYear());
179
		oxigenRechargeRequestDate.append(now.getMonthValue());
180
		oxigenRechargeRequestDate.append(now.getDayOfMonth());
181
		oxigenRechargeRequestDate.append(now.getHour());
182
		oxigenRechargeRequestDate.append(now.getMinute());
183
		oxigenRechargeRequestDate.append(now.getSecond());
184
		return oxigenRechargeRequestDate.toString();
185
	}
186
 
187
	public static LocalDateTime fromOxigenRechargeRequestDate(String oxigenRechargeRequestDate){
188
		int year = Integer.parseInt(oxigenRechargeRequestDate.substring(0, 3));
189
		int month = Integer.parseInt(oxigenRechargeRequestDate.substring(4, 5));
190
		int dayOfMonth = Integer.parseInt(oxigenRechargeRequestDate.substring(6, 7));
191
		int hour = Integer.parseInt(oxigenRechargeRequestDate.substring(8, 9));
192
		int minute = Integer.parseInt(oxigenRechargeRequestDate.substring(10, 11));
193
		int second = Integer.parseInt(oxigenRechargeRequestDate.substring(12, 13));
194
		return LocalDateTime.of(year, month, dayOfMonth, hour, minute, second);
195
	}
21675 ashik.ali 196
 
21543 ashik.ali 197
}