private void evaluateConnectionType() {
        Type destinationType = destination.type;

        switch (source.type) {
            case SHOULDER:
                connectionType = destinationType == ARM_SEGMENT ? ROBOT_ARM_BASE_CONSTRAINT : FIXED_CONSTRAINT;
                break;
            case ARM_SEGMENT:
                switch (destinationType) {
                    case ARM_SEGMENT:
                        connectionType = ROBOT_ARM_JOINT_CONSTRAINT;
                        break;
                    case SHOULDER:
                        connectionType = ROBOT_ARM_BASE_CONSTRAINT;
                        break;
                    default:
                        connectionType = FIXED_CONSTRAINT;
                }
                break;
            case INPUT:
                connectionType = destinationType == NETWORK ? SPRING_CONSTRAINT : FIXED_CONSTRAINT;
                break;
            case ELBOW:
                connectionType = FIXED_CONSTRAINT;
                break;
            case HAND:
                connectionType = FIXED_CONSTRAINT;
                break;
            case NETWORK:
                connectionType = SPRING_CONSTRAINT;
                break;
            default:
                throw new IllegalStateException("The given masses of the type "
                        + source.getType().toString() + " (source) respectively "
                        + destinationType + " (destination) cannot be connected "
                        + "via springs.");
        }

    }