/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.iwave.ext.windows.winrm.wmi; import com.iwave.ext.windows.model.wmi.MSClusterNetworkInterface; import com.iwave.ext.windows.winrm.WinRMConstants; import com.iwave.ext.windows.winrm.WinRMEnumerateOperation; import com.iwave.ext.windows.winrm.WinRMTarget; import com.iwave.ext.xml.XmlUtils; import org.w3c.dom.Element; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpression; import java.util.List; public class ListClusterNetworkInterfaceQuery extends WinRMEnumerateOperation<MSClusterNetworkInterface> { public static final String NETWORK_INTERFACE_SERVICES_URI = WinRMConstants.WMI_BASE_URI + "root/mscluster/MSCluster_NetworkInterface"; private static final XPath XPATH = XmlUtils.createXPath("ns=" + NETWORK_INTERFACE_SERVICES_URI); private static final XPathExpression SERVICE_EXPR = XmlUtils.compileXPath(XPATH, "ns:MSCluster_NetworkInterface"); private static final XPathExpression NODE_EXPR = XmlUtils.compileXPath(XPATH, "ns:Node"); private static final XPathExpression IPADDRESS_EXPR = XmlUtils.compileXPath(XPATH, "ns:Address"); private static final XPathExpression NETWORK_EXPR = XmlUtils.compileXPath(XPATH, "ns:Network"); private static final XPathExpression NAME_EXPR = XmlUtils.compileXPath(XPATH, "ns:Name"); public ListClusterNetworkInterfaceQuery(WinRMTarget target) { super(target, NETWORK_INTERFACE_SERVICES_URI); } @Override protected void processItems(Element items, List<MSClusterNetworkInterface> results) { for (Element item : XmlUtils.selectElements(SERVICE_EXPR, items)) { MSClusterNetworkInterface network = new MSClusterNetworkInterface(); network.setNode(getNode(item)); network.setIpaddress(getIpAddress(item)); network.setNetwork(getNetwork(item)); network.setName(getName(item)); results.add(network); } } protected String getName(Element item) { return XmlUtils.selectText(NAME_EXPR, item); } protected String getNode(Element item) { return XmlUtils.selectText(NODE_EXPR, item); } protected String getIpAddress(Element item) { return XmlUtils.selectText(IPADDRESS_EXPR, item); } protected String getNetwork(Element item) { return XmlUtils.selectText(NETWORK_EXPR, item); } }