@@ -47,7 +47,7 @@ public class Jug
4747 OPTIONS .put ("verbose" , "v" );
4848 }
4949
50- protected static void printUsage ()
50+ protected void printUsage ()
5151 {
5252 String clsName = Jug .class .getName ();
5353 System .err .println ("Usage: java " +clsName +" [options] type" );
@@ -75,7 +75,7 @@ protected static void printUsage()
7575 System .err .println (" epoch-based / e: generate UUID based on current time (as 'epoch') and random number" );
7676 }
7777
78- private static void printMap (Map <String ,String > m , PrintStream out , boolean option )
78+ private void printMap (Map <String ,String > m , PrintStream out , boolean option )
7979 {
8080 int i = 0 ;
8181 int len = m .size ();
@@ -102,6 +102,10 @@ private static void printMap(Map<String,String> m, PrintStream out, boolean opti
102102
103103 public static void main (String [] args )
104104 {
105+ new Jug ().run (args );
106+ }
107+
108+ public void run (String [] args ) {
105109 if (args .length == 0 ) {
106110 printUsage ();
107111 return ;
@@ -123,7 +127,7 @@ public static void main(String[] args)
123127 if (tmp == null ) {
124128 if (!TYPES .containsValue (type )) {
125129 System .err .println ("Unrecognized UUID generation type '" +
126- type +"'; currently available ones are:" );
130+ type +"'; currently available ones are:" );
127131 printMap (TYPES , System .err , false );
128132 System .err .println ();
129133 System .exit (1 );
@@ -136,7 +140,7 @@ public static void main(String[] args)
136140
137141 NoArgGenerator noArgGenerator = null ; // random- or time-based
138142 StringArgGenerator nameArgGenerator = null ; // name-based
139-
143+
140144 for (int i = 0 ; i < count ; ++i ) {
141145 String opt = args [i ];
142146
@@ -170,46 +174,46 @@ public static void main(String[] args)
170174 try {
171175 String next ;
172176 switch (option ) {
173- case 'c' :
174- // Need a number now:
175- next = args [++i ];
176- try {
177- genCount = Integer .parseInt (next );
178- } catch (NumberFormatException nex ) {
179- System .err .println ("Invalid number argument for option '" +opt +"', exiting." );
180- System .exit (1 );
181- }
182- if (genCount < 1 ) {
183- System .err .println ("Invalid number argument for option '" +opt +"'; negative numbers not allowed, ignoring (defaults to 1)." );
184- }
185- break ;
186- case 'e' :
187- // Need the ethernet address:
188- next = args [++i ];
189- try {
190- addr = EthernetAddress .valueOf (next );
191- } catch (NumberFormatException nex ) {
192- System .err .println ("Invalid ethernet address for option '" +opt +"', error: " +nex .toString ());
193- System .exit (1 );
194- }
195- break ;
196- case 'h' :
197- printUsage ();
198- return ;
199- case 'n' :
200- // Need the name
201- name = args [++i ];
202- break ;
203- case 'p' : // performance:
204- performance = true ;
205- break ;
206- case 's' :
207- // Need the namespace id
208- nameSpace = args [++i ];
209- break ;
210- case 'v' :
211- verbose = true ;
212- break ;
177+ case 'c' :
178+ // Need a number now:
179+ next = args [++i ];
180+ try {
181+ genCount = Integer .parseInt (next );
182+ } catch (NumberFormatException nex ) {
183+ System .err .println ("Invalid number argument for option '" +opt +"', exiting." );
184+ System .exit (1 );
185+ }
186+ if (genCount < 1 ) {
187+ System .err .println ("Invalid number argument for option '" +opt +"'; negative numbers not allowed, ignoring (defaults to 1)." );
188+ }
189+ break ;
190+ case 'e' :
191+ // Need the ethernet address:
192+ next = args [++i ];
193+ try {
194+ addr = EthernetAddress .valueOf (next );
195+ } catch (NumberFormatException nex ) {
196+ System .err .println ("Invalid ethernet address for option '" +opt +"', error: " +nex .toString ());
197+ System .exit (1 );
198+ }
199+ break ;
200+ case 'h' :
201+ printUsage ();
202+ return ;
203+ case 'n' :
204+ // Need the name
205+ name = args [++i ];
206+ break ;
207+ case 'p' : // performance:
208+ performance = true ;
209+ break ;
210+ case 's' :
211+ // Need the namespace id
212+ nameSpace = args [++i ];
213+ break ;
214+ case 'v' :
215+ verbose = true ;
216+ break ;
213217 }
214218 } catch (IndexOutOfBoundsException ie ) {
215219 // We get here when an arg is missing...
@@ -227,80 +231,80 @@ public static void main(String[] args)
227231 boolean usesRnd = false ;
228232
229233 switch (typeC ) {
230- case 't' : // time-based
231- case 'o' : // reordered-time-based (Version 6)
232- // 30-Jun-2022, tatu: Is this true? My former self must have had his
233- // reasons so leaving as is but... odd.
234- usesRnd = true ;
235- // No address specified? Need a dummy one...
236- if (addr == null ) {
237- if (verbose ) {
238- System .out .print ("(no address specified, generating dummy address: " );
234+ case 't' : // time-based
235+ case 'o' : // reordered-time-based (Version 6)
236+ // 30-Jun-2022, tatu: Is this true? My former self must have had his
237+ // reasons so leaving as is but... odd.
238+ usesRnd = true ;
239+ // No address specified? Need a dummy one...
240+ if (addr == null ) {
241+ if (verbose ) {
242+ System .out .print ("(no address specified, generating dummy address: " );
243+ }
244+ addr = EthernetAddress .constructMulticastAddress (new java .util .Random (System .currentTimeMillis ()));
245+ if (verbose ) {
246+ System .out .print (addr .toString ());
247+ System .out .println (")" );
248+ }
239249 }
240- addr = EthernetAddress .constructMulticastAddress (new java .util .Random (System .currentTimeMillis ()));
241- if (verbose ) {
242- System .out .print (addr .toString ());
243- System .out .println (")" );
250+ noArgGenerator = (typeC == 't' )
251+ ? Generators .timeBasedGenerator (addr )
252+ : Generators .timeBasedReorderedGenerator (addr );
253+ break ;
254+ case 'r' : // random-based
255+ usesRnd = true ;
256+ {
257+ SecureRandom r = new SecureRandom ();
258+ if (verbose ) {
259+ System .out .print ("(using secure random generator, info = '" +r .getProvider ().getInfo ()+"')" );
260+ }
261+ noArgGenerator = Generators .randomBasedGenerator (r );
244262 }
245- }
246- noArgGenerator = (typeC == 't' )
247- ? Generators .timeBasedGenerator (addr )
248- : Generators .timeBasedReorderedGenerator (addr );
249- break ;
250- case 'r' : // random-based
251- usesRnd = true ;
252- {
253- SecureRandom r = new SecureRandom ();
254- if (verbose ) {
255- System .out .print ("(using secure random generator, info = '" +r .getProvider ().getInfo ()+"')" );
263+ break ;
264+ case 'e' : // epoch-time-based
265+ usesRnd = true ;
266+ {
267+ SecureRandom r = new SecureRandom ();
268+ if (verbose ) {
269+ System .out .print ("(using secure random generator, info = '" +r .getProvider ().getInfo ()+"')" );
270+ }
271+ noArgGenerator = Generators .timeBasedEpochGenerator (r );
256272 }
257- noArgGenerator = Generators . randomBasedGenerator ( r ) ;
258- }
259- break ;
260- case 'e' : // epoch-time-based
261- usesRnd = true ;
262- {
263- SecureRandom r = new SecureRandom ( );
264- if ( verbose ) {
265- System . out . print ( "(using secure random generator, info = '" + r . getProvider (). getInfo ()+ "')" );
273+ break ;
274+ case 'm' : // random-epoch-time-based
275+ usesRnd = true ;
276+ {
277+ SecureRandom r = new SecureRandom () ;
278+ if ( verbose ) {
279+ System . out . print ( "(using secure random generator, info = '" + r . getProvider (). getInfo ()+ "')" );
280+ }
281+ noArgGenerator = Generators . timeBasedEpochRandomGenerator ( r );
266282 }
267- noArgGenerator = Generators .timeBasedEpochGenerator (r );
268- }
269- break ;
270- case 'm' : // random-epoch-time-based
271- usesRnd = true ;
272- {
273- SecureRandom r = new SecureRandom ();
274- if (verbose ) {
275- System .out .print ("(using secure random generator, info = '" +r .getProvider ().getInfo ()+"')" );
283+ break ;
284+ case 'n' : // name-based
285+ if (nameSpace == null ) {
286+ System .err .println ("--name-space (-s) - argument missing when using method that requires it, exiting." );
287+ System .exit (1 );
276288 }
277- noArgGenerator = Generators .timeBasedEpochRandomGenerator (r );
278- }
279- break ;
280- case 'n' : // name-based
281- if (nameSpace == null ) {
282- System .err .println ("--name-space (-s) - argument missing when using method that requires it, exiting." );
283- System .exit (1 );
284- }
285- if (name == null ) {
286- System .err .println ("--name (-n) - argument missing when using method that requires it, exiting." );
287- System .exit (1 );
288- }
289- if (typeC == 'n' ) {
290- String orig = nameSpace ;
291- nameSpace = nameSpace .toLowerCase ();
292- if (nameSpace .equals ("url" )) {
293- nsUUID = NameBasedGenerator .NAMESPACE_URL ;
294- } else if (nameSpace .equals ("dns" )) {
295- nsUUID = NameBasedGenerator .NAMESPACE_DNS ;
296- } else {
297- System .err .println ("Unrecognized namespace '" +orig
298- +"'; only DNS and URL allowed for name-based generation." );
289+ if (name == null ) {
290+ System .err .println ("--name (-n) - argument missing when using method that requires it, exiting." );
299291 System .exit (1 );
300292 }
301- }
302- nameArgGenerator = Generators .nameBasedGenerator (nsUUID );
303- break ;
293+ if (typeC == 'n' ) {
294+ String orig = nameSpace ;
295+ nameSpace = nameSpace .toLowerCase ();
296+ if (nameSpace .equals ("url" )) {
297+ nsUUID = NameBasedGenerator .NAMESPACE_URL ;
298+ } else if (nameSpace .equals ("dns" )) {
299+ nsUUID = NameBasedGenerator .NAMESPACE_DNS ;
300+ } else {
301+ System .err .println ("Unrecognized namespace '" +orig
302+ +"'; only DNS and URL allowed for name-based generation." );
303+ System .exit (1 );
304+ }
305+ }
306+ nameArgGenerator = Generators .nameBasedGenerator (nsUUID );
307+ break ;
304308 }
305309
306310 // And then let's rock:
0 commit comments