public class ComponentImpl implements Component {
private final Type type;
- private final BatchReport.Component component;
+ private final int ref;
private final List<Component> children;
// Mutable values
private String uuid;
public ComponentImpl(BatchReport.Component component, @Nullable Iterable<Component> children) {
- this.component = component;
+ this.ref = component.getRef();
this.type = convertType(component.getType());
this.children = children == null ? Collections.<Component>emptyList() : copyOf(filter(children, notNull()));
}
@Override
public int getRef() {
- return component.getRef();
+ return ref;
}
public String getUuid() {
public class ComponentImplTest {
private ComponentImpl component = new ComponentImpl(BatchReport.Component.newBuilder().build(), Collections.<Component>emptyList());
+ @Test(expected = NullPointerException.class)
+ public void constructor_throws_NPE_if_component_arg_is_Null() {
+ new ComponentImpl(null, null);
+ }
+
@Test(expected = UnsupportedOperationException.class)
public void getUuid_throws_UOE_if_uuid_has_not_been_set_yet() {
component.getUuid();