LPS-33307 SF.

1) Use '_' prefix only to name private members.
2) Use protected instead of public if only member visibility in subclasses is required.
LPS-33928 Prevent selecting itself as a parent group when searching (we need to preserve the groupId parameter)
LPS-33982 Exclude current liveGroup from parent group candidates
LPS-33982 Excluding groups with staging enabled causes that excludedGroupIds has more than one element, so it's needed to update the cache: with only one group excluded (self group), and with two groups excluded (self and live group)
LPS-33982 Apply same pattern to cache list param values
LPS-33982 Validate that a group cannot has its live group as parent
LPS-33982 Improve integration tests for parent groups and staging
LPS-33982 Add integration tests to check that a group cannot have its staging group, or itself, as parent
LPS-33982 Source formatting - we should either exclude the liveGroupId (in case we have staging enabled) or the current group (if we don't have staging)
LPS-33982 We should call get instead of fetch because if the parentGroupId doesn't exist, we should throw NoSuch*Exception (the groupId may not exist yet because we are calling validate before creating group)
LPS-33982 Group will always have staging group when we enable staging. Removing the if is safer because otherwise the test may not fail although it should.
LPS-33982 Source formatting