private static PolicyNotification extractPolicyNotification(String xml) throws PolicyEvaluationException {
  PolicyNotification policyNotification=null;
  try {
    String notificationDataBlock=getNotificationDataBlock(xml);
    if (notificationDataBlock != null) {
      Document doc=XMLUtils.getXMLDocument(new ByteArrayInputStream(notificationDataBlock.getBytes()));
      Node rootNode=XMLUtils.getRootNode(doc,NODE_POLICY_SERVICE);
      if (rootNode != null) {
        Node notificationNode=XMLUtils.getChildNode(rootNode,NODE_POLICY_NOTIFICATION);
        if (notificationNode != null) {
          policyNotification=PolicyNotification.parseXML(notificationNode);
        }
 else {
          debug.error("ResultsCacheUtil." + "extractPolicyNotification():" + "cannot find notification node");
          throw new PolicyEvaluationException(ResBundleUtils.rbName,"invalid_root_element",null,null);
        }
      }
 else {
        debug.error("ResultsCacheUtil." + "extractPolicyNotification():");
      }
    }
 else {
      debug.error("ResultsCacheUtil:" + "extractPolicyNotification():" + "notification data block is null");
    }
  }
 catch (  Exception xe) {
    debug.error("ResultsCacheUtil.extractPolicyNotification():",xe);
    throw new PolicyEvaluationException(ResBundleUtils.rbName,"xml_parsing_error",null,xe);
  }
  return policyNotification;
}

private static PolicyNotification extractPolicyNotification ( String xml ) throws PolicyEvaluationException { PolicyNotification policyNotification = null ; try { String notificationDataBlock = getNotificationDataBlock ( xml ) ; if ( notificationDataBlock != null ) { Document doc = XMLUtils . getXMLDocument ( new ByteArrayInputStream ( notificationDataBlock . getBytes ( ) ) ) ; Node rootNode = XMLUtils . getRootNode ( doc , NODE_POLICY_SERVICE ) ; if ( rootNode != null ) { Node notificationNode = XMLUtils . getChildNode ( rootNode , NODE_POLICY_NOTIFICATION ) ; if ( notificationNode != null ) { policyNotification = PolicyNotification . parseXML ( notificationNode ) ; } else { debug . error ( "ResultsCacheUtil." + "extractPolicyNotification():" + "cannot find notification node" ) ; throw new PolicyEvaluationException ( ResBundleUtils . rbName , "invalid_root_element" , null , null ) ; } } else { debug . error ( "ResultsCacheUtil." + "extractPolicyNotification():" ) ; } } else { debug . error ( "ResultsCacheUtil:" + "extractPolicyNotification():" + "notification data block is null" ) ; } } catch ( Exception xe ) { debug . error ( "ResultsCacheUtil.extractPolicyNotification():" , xe ) ; throw new PolicyEvaluationException ( ResBundleUtils . rbName , "xml_parsing_error" , null , xe ) ; } return policyNotification ; }
returns the notification xml node
