Skip to content

Commit dd41cd0

Browse files
committed
Extract interface RandomNumberGenerator
Signed-off-by: Manoel Campos <manoelcampos@gmail.com>
1 parent 8ea2d7e commit dd41cd0

File tree

2 files changed

+52
-32
lines changed

2 files changed

+52
-32
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.manoelcampos.randomorg;
2+
3+
/**
4+
* An interface to be implemented by Random Number Generators.
5+
*
6+
* @author Manoel Campos da Silva Filho
7+
*/
8+
public interface RandomNumberGenerator {
9+
/**
10+
* Generate n real random integers between [{@link GenerateIntegersRequestParams#MIN_VALUE} .. {@link GenerateIntegersRequestParams#MAX_VALUE}].
11+
* Allows generation of duplicated integers.
12+
* @param n total of random integers to generate
13+
* @return an array containing the random integers
14+
*/
15+
int[] generateIntegers(int n);
16+
17+
/**
18+
* Generate n real random integers between [{@link GenerateIntegersRequestParams#MIN_VALUE} .. {@link GenerateIntegersRequestParams#MAX_VALUE}]
19+
* <b>that don't repeat (there will be no duplicated numbers).</b>
20+
*
21+
* @param n total of random integers to generate
22+
* @return an array containing the random integers
23+
*/
24+
int[] generateNonDuplicatedIntegers(int n);
25+
26+
/**
27+
* Generate n real random integers between [minValue .. maxValue].
28+
* Allows generation of duplicated integers.
29+
*
30+
* @param n total of random integers to generate
31+
* @param minValue the minimum value for a generated random int
32+
* @param maxValue the maximum value for a generated random int
33+
* @return an array containing the random integers
34+
*/
35+
int[] generateIntegers(int n, int minValue, int maxValue);
36+
37+
/**
38+
* Generate n real random integers between [minValue .. maxValue]
39+
* <b>that don't repeat (there will be no duplicated numbers).</b>
40+
*
41+
* @param n total of random integers to generate
42+
* @param minValue the minimum value for a generated random int
43+
* @param maxValue the maximum value for a generated random int
44+
* @return an array containing the random integers
45+
*/
46+
int[] generateNonDuplicatedIntegers(int n, int minValue, int maxValue);
47+
}

src/main/java/com/manoelcampos/randomorg/RandomOrgClient.java

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
* @author Manoel Campos da Silva Filho
2727
* @see <a href="https://api.random.org/json-rpc/4/basic">API Docs</a>
2828
*/
29-
public class RandomOrgClient {
29+
public class RandomOrgClient implements RandomNumberGenerator {
3030
public static final String APIKEY_ENV_VAR_NAME = "RANDOM_ORG_API_KEY";
3131
static final String JSONRPC_VERSION = "2.0";
3232
private final String API_KEY;
@@ -54,49 +54,22 @@ public RandomOrgClient(final String apiKey) {
5454
client = HttpClient.newBuilder().build();
5555
}
5656

57-
/**
58-
* Generate n real random integers between [{@link GenerateIntegersRequestParams#MIN_VALUE} .. {@link GenerateIntegersRequestParams#MAX_VALUE}].
59-
* Allows generation of duplicated integers.
60-
* @param n number of random integers to generate
61-
* @return an array containing the random integers
62-
*/
57+
@Override
6358
public int[] generateIntegers(final int n) {
6459
return generateIntegers(new GenerateIntegersRequestParams(n));
6560
}
6661

67-
/**
68-
* Generate n real random integers between [{@link GenerateIntegersRequestParams#MIN_VALUE} .. {@link GenerateIntegersRequestParams#MAX_VALUE}]
69-
* <b>that don't repeat (there will be no duplicated numbers).</b>
70-
*
71-
* @param n number of random integers to generate
72-
* @return an array containing the random integers
73-
*/
62+
@Override
7463
public int[] generateNonDuplicatedIntegers(final int n) {
7564
return generateIntegers(new GenerateIntegersRequestParams(n, false));
7665
}
7766

78-
/**
79-
* Generate n real random integers between [minValue .. maxValue].
80-
* Allows generation of duplicated integers.
81-
*
82-
* @param n number of random integers to generate
83-
* @param minValue the minimum value for a generated random int
84-
* @param maxValue the maximum value for a generated random int
85-
* @return an array containing the random integers
86-
*/
67+
@Override
8768
public int[] generateIntegers(final int n, final int minValue, final int maxValue) {
8869
return generateIntegers(new GenerateIntegersRequestParams(n, minValue, maxValue));
8970
}
9071

91-
/**
92-
* Generate n real random integers between [minValue .. maxValue]
93-
* <b>that don't repeat (there will be no duplicated numbers).</b>
94-
*
95-
* @param n number of random integers to generate
96-
* @param minValue the minimum value for a generated random int
97-
* @param maxValue the maximum value for a generated random int
98-
* @return an array containing the random integers
99-
*/
72+
@Override
10073
public int[] generateNonDuplicatedIntegers(final int n, final int minValue, final int maxValue) {
10174
return generateIntegers(new GenerateIntegersRequestParams(n, minValue, maxValue, false));
10275
}

0 commit comments

Comments
 (0)