@Override public TransferResult<V,S> visitTernaryExpression(TernaryExpressionNode n,TransferInput<V,S> p){
  TransferResult<V,S> result=super.visitTernaryExpression(n,p);
  S store=result.getRegularStore();
  V thenValue=p.getValueOfSubNode(n.getThenOperand());
  V elseValue=p.getValueOfSubNode(n.getElseOperand());
  V resultValue=null;
  if (thenValue != null && elseValue != null) {
    resultValue=thenValue.leastUpperBound(elseValue);
  }
  return new RegularTransferResult<>(finishValue(resultValue,store),store);
}

@ Override public TransferResult < V , S > visitTernaryExpression ( TernaryExpressionNode n , TransferInput < V , S > p ) { TransferResult < V , S > result = super . visitTernaryExpression ( n , p ) ; S store = result . getRegularStore ( ) ; V thenValue = p . getValueOfSubNode ( n . getThenOperand ( ) ) ; V elseValue = p . getValueOfSubNode ( n . getElseOperand ( ) ) ; V resultValue = null ; if ( thenValue != null && elseValue != null ) { resultValue = thenValue . leastUpperBound ( elseValue ) ; } return new RegularTransferResult < > ( finishValue ( resultValue , store ) , store ) ; }
the resulting abstract value is the merge of the ' then ' and ' else ' branch .
