01 /*
02 * Java Genetic Algorithm Library (jenetics-1.5.0).
03 * Copyright (c) 2007-2013 Franz Wilhelmstötter
04 *
05 * Licensed under the Apache License, Version 2.0 (the "License");
06 * you may not use this file except in compliance with the License.
07 * You may obtain a copy of the License at
08 *
09 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 * Author:
18 * Franz Wilhelmstötter (franz.wilhelmstoetter@gmx.at)
19 */
20 package org.jenetics.util;
21
22 /**
23 * Contains factory (methods) for some 'primitive' types.
24 *
25 * @author <a href="mailto:franz.wilhelmstoetter@gmx.at">Franz Wilhelmstötter</a>
26 * @since 1.0
27 * @version 1.0 — <em>$Date: 2013-08-29 $</em>
28 */
29 public final class factories extends StaticObject {
30 private factories() {}
31
32 /**
33 * Return an integer factory which creates an integer sequence starting with
34 * zero an with step one.
35 *
36 * @return an integer factory.
37 */
38 public static Factory<Integer> Int() {
39 return Int(1);
40 }
41
42 /**
43 * Return an integer factory which creates an integer sequence starting with
44 * zero an with the given {@code step}.
45 *
46 * @param step the gap between the generated integers.
47 * @return an integer factory.
48 */
49 public static Factory<Integer> Int(final int step) {
50 return Int(0, step);
51 }
52
53 /**
54 * Return an integer factory which creates an integer sequence starting with
55 * {@code start} an with the given {@code step}.
56 *
57 * @param step the gap between the generated integers.
58 * @return an integer factory.
59 */
60 public static Factory<Integer> Int(final int start, final int step) {
61 return new Factory<Integer>() {
62 private int _value = start;
63
64 @Override
65 public Integer newInstance() {
66 return next();
67 }
68
69 private int next() {
70 final int next = _value;
71 _value += step;
72 return next;
73 }
74 };
75 }
76
77 }
|