电话中心管理软件代码.docx

上传人:b****6 文档编号:8246366 上传时间:2023-01-30 格式:DOCX 页数:85 大小:33.30KB
下载 相关 举报
电话中心管理软件代码.docx_第1页
第1页 / 共85页
电话中心管理软件代码.docx_第2页
第2页 / 共85页
电话中心管理软件代码.docx_第3页
第3页 / 共85页
电话中心管理软件代码.docx_第4页
第4页 / 共85页
电话中心管理软件代码.docx_第5页
第5页 / 共85页
点击查看更多>>
下载资源
资源描述

电话中心管理软件代码.docx

《电话中心管理软件代码.docx》由会员分享,可在线阅读,更多相关《电话中心管理软件代码.docx(85页珍藏版)》请在冰豆网上搜索。

电话中心管理软件代码.docx

电话中心管理软件代码

packageorg.Telephone.Administration;

importjava.util.regex.Pattern;

importorg.Telephone.nodes.Document;

importorg.Telephone.nodes.Document.OutputSettings;

importorg.Telephone.nodes.Element;

importorg.Telephone.parser.Parser;

importorg.Telephone.select.Elements;

packageorg.Telephone.nodes;

importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.LinkedList;

importjava.util.List;

importorg.Telephone.Administration.StringUtil;

importorg.Telephone.Administration.Validate;

importorg.Telephone.parser.Parser;

importorg.Telephone.select.NodeTraversor;

importorg.Telephone.select.NodeVisitor;

publicabstractclassNode

implementsCloneable

{

privatestaticfinalListEMPTY_NODES=Collections.emptyList();

NodeparentNode;

ListchildNodes;

Attributesattributes;

StringbaseUri;

intsiblingIndex;

protectedNode(StringbaseUri,Attributesattributes)

{

Validate.notNull(baseUri);

Validate.notNull(attributes);

this.childNodes=EMPTY_NODES;

this.baseUri=baseUri.trim();

this.attributes=attributes;

}

protectedNode(StringbaseUri){

this(baseUri,newAttributes());

}

protectedNode()

{

this.childNodes=EMPTY_NODES;

this.attributes=null;

}

publicabstractStringnodeName();

publicStringattr(StringattributeKey)

{

Validate.notNull(attributeKey);

if(this.attributes.hasKey(attributeKey))

returnthis.attributes.get(attributeKey);

if(attributeKey.toLower().startsWith("abs:

"))

returnabsUrl(attributeKey.substring("abs:

".length()));

return"";

}

publicAttributesattributes()

{

returnthis.attributes;

}

publicNodeattr(StringattributeKey,StringattributeValue)

{

this.attributes.put(attributeKey,attributeValue);

returnthis;

}

publicbooleanhasAttr(StringattributeKey)

{

Validate.notNull(attributeKey);

if(attributeKey.startsWith("abs:

")){

Stringkey=attributeKey.substring("abs:

".length());

if((this.attributes.hasKey(key))&&(!

absUrl(key).equals("")))

returntrue;

}

returnthis.attributes.hasKey(attributeKey);

}

publicNoderemoveAttr(StringattributeKey)

{

Validate.notNull(attributeKey);

this.attributes.remove(attributeKey);

returnthis;

}

publicStringbaseUri()

{

returnthis.baseUri;

}

publicvoidsetBaseUri(finalStringbaseUri)

{

Validate.notNull(baseUri);

traverse(newNodeVisitor(){

publicvoidhead(Nodenode,intdepth){

node.baseUri=baseUri;

}

publicvoidtail(Nodenode,intdepth)

{

}

});

}

publicStringabsUrl(StringattributeKey)

{

Validate.notEmpty(attributeKey);

if(!

hasAttr(attributeKey)){

return"";

}

returnStringUtil.resolve(this.baseUri,attr(attributeKey));

}

publicNodechildNode(intindex)

{

return(Node)this.childNodes.get(index);

}

publicListchildNodes()

{

returnCollections.unmodifiableList(this.childNodes);

}

publicListchildNodesCopy()

{

Listchildren=newArrayList(this.childNodes.size());

for(Nodenode:

this.childNodes){

children.add(node.clone());

}

returnchildren;

}

publicfinalintchildNodeSize()

{

returnthis.childNodes.size();

}

protectedNode[]childNodesAsArray(){

return(Node[])this.childNodes.toArray(newNode[childNodeSize()]);

}

publicNodeparent()

{

returnthis.parentNode;

}

publicfinalNodeparentNode()

{

returnthis.parentNode;

}

publicDocumentownerDocument()

{

if((thisinstanceofDocument))

return(Document)this;

if(this.parentNode==null){

returnnull;

}

returnthis.parentNode.ownerDocument();

}

publicvoidremove()

{

Validate.notNull(this.parentNode);

this.parentNode.removeChild(this);

}

publicNodebefore(Stringhtml)

{

addSiblingHtml(this.siblingIndex,html);

returnthis;

}

publicNodebefore(Nodenode)

{

Validate.notNull(node);

Validate.notNull(this.parentNode);

this.parentNode.addChildren(this.siblingIndex,newNode[]{node});

returnthis;

}

publicNodeafter(Stringhtml)

{

addSiblingHtml(this.siblingIndex+1,html);

returnthis;

}

publicNodeafter(Nodenode)

{

Validate.notNull(node);

Validate.notNull(this.parentNode);

this.parentNode.addChildren(this.siblingIndex+1,newNode[]{node});

returnthis;

}

privatevoidaddSiblingHtml(intindex,Stringhtml){

Validate.notNull(html);

Validate.notNull(this.parentNode);

Elementcontext=(parent()instanceofElement)?

(Element)parent():

null;

Listnodes=Parser.parseFragment(html,context,baseUri());

this.parentNode.addChildren(index,(Node[])nodes.toArray(newNode[nodes.size()]));

}

publicNodewrap(Stringhtml)

{

Validate.notEmpty(html);

Elementcontext=(parent()instanceofElement)?

(Element)parent():

null;

ListwrapChildren=Parser.parseFragment(html,context,baseUri());

NodewrapNode=(Node)wrapChildren.get(0);

if((wrapNode==null)||(!

(wrapNodeinstanceofElement))){

returnnull;

}

Elementwrap=(Element)wrapNode;

Elementdeepest=getDeepChild(wrap);

this.parentNode.replaceChild(this,wrap);

deepest.addChildren(newNode[]{this});

if(wrapChildren.size()>0){

for(inti=0;i

Noderemainder=(Node)wrapChildren.get(i);

remainder.parentNode.removeChild(remainder);

wrap.appendChild(remainder);

}

}

returnthis;

}

publicNodeunwrap()

{

Validate.notNull(this.parentNode);

NodefirstChild=this.childNodes.size()>0?

(Node)this.childNodes.get(0):

null;

this.parentNode.addChildren(this.siblingIndex,childNodesAsArray());

remove();

returnfirstChild;

}

privateElementgetDeepChild(Elementel){

Listchildren=el.children();

if(children.size()>0){

returngetDeepChild((Element)children.get(0));

}

returnel;

}

publicvoidreplaceWith(Nodein)

{

Validate.notNull(in);

Validate.notNull(this.parentNode);

this.parentNode.replaceChild(this,in);

}

protectedvoidsetParentNode(NodeparentNode){

if(this.parentNode!

=null)

this.parentNode.removeChild(this);

this.parentNode=parentNode;

}

protectedvoidreplaceChild(Nodeout,Nodein){

Validate.isTrue(out.parentNode==this);

Validate.notNull(in);

if(in.parentNode!

=null){

in.parentNode.removeChild(in);

}

intindex=out.siblingIndex;

this.childNodes.set(index,in);

in.parentNode=this;

in.setSiblingIndex(index);

out.parentNode=null;

}

protectedvoidremoveChild(Nodeout){

Validate.isTrue(out.parentNode==this);

intindex=out.siblingIndex;

this.childNodes.remove(index);

reindexChildren(index);

out.parentNode=null;

}

protectedvoidaddChildren(Node[]children)

{

for(Nodechild:

children){

reparentChild(child);

ensureChildNodes();

this.childNodes.add(child);

child.setSiblingIndex(this.childNodes.size()-1);

}

}

protectedvoidaddChildren(intindex,Node[]children){

Validate.noNullElements(children);

for(inti=children.length-1;i>=0;i--){

Nodein=children[i];

reparentChild(in);

ensureChildNodes();

this.childNodes.add(index,in);

}

reindexChildren(index);

}

protectedvoidensureChildNodes(){

if(this.childNodes==EMPTY_NODES)

this.childNodes=newArrayList(4);

}

protectedvoidreparentChild(Nodechild)

{

if(child.parentNode!

=null)

child.parentNode.removeChild(child);

child.setParentNode(this);

}

privatevoidreindexChildren(intstart){

for(inti=start;i

((Node)this.childNodes.get(i)).setSiblingIndex(i);

}

publicListsiblingNodes()

{

if(this.parentNode==null){

returnCollections.emptyList();

}

Listnodes=this.parentNode.childNodes;

Listsiblings=newArrayList(nodes.size()-1);

for(Nodenode:

nodes)

if(node!

=this)

siblings.add(node);

returnsiblings;

}

publicNodenextSibling()

{

if(this.parentNode==null){

returnnull;

}

Listsiblings=this.parentNode.childNodes;

intindex=this.siblingIndex+1;

if(siblings.size()>index){

return(Node)siblings.get(index);

}

returnnull;

}

publicNodepreviousSibling()

{

if(this.parentNode==null){

returnnull;

}

if(this.siblingIndex>0){

return(Node)this.parentNode.childNodes.get(this.siblingIndex-1);

}

returnnull;

}

publicintsiblingIndex()

{

returnthis.siblingIndex;

}

protectedvoidsetSiblingIndex(intsiblingIndex){

this.siblingIndex=siblingIndex;

}

publicNodetraverse(NodeVisitornodeVisitor)

{

Validate.notNull(nodeVisitor);

NodeTraversortraversor=newNodeTraversor(nodeVisitor);

traversor.traverse(this);

returnthis;

}

publicStringouterHtml()

{

StringBuilderaccum=newStringBuilder(128);

outerHtml(accum);

returnaccum.toString();

}

protectedvoidouterHtml(StringBuilderaccum){

newNodeTraversor(newOuterHtmlVisitor(accum,getOutputSettings())).traverse(this);

}

Document.OutputSettingsgetOutputSettings()

{

returnownerDocument()!

=null?

ownerDocument().outputSettings():

newDocument("").outputSettings();

}

abstractvoidouterHtmlHead(StringBuilderparamStringBuilder,intparamInt,Document.OutputSettingsparamOutputSettings);

abstractvoidouterHtmlTail(StringBuilderparamStringBuilder,intparamInt,Document.OutputSettingsparamOutputSettings);

publicStringtoString()

{

returnouterHtml();

}

protectedvoidindent(StringBuilderaccum,intdepth,Document.OutputSettingsout){

accum.append("\n").append(StringUtil.padding(depth*out.indentAmount()));

}

publicbooleanequals(Objecto)

{

if(this==o)returntrue;

if((o==null)||(getClass()!

=o.getClass()))returnfalse;

Nodenode=(Node)o;

if(this.childNodes!

=null?

!

this.childNodes.equals(node.childNodes):

node.childNodes!

=null)returnfalse;

returnthis.attributes!

=null?

this.attributes.equals(node.attributes):

node.attribut

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1