diff src/luan/modules/parsers/Xml.java @ 1563:8fbcc4747091

remove LuanFunction.luan
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 09 Nov 2020 01:37:57 -0700
parents b89212fd04b5
children a8c685a894b4
line wrap: on
line diff
--- a/src/luan/modules/parsers/Xml.java	Sun Nov 08 16:50:59 2020 -0700
+++ b/src/luan/modules/parsers/Xml.java	Mon Nov 09 01:37:57 2020 -0700
@@ -16,8 +16,8 @@
 
 public final class Xml {
 
-	public static String toString(Luan luan,LuanTable tbl) throws LuanException {
-		XmlElement[] elements = elements(luan,tbl);
+	public static String toString(LuanTable tbl) throws LuanException {
+		XmlElement[] elements = elements(tbl);
 		if( elements.length != 1 )
 			throw new LuanException("XML must have 1 root element");
 		return elements[0].toString();
@@ -26,9 +26,9 @@
 	private static final String ATTRIBUTES = "xml_attributes";
 	private static final String TEXT = "xml_text";
 
-	private static XmlElement[] elements(Luan luan,LuanTable tbl) throws LuanException {
+	private static XmlElement[] elements(LuanTable tbl) throws LuanException {
 		List<XmlElement> list = new ArrayList<XmlElement>();
-		for( Map.Entry entry : tbl.iterable() ) {
+		for( Map.Entry entry : tbl.rawIterable() ) {
 			Object key = entry.getKey();
 			if( !(key instanceof String) )
 				throw new LuanException("XML key must be string");
@@ -40,27 +40,27 @@
 				throw new LuanException("Can't mix text and elements");
 			LuanTable t = (LuanTable)value;
 			if( t.isMap() ) {
-				list.add( element(luan,name,t) );
+				list.add( element(name,t) );
 			} else {
 				for( Object obj : t.asList() ) {
-					list.add( element(luan,name,obj) );
+					list.add( element(name,obj) );
 				}
 			}
 		}
 		return list.toArray(new XmlElement[0]);
 	}
 
-	private static XmlElement element(Luan luan,String name,Object obj) throws LuanException {
+	private static XmlElement element(String name,Object obj) throws LuanException {
 		if( obj instanceof String ) {
 			return new XmlElement( name, Collections.emptyMap(), (String)obj );
 		}
 		LuanTable t = (LuanTable)obj;
-		Map<String,String> attributes = attributes(luan,t);
-		String s = (String)t.get(luan,TEXT);
+		Map<String,String> attributes = attributes(t);
+		String s = (String)t.rawGet(TEXT);
 		if( s != null ) {
 			return new XmlElement(name,attributes,s);
 		} else {
-			XmlElement[] elements = elements(luan,t);
+			XmlElement[] elements = elements(t);
 			if( elements.length==0 ) {
 				return new XmlElement(name,attributes);
 			} else {
@@ -69,13 +69,13 @@
 		}
 	}
 
-	private static Map<String,String> attributes(Luan luan,LuanTable tbl) throws LuanException {
-		Object obj = tbl.get(luan,ATTRIBUTES);
+	private static Map<String,String> attributes(LuanTable tbl) throws LuanException {
+		Object obj = tbl.rawGet(ATTRIBUTES);
 		if( obj==null )
 			return Collections.emptyMap();
 		LuanTable t = (LuanTable)obj;
 		Map<String,String> map = new LinkedHashMap<String,String>();
-		for( Map.Entry entry : t.iterable() ) {
+		for( Map.Entry entry : t.rawIterable() ) {
 			String name =(String)entry.getKey();
 			String value =(String)entry.getValue();
 			map.put(name,value);