@@ -0,0 +1,1312 @@
+/*%0A * To change this license header, choose License Headers in Project Properties.%0A * To change this template file, choose Tools %7C Templates%0A * and open the template in the editor.%0A */%0Apackage doublex.lib.lockableContainers;%0A%0A/**%0A *%0A * @author kenneth.lau%0A * @param %3CC%3E%0A * @param %3CK%3E%0A */%0Apublic final class UnitTestedLockableContainer%3CC, K%3E %7B%0A%0A    private final LockableContainer%3CC, K%3E mLockableContainer;%0A%0A    public UnitTestedLockableContainer(%0A            final LockableContainer%3CC, K%3E lockableContainer) %7B%0A        mLockableContainer = lockableContainer;%0A    %7D%0A%0A    public final void tryPutContents(final C contents) %7B%0A        System.out.println(%0A                %22UnitTestedLockableContainer tryPutContents contents: %22 + %0A                        contents);%0A        mLockableContainer.tryPutContents(contents);%0A    %7D%0A%0A    public final C tryTakeContents() %7B%0A        final C contents = mLockableContainer.tryTakeContents();%0A        System.out.println(%22UnitTestedLockableContainer tryTakeContents%22);%0A        if (mLockableContainer.mLocks.isLocked() && contents != null) %7B%0A            System.out.println(%22Failed! Actual value: %22 + contents);%0A        %7D else %7B%0A            System.out.println(%0A                    %22At least nothing can be taken from a locked container!%22);%0A        %7D%0A        return contents;%0A    %7D%0A%0A%7D%0A

Create UnitTestedLockableContainer.java