Subversion Repositories SmartDukaan

Rev

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