public void isPossible(final int[] code)
    {
        // Creates a new thread
        thread = new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                // Checks if there are no Inputs.
                if (mastermind.getRowSize() == 0)
                {
                    // Accepts the Input code[] as possible
                    mastermind.finishCheck(code, true);
                    return;
                }

                try
                {
                    // Calculates the Secret-Code set.
                    calculatePossibilities();
                }
                catch (InterruptKIException e)
                {
                    return;
                }
                // Checks if code[] is within the Secret-Code set
                int i;
                for (Integer[] arrayListElement : arrayList)
                {
                    if (thread.isInterrupted())
                        return;

                    for (i = 0; i < codeLength; i++)
                    {
                        if (!SetCode.contains(arrayListElement[i], code[i]))
                        {
                            break;
                        }
                    }

                    if (i == codeLength)
                    {
                        // code[] is within the Secret-Code set
                        // Accepts the Input code[] as possible
                        mastermind.finishCheck(code, true);
                        return;
                    }
                }

                // code[] is not within the Secret-Code set
                // Accepts the Input code[] as not possible
                mastermind.finishCheck(code, false);
            }
        });

        thread.start();
    }