📄 dvrfiletodom.java
字号:
/*
* This software consists of voluntary contributions made by Vovida
* Networks, Inc. and many individuals on behalf of Vovida Networks,
* Inc. For more information on Vovida Networks, Inc., please see
* <http://www.vovida.org/>.
*
*/
package vocal.data;
import vocal.ui.AdministrativeLogin;
import vocal.comm.VPPException;
import vocal.comm.VPPNoSuchFileException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Node;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import java.util.Vector;
import java.io.IOException;
import java.io.StringReader;
/**
* $RCSfile: FileToDOM.java,v $
*
* @author $Author: bko $, $Date: 2002/09/26 01:14:01 $
* @version $Revision: 1.33 $
*/
public class DvrFileToDOM implements DataDefaults, TreeNodeTypes
{
private static Document baseDocument;
private static Element rootElement;
private static Element systemElement;
private static Element serversElement;
private static Element uaclientElement;
public static Document readFiles()
throws NoSuchNodeException, IOException, SAXException, VPPException
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = null;
try
{
parser = dbf.newDocumentBuilder();
}
catch(ParserConfigurationException e1)
{
e1.printStackTrace();
return null;
}
StringReader baseReader = new StringReader(ACC_BASE_XML);
baseDocument = parser.parse(new InputSource(baseReader));
rootElement = baseDocument.getDocumentElement();
//systemElement = XMLUtils.getChildByName(rootElement, "system");
//serversElement = XMLUtils.getChildByName(rootElement, "servers");
//uaclientElement = XMLUtils.getChildByName(rootElement, "uaclient");
// get the global config
Document globalConfigDoc = null;
try
{
// get the list of DvrClient
Document dvrDoc = null;
try
{
System.out.println("looking for " + SYSTEM_DIR
+ LIST_OF_DVR_CLIENT_FILE);
StringReader reader =
new StringReader(AdministrativeLogin.getConnection().doGet(SYSTEM_DIR,
LIST_OF_DVR_CLIENT_FILE));
try
{
dvrDoc = parser.parse(new InputSource(reader));
}
catch (SAXException e)
{
System.out.println("bad XML: " + reader.toString());
e.printStackTrace();
}
}
catch (VPPNoSuchFileException e)
{
System.out.println("Creating new " + LIST_OF_DVR_CLIENT_FILE);
StringReader reader = new StringReader(LIST_OF_DVR_CLIENT_XML);
dvrDoc = parser.parse(new InputSource(reader));
DOMToFile.writeFileFromNode(dvrDoc.getDocumentElement(), DVR_CLIENT,
SYSTEM_DIR, LIST_OF_DVR_CLIENT_FILE);
}
Element dvrNode =
(Element) (baseDocument.importNode(dvrDoc.getDocumentElement(),
true));
dvrNode.setAttribute("fileDir", SYSTEM_DIR);
dvrNode.setAttribute("fileName", LIST_OF_DVR_CLIENT_FILE);
dvrNode.setAttribute("fileType", Integer.toString(DVR_CLIENT));
rootElement.appendChild(dvrNode);
fillInClient(dvrNode, DVR_DIR);
// get the list of EnvClient
Document envDoc = null;
try
{
System.out.println("looking for " + SYSTEM_DIR
+ LIST_OF_ENV_CLIENT_FILE);
StringReader reader =
new StringReader(AdministrativeLogin.getConnection().doGet(SYSTEM_DIR,
LIST_OF_ENV_CLIENT_FILE));
try
{
envDoc = parser.parse(new InputSource(reader));
}
catch (SAXException e)
{
System.out.println("bad XML: " + reader.toString());
e.printStackTrace();
}
}
catch (VPPNoSuchFileException e)
{
System.out.println("Creating new " + LIST_OF_ENV_CLIENT_FILE);
StringReader reader = new StringReader(LIST_OF_ENV_CLIENT_XML);
envDoc = parser.parse(new InputSource(reader));
DOMToFile.writeFileFromNode(envDoc.getDocumentElement(), ENV_CLIENT,
SYSTEM_DIR, LIST_OF_ENV_CLIENT_FILE);
}
Element envNode =
(Element) (baseDocument.importNode(envDoc.getDocumentElement(),
true));
envNode.setAttribute("fileDir", SYSTEM_DIR);
envNode.setAttribute("fileName", LIST_OF_ENV_CLIENT_FILE);
envNode.setAttribute("fileType", Integer.toString(ENV_CLIENT));
rootElement.appendChild(envNode);
fillInClient(envNode, ENV_DIR);
/*/
Element dvr1 = baseDocument.createElement("DVR");
uaclientElement.appendChild(dvr1);
Element dvr11 = baseDocument.createElement("视频机1");
dvr1.appendChild(dvr11);
Element env2 = baseDocument.createElement("ENV");
uaclientElement.appendChild(env2);
Element env22 = baseDocument.createElement("环境机1");
env2.appendChild(env22);
*/
// fill in the cdr hosts
//fillInServers(dvrNode, DVR_DIR);
//fillInServers(heartbeatNode, HEARTBEAT_DIR);
}
catch (FailedToWriteFileException ftwfex)
{
// not much we can do about it.
}
return baseDocument;
}
/**
*
* @param serversElement
* @param dirName
*
* @throws IOException
*/
private static void fillInServers(Element serversElement,
String dirName) throws IOException, VPPException
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = null;
try
{
parser = dbf.newDocumentBuilder();
}
catch(ParserConfigurationException e1)
{
e1.printStackTrace();
return;
}
NodeList nodes = serversElement.getElementsByTagName("server");
Vector vector = new Vector(nodes.getLength());
for (int i = 0; i < nodes.getLength(); i++)
{
vector.addElement(nodes.item(i));
}
for (int i = 0; i < vector.size(); i++)
{
Element serverElement = (Element) vector.elementAt(i);
Node serverParent = serverElement.getParentNode();
String serverFileName = (serverElement.getAttribute("host") + ":"
+ serverElement.getAttribute("port"));
System.out.println("looking for " + serverFileName);
StringReader reader =
new StringReader(AdministrativeLogin.getConnection().doGet(dirName,
serverFileName));
try
{
Document serverDocument = parser.parse(new InputSource(reader));
Element serverNode = (Element) (baseDocument.importNode
(serverDocument.getDocumentElement(), true));
serverNode.setAttribute("fileDir", dirName);
serverNode.setAttribute("fileName", serverFileName);
serverNode.setAttribute("fileType", Integer.toString(FEATURE_SERVER));
//System.out.println("___________________________________________________________________");
//System.out.println(serverNode.toString());
//System.out.println(serverElement.toString());
serverParent.replaceChild(serverNode, serverElement);
}
catch (SAXException e)
{
System.out.println("bad XML: " + reader.toString());
e.printStackTrace();
}
}
}
private static void fillInClient(Element uaclientElement,
String dirName) throws IOException, VPPException
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = null;
try
{
parser = dbf.newDocumentBuilder();
}
catch(ParserConfigurationException e1)
{
e1.printStackTrace();
return;
}
NodeList nodes = uaclientElement.getElementsByTagName("server");
Vector vector = new Vector(nodes.getLength());
for (int i = 0; i < nodes.getLength(); i++)
{
vector.addElement(nodes.item(i));
}
for (int i = 0; i < vector.size(); i++)
{
Element uaElement = (Element) vector.elementAt(i);
Node uaParent = uaElement.getParentNode();
String uaFileName = (uaElement.getAttribute("host") + ":"
+ uaElement.getAttribute("port"));
System.out.println("looking for " + uaFileName);
StringReader reader =
new StringReader(AdministrativeLogin.getConnection().doGet(dirName,
uaFileName));
try
{
Document uaDocument = parser.parse(new InputSource(reader));
Element uaNode = (Element) (baseDocument.importNode
(uaDocument.getDocumentElement(), true));
uaNode.setAttribute("fileDir", dirName);
uaNode.setAttribute("fileName", uaFileName);
uaNode.setAttribute("fileType", Integer.toString(FEATURE_SERVER));
//System.out.println(uaNode.toString());
//System.out.println(uaElement.toString());
uaParent.replaceChild(uaNode, uaElement);
}
catch (SAXException e)
{
System.out.println("bad XML: " + reader.toString());
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -