test_class.declarator: wrapped
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Codec<String> wrapped;
test_class.type: Codec<String>
test_class.var_name: wrapped
test_class.declarator: sizeExpr
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Expression<Integer, Resolver> sizeExpr;
test_class.type: Expression<Integer, Resolver>
test_class.var_name: sizeExpr
test_class.declarator: builder
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Builder builder;
test_class.type: Builder
test_class.var_name: builder
test_class.declarator: buffer
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BitBuffer buffer;
test_class.type: BitBuffer
test_class.var_name: buffer
test_class.declarator: slice
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BitBuffer slice;
test_class.type: BitBuffer
test_class.var_name: slice
test_class.declarator: resolver
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Resolver resolver;
test_class.type: Resolver
test_class.var_name: resolver
test_class.declarator: channel
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BitChannel channel;
test_class.type: BitChannel
test_class.var_name: channel
test_class.file: preon-binding/src/test/java/org/codehaus/preon/codec/SlicingCodecTest.java
test_class.identifier: SlicingCodecTest
test_case.body: @Test
      public void testEncoding() throws IOException {
          SlicingCodec<String> codec = new SlicingCodec(wrapped, sizeExpr);
          when(sizeExpr.eval(resolver)).thenReturn(3);
          codec.encode("DONE", channel, resolver);
          ArgumentCaptor<BitChannel> bitChannelCaptor = ArgumentCaptor.forClass(BitChannel.class);
          verify(wrapped).encode(eq("DONE"), bitChannelCaptor.capture(), eq(resolver));
          verify(sizeExpr).eval(resolver);
          assertThat(bitChannelCaptor.getValue(), instanceOf(BoundedBitChannel.class));
          verifyNoMoreInteractions(wrapped, sizeExpr, resolver);
      }
test_case.class_method_signature: SlicingCodecTest.testEncoding()
test_case.full_signature: @Test public void testEncoding()
test_case.identifier: testEncoding
test_case.invocations: thenReturn when eval encode forClass encode verify eq capture eq eval verify assertThat getValue instanceOf verifyNoMoreInteractions
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testEncoding()
focal_class.declarator: sizeExpr
focal_class.modifier: private final
focal_class.original_string: private final Expression<Integer, Resolver> sizeExpr;
focal_class.type: Expression<Integer, Resolver>
focal_class.var_name: sizeExpr
focal_class.declarator: wrapped
focal_class.modifier: private final
focal_class.original_string: private final Codec<T> wrapped;
focal_class.type: Codec<T>
focal_class.var_name: wrapped
focal_class.file: preon-binding/src/main/java/org/codehaus/preon/codec/SlicingCodec.java
focal_class.identifier: SlicingCodec
focal_class.interfaces: implements Codec<T>
focal_class.class_method_signature: SlicingCodec.SlicingCodec(Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.full_signature: public  SlicingCodec(Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.identifier: SlicingCodec
focal_class.modifiers: public
focal_class.parameters: (Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.signature:  SlicingCodec(Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.class_method_signature: SlicingCodec.decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.full_signature: public T decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.identifier: decode
focal_class.modifiers: public
focal_class.parameters: (BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.return: T
focal_class.signature: T decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.class_method_signature: SlicingCodec.encode(T value, BitChannel channel, Resolver resolver)
focal_class.full_signature: public void encode(T value, BitChannel channel, Resolver resolver)
focal_class.identifier: encode
focal_class.modifiers: public
focal_class.parameters: (T value, BitChannel channel, Resolver resolver)
focal_class.return: void
focal_class.signature: void encode(T value, BitChannel channel, Resolver resolver)
focal_class.class_method_signature: SlicingCodec.getTypes()
focal_class.full_signature: public Class<?>[] getTypes()
focal_class.identifier: getTypes
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Class<?>[]
focal_class.signature: Class<?>[] getTypes()
focal_class.class_method_signature: SlicingCodec.getSize()
focal_class.full_signature: public Expression<Integer, Resolver> getSize()
focal_class.identifier: getSize
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Expression<Integer, Resolver>
focal_class.signature: Expression<Integer, Resolver> getSize()
focal_class.class_method_signature: SlicingCodec.getType()
focal_class.full_signature: public Class<?> getType()
focal_class.identifier: getType
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Class<?>
focal_class.signature: Class<?> getType()
focal_class.class_method_signature: SlicingCodec.getCodecDescriptor()
focal_class.full_signature: public CodecDescriptor getCodecDescriptor()
focal_class.identifier: getCodecDescriptor
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: CodecDescriptor
focal_class.signature: CodecDescriptor getCodecDescriptor()
focal_method.body: public void encode(T value, BitChannel channel, Resolver resolver) throws IOException {
          wrapped.encode(value, new BoundedBitChannel(channel, sizeExpr.eval(resolver)), resolver);
      }
focal_method.class_method_signature: SlicingCodec.encode(T value, BitChannel channel, Resolver resolver)
focal_method.full_signature: public void encode(T value, BitChannel channel, Resolver resolver)
focal_method.identifier: encode
focal_method.invocations: encode eval
focal_method.modifiers: public
focal_method.parameters: (T value, BitChannel channel, Resolver resolver)
focal_method.return: void
focal_method.signature: void encode(T value, BitChannel channel, Resolver resolver)