forked from ObjectLayout/ObjectLayout
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOctagons.java
More file actions
71 lines (59 loc) · 2.23 KB
/
Octagons.java
File metadata and controls
71 lines (59 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
* Written by Gil Tene and Martin Thompson, and released to the public domain,
* as explained at http://creativecommons.org/publicdomain/zero/1.0/
*/
import org.ObjectLayout.*;
import java.lang.reflect.Constructor;
import java.util.Date;
public class Octagons extends StructuredArray<Octagon> {
public Date creationDate = new Date();
public Octagons() {
}
public Octagons(Octagons source) {
super(source);
}
public static Octagons newInstance(final long length) {
return StructuredArray.newInstance(Octagons.class, Octagon.class, length);
}
public static Octagons newInstance(
final long length,
final CtorAndArgsProvider<Octagon> ctorAndArgsProvider) {
return StructuredArray.newInstance(
Octagons.class, Octagon.class, length, ctorAndArgsProvider);
}
public static Octagons newInstance(
final long length,
final String color,
final long initialCenterX,
final long initialCenterY,
final long radius,
final long deltaX,
final long deltaY) {
return newInstance(
length,
new CtorAndArgsProvider<Octagon>() {
@Override
public CtorAndArgs<Octagon> getForContext(
ConstructionContext<Octagon> context) throws NoSuchMethodException {
return new CtorAndArgs<Octagon>(
cxyr_constructor,
color,
(initialCenterX + context.getIndex() * deltaX),
(initialCenterY + context.getIndex() * deltaY),
radius
);
}
});
}
static final Constructor<Octagon> cxyr_constructor;
static {
try {
@SuppressWarnings("unchecked")
Constructor<Octagon> constructor = Octagon.class.getConstructor(
String.class, long.class, long.class, long.class);
cxyr_constructor = constructor;
} catch (NoSuchMethodException ex) {
throw new RuntimeException(ex);
}
}
}