@@ -47,7 +47,7 @@ public class Jug
47
47
OPTIONS .put ("verbose" , "v" );
48
48
}
49
49
50
- protected static void printUsage ()
50
+ protected void printUsage ()
51
51
{
52
52
String clsName = Jug .class .getName ();
53
53
System .err .println ("Usage: java " +clsName +" [options] type" );
@@ -75,7 +75,7 @@ protected static void printUsage()
75
75
System .err .println (" epoch-based / e: generate UUID based on current time (as 'epoch') and random number" );
76
76
}
77
77
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 )
79
79
{
80
80
int i = 0 ;
81
81
int len = m .size ();
@@ -102,6 +102,10 @@ private static void printMap(Map<String,String> m, PrintStream out, boolean opti
102
102
103
103
public static void main (String [] args )
104
104
{
105
+ new Jug ().run (args );
106
+ }
107
+
108
+ public void run (String [] args ) {
105
109
if (args .length == 0 ) {
106
110
printUsage ();
107
111
return ;
@@ -123,7 +127,7 @@ public static void main(String[] args)
123
127
if (tmp == null ) {
124
128
if (!TYPES .containsValue (type )) {
125
129
System .err .println ("Unrecognized UUID generation type '" +
126
- type +"'; currently available ones are:" );
130
+ type +"'; currently available ones are:" );
127
131
printMap (TYPES , System .err , false );
128
132
System .err .println ();
129
133
System .exit (1 );
@@ -136,7 +140,7 @@ public static void main(String[] args)
136
140
137
141
NoArgGenerator noArgGenerator = null ; // random- or time-based
138
142
StringArgGenerator nameArgGenerator = null ; // name-based
139
-
143
+
140
144
for (int i = 0 ; i < count ; ++i ) {
141
145
String opt = args [i ];
142
146
@@ -170,46 +174,46 @@ public static void main(String[] args)
170
174
try {
171
175
String next ;
172
176
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 ;
213
217
}
214
218
} catch (IndexOutOfBoundsException ie ) {
215
219
// We get here when an arg is missing...
@@ -227,80 +231,80 @@ public static void main(String[] args)
227
231
boolean usesRnd = false ;
228
232
229
233
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
+ }
239
249
}
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 );
244
262
}
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 );
256
272
}
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 );
266
282
}
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 );
276
288
}
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." );
299
291
System .exit (1 );
300
292
}
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 ;
304
308
}
305
309
306
310
// And then let's rock:
0 commit comments