ActionImpl implements Action { private ActionImpl(Builder builder) { this.name = builder.name; this.namespace = builder.namespace; this.bound = builder.bound; this.entitySetPath = builder.entitySetPath; this.returnType = builder.returnType; this.parameters = builder.parameters; this.javaClass = builder.javaClass; } private  ActionImpl(Builder builder); @Override String getName(); @Override String getNamespace(); @Override boolean isBound(); @Override String getEntitySetPath(); @Override String getReturnType(); @Override Set<Parameter> getParameters(); @Override Class<?> getJavaClass();  }
@Test public void testActionImpl() { ActionImpl.Builder builder = new ActionImpl.Builder(); builder.setName("testAction") .setBound(true) .setNamespace("testNamespace") .setEntitySetPath("someEntitySetPath") .setReturnType("someReturnType") .setParameters(new HashSet<>()); ActionImpl action = builder.build(); assertThat(action.getName(), is("testAction")); assertThat(action.getNamespace(), is("testNamespace")); assertThat(action.isBound(), is(true)); assertThat(action.getReturnType(), is("someReturnType")); assertThat(action.getEntitySetPath(), is("someEntitySetPath")); assertThat(action.getParameters().size(), is(0)); }