package com.yoursway.utils.gemstones;
import java.util.List;
public class GemstoneDefinition<G extends Gemstone<G>> {
private final SlotImpl<? extends Facelet<G>, G>[] slots;
@SuppressWarnings("unchecked")
GemstoneDefinition(List<SlotImpl<? extends Facelet<G>, G>> slots) {
if (slots == null)
throw new NullPointerException("slots is null");
this.slots = (SlotImpl<? extends Facelet<G>, G>[]) slots.toArray(new SlotImpl<?, ?>[slots.size()]);
}
@SuppressWarnings("unchecked")
Facelet<G>[] create(G gemstone) {
Facelet<G>[] result = (Facelet<G>[]) new Facelet<?>[slots.length];
for (int i = 0; i < slots.length; i++)
result[i] = slots[i].create(gemstone);
return result;
}
}