You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2016/04/11 00:48:16 UTC
[05/49] git commit: [flex-asjs] [refs/heads/develop] - descendents
and cleanup
descendents and cleanup
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/3c3a1618
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/3c3a1618
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/3c3a1618
Branch: refs/heads/develop
Commit: 3c3a1618192d4e74ecee9a4b7e5733f5e8523962
Parents: dc52078
Author: Harbs <ha...@in-tools.com>
Authored: Wed Feb 3 22:35:36 2016 +0200
Committer: Harbs <ha...@in-tools.com>
Committed: Wed Feb 3 22:35:36 2016 +0200
----------------------------------------------------------------------
frameworks/projects/XML/as/src/XML.as | 27 +++++++-
frameworks/projects/XML/as/src/XMLList.as | 86 +++++++++++++-------------
2 files changed, 67 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3c3a1618/frameworks/projects/XML/as/src/XML.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/as/src/XML.as b/frameworks/projects/XML/as/src/XML.as
index aad27ce..a59fcf8 100644
--- a/frameworks/projects/XML/as/src/XML.as
+++ b/frameworks/projects/XML/as/src/XML.as
@@ -640,7 +640,7 @@ package
* @return
*
*/
- public function descendants(name:Object = *):XMLList
+ public function descendants(name:Object = "*"):XMLList
{
/*
When the [[Descendants]] method of an XML object x is called with property name P, the following steps are taken:
@@ -657,7 +657,28 @@ package
c. If dq.[[Length]] > 0, call the [[Append]] method of list with argument dq
5. Return list
*/
- return null;
+ var i:int;
+ name = toXMLName(name);
+ var list:XMLList = new XMLList();
+ if(name.isAttribute)
+ {
+ for(i=0;i<_attributes.length;i++)
+ {
+ if(name.matches(_attributes[i].name()))
+ list.appendChild(_attributes[i]);
+ }
+ for(i=0;i<_children.length;i++)
+ {
+ if(_children[i].nodeKind() == "element")
+ {
+ if(name.matches(_children[i].name()))
+ list.appendChild(_children[i]);
+
+ list = list.concat(_children[i].descendants());
+ }
+ }
+ }
+ return list;
}
/**
@@ -667,7 +688,7 @@ package
* @return
*
*/
- public function elements(name:Object = *):XMLList
+ public function elements(name:Object = "*"):XMLList
{
return null;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3c3a1618/frameworks/projects/XML/as/src/XMLList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/as/src/XMLList.as b/frameworks/projects/XML/as/src/XMLList.as
index 8eae698..9e0d2fb 100644
--- a/frameworks/projects/XML/as/src/XMLList.as
+++ b/frameworks/projects/XML/as/src/XMLList.as
@@ -171,10 +171,10 @@ package
public function attribute(attributeName:*):XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].attribute(attributeName);
+ var list:XMLList = _xmlArray[i].attribute(attributeName);
if(list.length())
retVal = retVal.concat(list);
}
@@ -189,10 +189,10 @@ package
public function attributes():XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].attributes();
+ var list:XMLList = _xmlArray[i].attributes();
if(list.length())
retVal = retVal.concat(list);
}
@@ -208,10 +208,10 @@ package
public function child(propertyName:Object):XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].child(propertyName);
+ var list:XMLList = _xmlArray[i].child(propertyName);
if(list.length())
retVal = retVal.concat(list);
}
@@ -226,10 +226,10 @@ package
public function children():XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].children();
+ var list:XMLList = _xmlArray[i].children();
if(list.length)
retVal = retVal.concat(list);
}
@@ -244,10 +244,10 @@ package
public function comments():XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].comments();
+ var list:XMLList = _xmlArray[i].comments();
if(list.length)
retVal = retVal.concat(list);
}
@@ -274,10 +274,10 @@ package
public function contains(value:XML):Boolean
{
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- if(this[i].contains(value))
+ if(_xmlArray[i].contains(value))
return true;
}
return false;
@@ -292,9 +292,9 @@ package
public function copy():XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
- retVal[i] = this[i].copy();
+ retVal[i] = _xmlArray[i].copy();
return retVal;
}
@@ -309,10 +309,10 @@ package
public function descendants(name:Object = *):XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].descendants(name);
+ var list:XMLList = _xmlArray[i].descendants(name);
if(list.length())
retVal = retVal.concat(list);
}
@@ -329,10 +329,10 @@ package
public function elements(name:Object = *):XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].elements(name);
+ var list:XMLList = _xmlArray[i].elements(name);
if(list.length())
retVal = retVal.concat(list);
}
@@ -342,12 +342,12 @@ package
public function hasComplexContent():Boolean
{
//what to do with multiple nodes? If anything is complex, we return true.
- if(this.length() == 0)
+ if(_xmlArray.length == 0)
return false;
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=1;i<len;i++)
{
- if(this[i].hasComplexContent())
+ if(_xmlArray[i].hasComplexContent())
return true;
}
return false;
@@ -368,12 +368,12 @@ package
*/
if(parseInt(propertyName,10).toString() == propertyName)
{
- return parseInt(propertyName,10) < this.length();
+ return parseInt(propertyName,10) < _xmlArray.length;
}
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=1;i<len;i++)
{
- if(this[i].hasOwnProperty(propertyName))
+ if(_xmlArray[i].hasOwnProperty(propertyName))
return true;
}
return false;
@@ -388,12 +388,12 @@ package
public function hasSimpleContent():Boolean
{
//what to do with multiple nodes? If anything is complex, we return false.
- if(this.length() == 0)
+ if(_xmlArray.length == 0)
return true;
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=1;i<len;i++)
{
- if(this[i].hasComplexContent())
+ if(_xmlArray[i].hasComplexContent())
return false;
}
return true;
@@ -430,13 +430,13 @@ package
*/
public function parent():Object
{
- if(this.length() == 0)
+ if(_xmlArray.length == 0)
return undefined;
var retVal = this[0].parent;
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=1;i<len;i++)
{
- if(this[i].parent != retVal)
+ if(_xmlArray[i].parent != retVal)
return undefined;
}
return retVal;
@@ -454,17 +454,17 @@ package
var retVal:XMLList = new XMLList();
if(!name)
return retVal;
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- if(this[i].nodeKind() != "processing-instruction")
+ if(_xmlArray[i].nodeKind() != "processing-instruction")
continue;
if(name == "*")
{
- retVal.appendChild(this[i]);
+ retVal.appendChild(_xmlArray[i]);
}
- else if(name == this[i].localName)
- retVal.appendChild(this[i]);
+ else if(name == _xmlArray[i].localName)
+ retVal.appendChild(_xmlArray[i]);
}
return retVal;
}
@@ -539,10 +539,10 @@ package
public function text():XMLList
{
var retVal:XMLList = new XMLList();
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var list:XMLList = this[i].text();
+ var list:XMLList = _xmlArray[i].text();
if(list.length())
retVal.concat(list);
}
@@ -558,10 +558,10 @@ package
public function toLocaleString():String
{
var retVal:Array = [];
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var str:String = this[i].toLocaleString();
+ var str:String = _xmlArray[i].toLocaleString();
if(str)
retVal.push(str);
}
@@ -577,10 +577,10 @@ package
public function toString():String
{
var retVal:Array = [];
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var str:String = this[i].toString();
+ var str:String = _xmlArray[i].toString();
if(str)
retVal.push(str);
}
@@ -596,10 +596,10 @@ package
public function toXMLString():String
{
var retVal:Array = [];
- var len:int = this.length();
+ var len:int = _xmlArray.length;
for (var i:int=0;i<len;i++)
{
- var str:String = this[i].toXMLString();
+ var str:String = _xmlArray[i].toXMLString();
if(str)
retVal.push(str);
}