|  |  | @ -7,53 +7,55 @@ import java.util.Iterator; | 
			
		
	
		
		
			
				
					
					|  |  |  |  */ |  |  |  |  */ | 
			
		
	
		
		
			
				
					
					|  |  |  | final class Gs1128Utils { |  |  |  | final class Gs1128Utils { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   public static final String PREFIX = "]C1"; |  |  |  |     public static final String PREFIX = "]C1"; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   public static final char END_AI_VARIED = (char) 29; |  |  |  |     public static final char END_AI_VARIED = (char) 29; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   private Gs1128Utils() { |  |  |  |     private Gs1128Utils() { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     super(); |  |  |  |         super(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |     } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   public static Iterator<Character> iterator(String value) { |  |  |  |     public static Iterator<Character> iterator(String value) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     return value.chars().mapToObj(c -> (char) c).iterator(); |  |  |  |         return value.chars().mapToObj(c -> (char) c).iterator(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   public static String value(AI ai, Iterator<Character> iterator) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     Format format = Format.valueOf(ai.getFormat()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (format.isVaried()) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       return variedValue(iterator); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } else { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       return fixedValue(format.getLength(), iterator); |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |     public static String value(AI ai, Iterator<Character> iterator) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   public static String value(Session session, String value) { |  |  |  |         Format format = Format.valueOf(ai.getFormat()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     Iterator<Character> iterator = iterator(value); |  |  |  |         if (format.isVaried()) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     if (session.isVaried()) { |  |  |  |             return variedValue(iterator); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       return variedValue(iterator); |  |  |  |         } else { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     } else { |  |  |  |             return fixedValue(format.getLength(), iterator); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       return fixedValue(session.getLength(), iterator); |  |  |  |         } | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   private static String fixedValue(int size, Iterator<Character> iterator) { |  |  |  |     public static String value(Session session, String value) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     StringBuilder builder = new StringBuilder(); |  |  |  |         Iterator<Character> iterator = iterator(value); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     for (int i = 0; i < size; i++) { |  |  |  |         if (session.isVaried()) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       builder.append(iterator.next()); |  |  |  |             return variedValue(iterator); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return fixedValue(session.getLength(), iterator); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     return builder.toString(); |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |     private static String fixedValue(int size, Iterator<Character> iterator) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |         StringBuilder builder = new StringBuilder(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   private static String variedValue(Iterator<Character> iterator) { |  |  |  |         for (int i = 0; i < size; i++) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     StringBuilder builder = new StringBuilder(); |  |  |  |             if (iterator.hasNext()) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     while (iterator.hasNext()) { |  |  |  |                 builder.append(iterator.next()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       char value = iterator.next(); |  |  |  |             } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       if (value == END_AI_VARIED) { |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         break; |  |  |  |         return builder.toString(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       } |  |  |  |     } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       builder.append(value); |  |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private static String variedValue(Iterator<Character> iterator) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         StringBuilder builder = new StringBuilder(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         while (iterator.hasNext()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             char value = iterator.next(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (value == END_AI_VARIED) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             builder.append(value); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return builder.toString(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     return builder.toString(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |