test_class.declarator: open = BigInteger.ZERO
test_class.modifier: private final
test_class.original_string: private final BigInteger open = BigInteger.ZERO;
test_class.type: BigInteger
test_class.var_name: open
test_class.declarator: authenticated = BigInteger.ONE
test_class.modifier: private final
test_class.original_string: private final BigInteger authenticated = BigInteger.ONE;
test_class.type: BigInteger
test_class.var_name: authenticated
test_class.file: core/src/test/java/dk/alexandra/fresco/framework/util/TestOpenedValueStoreImpl.java
test_class.identifier: TestOpenedValueStoreImpl
test_case.body: @Test
    public void testPopValues() {
      OpenedValueStore<BigInteger, BigInteger> store = new OpenedValueStoreImpl<>();
      store.pushOpenedValue(authenticated, open);
      store.pushOpenedValue(authenticated, open);
      Pair<List<BigInteger>, List<BigInteger>> both = store.popValues();
      List<BigInteger> first = both.getFirst();
      Assert.assertEquals(2, first.size());
      List<BigInteger> second = both.getSecond();
      Assert.assertEquals(2, second.size());
      Assert.assertEquals(authenticated, first.get(0));
      Assert.assertEquals(authenticated, first.get(1));
      Assert.assertEquals(open, second.get(0));
      Assert.assertEquals(open, second.get(1));
      Assert.assertFalse("Store not expected to have pending values", store.hasPendingValues());
    }
test_case.class_method_signature: TestOpenedValueStoreImpl.testPopValues()
test_case.full_signature: @Test public void testPopValues()
test_case.identifier: testPopValues
test_case.invocations: pushOpenedValue pushOpenedValue popValues getFirst assertEquals size getSecond assertEquals size assertEquals get assertEquals get assertEquals get assertEquals get assertFalse hasPendingValues
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testPopValues()
focal_class.declarator: sharesWithMacs
focal_class.modifier: private
focal_class.original_string: private List<AuthT> sharesWithMacs;
focal_class.type: List<AuthT>
focal_class.var_name: sharesWithMacs
focal_class.declarator: openValues
focal_class.modifier: private
focal_class.original_string: private List<OpenT> openValues;
focal_class.type: List<OpenT>
focal_class.var_name: openValues
focal_class.file: core/src/main/java/dk/alexandra/fresco/framework/util/OpenedValueStoreImpl.java
focal_class.identifier: OpenedValueStoreImpl
focal_class.interfaces: implements OpenedValueStore<AuthT, OpenT>
focal_class.class_method_signature: OpenedValueStoreImpl.OpenedValueStoreImpl()
focal_class.full_signature: public  OpenedValueStoreImpl()
focal_class.identifier: OpenedValueStoreImpl
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  OpenedValueStoreImpl()
focal_class.class_method_signature: OpenedValueStoreImpl.pushOpenedValues(List<AuthT> newSharesWithMacs, List<OpenT> newOpenedValues)
focal_class.full_signature: @Override public void pushOpenedValues(List<AuthT> newSharesWithMacs, List<OpenT> newOpenedValues)
focal_class.identifier: pushOpenedValues
focal_class.modifiers: @Override public
focal_class.parameters: (List<AuthT> newSharesWithMacs, List<OpenT> newOpenedValues)
focal_class.return: void
focal_class.signature: void pushOpenedValues(List<AuthT> newSharesWithMacs, List<OpenT> newOpenedValues)
focal_class.class_method_signature: OpenedValueStoreImpl.pushOpenedValue(AuthT newShareWithMac, OpenT newOpenedValue)
focal_class.full_signature: @Override public void pushOpenedValue(AuthT newShareWithMac, OpenT newOpenedValue)
focal_class.identifier: pushOpenedValue
focal_class.modifiers: @Override public
focal_class.parameters: (AuthT newShareWithMac, OpenT newOpenedValue)
focal_class.return: void
focal_class.signature: void pushOpenedValue(AuthT newShareWithMac, OpenT newOpenedValue)
focal_class.class_method_signature: OpenedValueStoreImpl.popValues()
focal_class.full_signature: @Override public Pair<List<AuthT>, List<OpenT>> popValues()
focal_class.identifier: popValues
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Pair<List<AuthT>, List<OpenT>>
focal_class.signature: Pair<List<AuthT>, List<OpenT>> popValues()
focal_class.class_method_signature: OpenedValueStoreImpl.hasPendingValues()
focal_class.full_signature: @Override public boolean hasPendingValues()
focal_class.identifier: hasPendingValues
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasPendingValues()
focal_class.class_method_signature: OpenedValueStoreImpl.exceedsThreshold(int threshold)
focal_class.full_signature: @Override public boolean exceedsThreshold(int threshold)
focal_class.identifier: exceedsThreshold
focal_class.modifiers: @Override public
focal_class.parameters: (int threshold)
focal_class.return: boolean
focal_class.signature: boolean exceedsThreshold(int threshold)
focal_method.body: @Override
    public Pair<List<AuthT>, List<OpenT>> popValues() {
      // the caller has the responsibility of managing the returned lists, so we clear by referencing
      // new empty lists (which avoids copying) and return references to original value lists
      List<AuthT> tempSharesWithMacs = sharesWithMacs;
      List<OpenT> tempOpenedValues = openValues;
      sharesWithMacs = new ArrayList<>();
      openValues = new ArrayList<>();
      return new Pair<>(tempSharesWithMacs, tempOpenedValues);
    }
focal_method.class_method_signature: OpenedValueStoreImpl.popValues()
focal_method.full_signature: @Override public Pair<List<AuthT>, List<OpenT>> popValues()
focal_method.identifier: popValues
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: Pair<List<AuthT>, List<OpenT>>
focal_method.signature: Pair<List<AuthT>, List<OpenT>> popValues()