jaxen-1.1.1.jar
登录
|
jaxen:jaxen:1.1.1
META-INF
org
w3c
jaxen
NamedAccessNavigator.java
jdom
javabean
expr
NamespaceContext.java
saxpath
FunctionCallException.java
UnresolvableException.java
SimpleFunctionContext.java
xom
XPathSyntaxException.java
ContextSupport.java
dom4j
Navigator.java
QualifiedName.java
XPathFunctionContext.java
FunctionContext.java
util
DefaultNavigator.java
VariableContext.java
Function.java
JaxenException.java
JaxenRuntimeException.java
BaseXPath.java
UnsupportedAxisException.java
function
SimpleVariableContext.java
JaxenConstants.java
JaxenHandler.java
pattern
NodeTypeTest.java
LocationPathPattern.java
PatternParser.java
NameTest.java
NodeTest.java
TextNodeTest.java
Pattern.java
AnyNodeTest.java
AnyChildNodeTest.java
UnionPattern.java
NoNodeTest.java
PatternHandler.java
NamespaceTest.java
SimpleNamespaceContext.java
dom
XPath.java
Context.java
LocationPathPattern.java
清空
类结构
/* */ package org.jaxen.pattern; /* */ /* */ import java.util.
ArrayList
; /* */ import java.util.
Iterator
; /* */ import java.util.
List
; /* */ import org.jaxen.
Context
; /* */ import org.jaxen.
JaxenException
; /* */ import org.jaxen.
Navigator
; /* */ import org.jaxen.expr.
FilterExpr
; /* */ import org.jaxen.util.
SingletonList
; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class
LocationPathPattern
/* */ extends
Pattern
/* */ { /* 71 */ private
NodeTest
nodeTest
=
AnyNodeTest
.
getInstance
(); /* */ /* */ /* */ private
Pattern
parentPattern
; /* */ /* */ /* */ private
Pattern
ancestorPattern
; /* */ /* */ /* */ private
List
filters
; /* */ /* */ /* */ private boolean
absolute
; /* */ /* */ /* */ /* */ public
LocationPathPattern
() {} /* */ /* */ /* */ /* */ public
LocationPathPattern
(
NodeTest
nodeTest
) { /* 92 */ this.
nodeTest
=
nodeTest
; /* */ } /* */ /* */ /* */ public
Pattern
simplify
() { /* 97 */ if (this.
parentPattern
!= null) /* */ { /* 99 */ this.
parentPattern
= this.
parentPattern
.
simplify
(); /* */ } /* 101 */ if (this.
ancestorPattern
!= null) /* */ { /* 103 */ this.
ancestorPattern
= this.
ancestorPattern
.
simplify
(); /* */ } /* 105 */ if (this.
filters
== null) { /* */ /* 107 */ if (this.
parentPattern
== null && this.
ancestorPattern
== null) /* */ { /* 109 */ return this.
nodeTest
; /* */ } /* 111 */ if (this.
parentPattern
!= null && this.
ancestorPattern
== null) /* */ { /* 113 */ if (this.
nodeTest
instanceof
AnyNodeTest
) /* */ { /* 115 */ return this.
parentPattern
; /* */ } /* */ } /* */ } /* 119 */ return this; /* */ } /* */ /* */ /* */ /* */ /* */ public void
addFilter
(
FilterExpr
filter
) { /* 126 */ if (this.
filters
== null) /* */ { /* 128 */ this.
filters
= new
ArrayList
(); /* */ } /* 130 */ this.
filters
.
add
(
filter
); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public void
setParentPattern
(
Pattern
parentPattern
) { /* 138 */ this.
parentPattern
=
parentPattern
; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public void
setAncestorPattern
(
Pattern
ancestorPattern
) { /* 146 */ this.
ancestorPattern
=
ancestorPattern
; /* */ } /* */ /* */ /* */ /* */ /* */ public void
setNodeTest
(
NodeTest
nodeTest
) throws
JaxenException
{ /* 153 */ if (this.
nodeTest
instanceof
AnyNodeTest
) { /* */ /* 155 */ this.
nodeTest
=
nodeTest
; /* */ } /* */ else { /* */ /* 159 */ throw new
JaxenException
("Attempt to overwrite nodeTest: " + this.
nodeTest
+ " with: " +
nodeTest
); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ public boolean
matches
(
Object
node
,
Context
context
) throws
JaxenException
{ /* 167 */
Navigator
navigator
=
context
.
getNavigator
(); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 175 */ if (!this.
nodeTest
.
matches
(
node
,
context
)) /* */ { /* 177 */ return false; /* */ } /* */ /* 180 */ if (this.
parentPattern
!= null) { /* */ /* 182 */
Object
parent
=
navigator
.
getParentNode
(
node
); /* 183 */ if (
parent
== null) /* */ { /* 185 */ return false; /* */ } /* 187 */ if (!this.
parentPattern
.
matches
(
parent
,
context
)) /* */ { /* 189 */ return false; /* */ } /* */ } /* */ /* 193 */ if (this.
ancestorPattern
!= null) { /* 194 */
Object
ancestor
=
navigator
.
getParentNode
(
node
); /* */ /* */ /* 197 */ while (!this.
ancestorPattern
.
matches
(
ancestor
,
context
)) { /* */ /* */ /* */ /* 201 */ if (
ancestor
== null) /* */ { /* 203 */ return false; /* */ } /* 205 */ if (
navigator
.
isDocument
(
ancestor
)) /* */ { /* 207 */ return false; /* */ } /* 209 */
ancestor
=
navigator
.
getParentNode
(
ancestor
); /* */ } /* */ } /* */ /* 213 */ if (this.
filters
!= null) { /* */ /* 215 */
SingletonList
singletonList
= new
SingletonList
(
node
); /* */ /* 217 */
context
.
setNodeSet
((
List
)
singletonList
); /* */ /* */ /* */ /* 221 */ boolean
answer
= true; /* */ /* 223 */ for (
Iterator
iter
= this.
filters
.
iterator
();
iter
.
hasNext
(); ) { /* */ /* 225 */
FilterExpr
filter
=
iter
.
next
(); /* */ /* 227 */ if (!
filter
.
asBoolean
(
context
)) { /* */ /* 229 */
answer
= false; /* */ /* */ break; /* */ } /* */ } /* */ /* 235 */
context
.
setNodeSet
((
List
)
singletonList
); /* */ /* 237 */ return
answer
; /* */ } /* 239 */ return true; /* */ } /* */ /* */ /* */ public double
getPriority
() { /* 244 */ if (this.
filters
!= null) /* */ { /* 246 */ return 0.5D; /* */ } /* 248 */ return this.
nodeTest
.
getPriority
(); /* */ } /* */ /* */ /* */ /* */ public short
getMatchType
() { /* 254 */ return this.
nodeTest
.
getMatchType
(); /* */ } /* */ /* */ /* */ public
String
getText
() { /* 259 */
StringBuffer
buffer
= new
StringBuffer
(); /* 260 */ if (this.
absolute
) /* */ { /* 262 */
buffer
.
append
("/"); /* */ } /* 264 */ if (this.
ancestorPattern
!= null) { /* */ /* 266 */
String
text
= this.
ancestorPattern
.
getText
(); /* 267 */ if (
text
.
length
() > 0) { /* */ /* 269 */
buffer
.
append
(
text
); /* 270 */
buffer
.
append
("//"); /* */ } /* */ } /* 273 */ if (this.
parentPattern
!= null) { /* */ /* 275 */
String
text
= this.
parentPattern
.
getText
(); /* 276 */ if (
text
.
length
() > 0) { /* */ /* 278 */
buffer
.
append
(
text
); /* 279 */
buffer
.
append
("/"); /* */ } /* */ } /* 282 */
buffer
.
append
(this.
nodeTest
.
getText
()); /* */ /* 284 */ if (this.
filters
!= null) { /* */ /* 286 */
buffer
.
append
("["); /* 287 */ for (
Iterator
iter
= this.
filters
.
iterator
();
iter
.
hasNext
(); ) { /* */ /* 289 */
FilterExpr
filter
=
iter
.
next
(); /* 290 */
buffer
.
append
(
filter
.
getText
()); /* */ } /* 292 */
buffer
.
append
("]"); /* */ } /* 294 */ return
buffer
.
toString
(); /* */ } /* */ /* */ /* */ public
String
toString
() { /* 299 */ return super.toString() + "[ absolute: " + this.
absolute
+ " parent: " + this.
parentPattern
+ " ancestor: " + this.
ancestorPattern
+ " filters: " + this.
filters
+ " nodeTest: " + this.
nodeTest
+ " ]"; /* */ } /* */ /* */ /* */ /* */ /* */ public boolean
isAbsolute
() { /* 306 */ return this.
absolute
; /* */ } /* */ /* */ /* */ public void
setAbsolute
(boolean
absolute
) { /* 311 */ this.
absolute
=
absolute
; /* */ } /* */ /* */ /* */ public boolean
hasAnyNodeTest
() { /* 316 */ return this.
nodeTest
instanceof
AnyNodeTest
; /* */ } /* */ } /* Location: /Users/tommy/.m2/repository/jaxen/jaxen/1.1.1/jaxen-1.1.1.jar!/org/jaxen/pattern/LocationPathPattern.class * Java compiler version: 2 (46.0) * JD-Core Version: 1.1.3 */
查找资源
Jre/Lib
输入类名或文件名
类结构窗口