From 425bd35c736b7e1c0dbe5b3f9162e195b3be6018 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Thu, 25 Feb 2021 11:02:26 +0100 Subject: - bug fix on TicketType Enum - duplicate function getDocument removed - issuedOnLine null value allowed - maven install added (required renaming of some packages) --- .../barcode/ticket/api/utils/UicEncoderUtils.java | 514 +++++++++++++++++++++ 1 file changed, 514 insertions(+) create mode 100644 src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java (limited to 'src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java') diff --git a/src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java b/src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java new file mode 100644 index 0000000..73f96f1 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java @@ -0,0 +1,514 @@ +/* + * + */ +package org.uic.barcode.ticket.api.utils; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; +import org.uic.barcode.ticket.EncodingFormatException; + + +/** + * The Class UicEncoderUtils. + */ +public class UicEncoderUtils { + + + + /** + * Map to int. + * + * @param o the object to be mapped to an integer + * @return the int + */ + public static int mapToInt(Object o){ + + if (o == null){ + return 0; + } + + if (o instanceof Integer) { + return ((Integer)o).intValue(); + } + + if (o instanceof Long) { + return ((Long)o).intValue(); + } + + if (o instanceof String) { + + int i = 0; + + try { + i = Integer.parseInt((String)o); + } catch (NumberFormatException e) { + return 0; + } + + + return i; + } + + int i = 0; + + try { + i = Integer.parseInt(o.toString()); + } catch (NumberFormatException e) { + return 0; + } + + + return i; + + } + + /** + * Map to string. + * + * @param number the number + * @param text the text + * @return the string + */ + public static String mapToString(Asn1BigInteger number, String text) { + if (text != null && text.length() > 0) { + return text; + } else { + if (number != null){ + return number.value().toString(); + } else { + return null; + } + } + } + + /** + * Map to string. + * + * @param number the number + * @param text the text + * @return the string + */ + public static String mapToString(BigInteger number, String text) { + if (text != null && text.length() > 0) { + return text; + } else { + if (number != null){ + return number.toString(); + } else { + return null; + } + } + } + + /** + * Map to string. + * + * @param number the number + * @param text the text + * @return the string + */ + public static String mapToString(Integer number, String text) { + + if (text != null && text.length() > 0) { + return text; + } else { + if (number != null){ + return number.toString(); + } else { + return null; + } + } + } + + /** + * Map to string. + * + * @param number the number + * @param text the text + * @return the string + */ + public static String mapToString(Long number, String text) { + + if (text != null && text.length() > 0) { + return text; + } else { + if (number != null){ + return number.toString(); + } else { + return null; + } + } + } + + + + + /** + * Map to string. + * + * @param numbers the numbers + * @return the collection + */ + public static Collection mapToString(Collection numbers) { + + Collection list = new HashSet(); + + if (numbers == null || numbers.isEmpty()) { + return list; + } + + for (Long number : numbers){ + list.add(number.toString()); + } + + return list; + } + + + + + /** + * Gets the num. + * + * @param text the text + * @return the num + */ + public static Long getNum(String text) { + + if (text == null || text.length() == 0) { + return null; + } + + Long i; + try { + i = Long.parseLong(text); + } catch (NumberFormatException e) { + return null; + } + return i; + } + + /** + * Gets the num. + * + * @param text the text + * @return the num + */ + public static Asn1BigInteger getLargeNum(String text) { + + if (text == null || text.length() == 0) { + return null; + } + + BigInteger i; + try { + i = new BigInteger(text); + } catch (NumberFormatException e) { + return null; + } + return new Asn1BigInteger(i); + } + + /** + * Gets the num list. + * + * @param list the list + * @return the num list + * @throws EncodingFormatException the encoding format exception + */ + public static List getNumList(Collection list) throws EncodingFormatException { + + if (list== null || list.isEmpty()) { + return null; + } + List numList = new ArrayList(); + + for (String text : list){ + Long num = getNum (text); + if (num != null) { + numList.add(num); + } + } + + + if (numList.isEmpty()) { + return null; + } + + return numList; + } + + /** + * Gets the i a5 non num list. + * + * @param list the list + * @return the i a5 non num list + * @throws EncodingFormatException the encoding format exception + */ + public static SequenceOfStringIA5 getIA5NonNumList(Collection list) throws EncodingFormatException { + + if (list== null || list.isEmpty()) { + return null; + } + SequenceOfStringIA5 ia5List = new SequenceOfStringIA5(); + + for (String text : list){ + String ia5 = getIA5NonNum (text); + if (ia5 != null && ia5.length() > 0) { + ia5List.add(ia5); + } + } + + + if (ia5List.isEmpty()) { + return null; + } + + return ia5List; + } + + + + + /** + * Gets the i a5. + * + * @param text the text + * @return the i a5 + * @throws EncodingFormatException the encoding format exception + */ + public static String getIA5(String text) throws EncodingFormatException { + + if (text == null || text.length() == 0) { + return null; + } + + for (int i = 0; i < text.length(); i++){ + int index = text.charAt(i); + if (index < 0 || index > 127) { + throw new EncodingFormatException("Wrong Characters in IA5 String encoding"); + } + } + + return text; + + } + + /** + * Gets the i a5 non num. + * + * @param text the text + * @return the i a5 non num + * @throws EncodingFormatException the encoding format exception + */ + public static String getIA5NonNum(String text) throws EncodingFormatException { + + if (text == null || text.length() == 0) { + return null; + } + + for (int i = 0; i < text.length(); i++){ + int index = text.charAt(i); + if (index < 0 || index > 127) { + throw new EncodingFormatException("Wrong Characters in IA5 String encoding"); + } + } + + try { + Long.parseLong(text); + return null; + } catch (NumberFormatException e) { + return text; + } + + } + + /** + * Gets the restricted int. + * + * @param value the value + * @param min the min + * @param max the max + * @return the restricted int + * @throws EncodingFormatException the encoding format exception + */ + public static Long getRestrictedInt(int value, int min, int max) throws EncodingFormatException { + if (value == 0) return null; + + if (value < min || value > max) { + throw new EncodingFormatException("Integer value exceeds boundaries"); + } + return new Long(value); + } + + /** + * Gets the restricted int with default. + * + * @param value the value + * @param min the min + * @param max the max + * @param defaultValue the default value + * @return the restricted int with default + * @throws EncodingFormatException the encoding format exception + */ + public static Long getRestrictedIntWithDefault(int value, int min, int max, int defaultValue) throws EncodingFormatException { + if (value == defaultValue || value == 0) return null; + + if (value < min || value > max) { + throw new EncodingFormatException("Integer value exceeds boundaries"); + } + return new Long(value); + } + + + /** + * Gets the un restricted int. + * + * @param value the value + * @return the un restricted int + */ + public static Long getUnRestrictedInt(int value) { + if (value == 0) return null; + return new Long(value); + } + + /** + * Gets the un restricted int list. + * + * @param intList the int list + * @return the un restricted int list + */ + public static List getUnRestrictedIntList( Collection intList) { + if (intList == null || intList.isEmpty()) return null; + + List list = new ArrayList(); + + for (Integer i : intList){ + if (i != 0){ + list.add(i.longValue()); + } + } + + if (list.isEmpty()) return null; + return list; + } + + /** + * Gets the restricted int list. + * + * @param intList the int list + * @param min the min + * @param max the max + * @return the restricted int list + * @throws EncodingFormatException the encoding format exception + */ + public static List getRestrictedIntList( Collection intList, int min, int max) throws EncodingFormatException { + if (intList == null || intList.isEmpty()) return null; + + ArrayList list = new ArrayList(); + + for (Integer i : intList){ + if (i != 0){ + + if (i < min || i > max){ + throw new EncodingFormatException("Integer value exceeds boundaries"); + } + + list.add(i); + } + } + + if (list.isEmpty()) return null; + return list; + } + + /** + * Encode restricted integer collection. + * + * @param collection the collection + * @param min the min + * @param max the max + * @return the list + * @throws EncodingFormatException the encoding format exception + */ + public static List encodeRestrictedIntegerCollection(Collection collection, int min, int max) throws EncodingFormatException { + + if ( collection == null || collection.isEmpty()) { + return null; + } + + List list = new ArrayList(); + for (Integer item : collection){ + Long listItem = getRestrictedInt(item, min, max); + if (listItem != null){ + list.add(listItem); + } + } + if (list.isEmpty()){ + return null; + } + return list; + + } + + /** + * Encode integer collection. + * + * @param collection the collection + * @return the list + * @throws EncodingFormatException the encoding format exception + */ + public static SequenceOfStringUTF8 encodeStringCollection(Collection collection) throws EncodingFormatException { + + if ( collection == null || collection.isEmpty()) { + return null; + } + + SequenceOfStringUTF8 list = new SequenceOfStringUTF8(); + for (String item : collection){ + if (item.length() > 0){ + list.add(item); + } + } + if (list.isEmpty()){ + return null; + } + return list; + + } + + /** + * Encode integer collection. + * + * @param collection the collection + * @return the list + * @throws EncodingFormatException the encoding format exception + */ + public static List encodeIntegerCollection(Collection collection) throws EncodingFormatException { + + if ( collection == null || collection.isEmpty()) { + return null; + } + + List list = new ArrayList(); + for (Integer item : collection){ + if (item != null){ + list.add(item.longValue()); + } + } + if (list.isEmpty()){ + return null; + } + return list; + + } + + +} -- cgit v1.2.3