StringCase either(@NotNull StringCase other) {
      ThreeState hasLower = myHasLower == ThreeState.NO && other.myHasLower == ThreeState.NO ? ThreeState.NO :
                            myHasLower == ThreeState.YES && other.myHasLower == ThreeState.YES ? ThreeState.YES : ThreeState.UNSURE;
      ThreeState hasUpper = myHasUpper == ThreeState.NO && other.myHasUpper == ThreeState.NO ? ThreeState.NO :
                            myHasUpper == ThreeState.YES && other.myHasUpper == ThreeState.YES ? ThreeState.YES : ThreeState.UNSURE;
      return new StringCase(hasLower, hasUpper);
    }
StringCase either(@NotNull StringCase other)