diff options
author | buraq <buraq@epfl.ch> | 2003-06-24 13:21:18 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-06-24 13:21:18 +0000 |
commit | cc296d5b5c13bfe944493d0b5787f530811357a9 (patch) | |
tree | 6fdf322f5257d7ca4a5e3c96aae9ee928a7fa5b9 /sources | |
parent | 0720197b32904eada2723b340b4012ed326e7895 (diff) | |
download | scala-cc296d5b5c13bfe944493d0b5787f530811357a9.tar.gz scala-cc296d5b5c13bfe944493d0b5787f530811357a9.tar.bz2 scala-cc296d5b5c13bfe944493d0b5787f530811357a9.zip |
adapted to new version, attributes work
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scala/xml/DeclToScala.java | 31 | ||||
-rw-r--r-- | sources/scala/xml/Element.scala | 14 |
2 files changed, 27 insertions, 18 deletions
diff --git a/sources/scala/xml/DeclToScala.java b/sources/scala/xml/DeclToScala.java index 990efe62c9..f2eab4d28b 100644 --- a/sources/scala/xml/DeclToScala.java +++ b/sources/scala/xml/DeclToScala.java @@ -17,12 +17,12 @@ import scalac.ast.parser.Scanner ; public class DeclToScala { - /* - static final String ATTRIBS_VALDEF = -"val _at:scala.Map[String,String] = if( attribs == null ) { new scala.HashMap[String,String] } else attribs ;"; - static final String ATTRIB_MAP = "attribs"; - static final String ATTRIB_T = "scala.Map[String,String]"; - */ + + static final String ATTRIBS_VARDEF = + "var _at:Map[String,String] = null;"; + //static final String ATTRIB_MAP = "attribs"; + //static final String ATTRIB_T = "scala.Map[String,String]"; + static final String CHILDREN_VALDEF = "val _ch:List[Element] = if( children == null ) { scala.Nil } else children ;"; static final String CHILDREN_SEQ = "children"; @@ -31,7 +31,8 @@ public class DeclToScala { static final String RAW_NAME_DEF = "def getName:String = "; static final String GET_CHILDREN_DEF = "def getChildren:scala.List[Element] = _ch ;"; - //static final String GET_ATTRIBS_DEF = "def getAttribs:scala.Map[String,String] = _at ;"; + static final String GET_ATTRIBS_DEF = "def getAttribs:Map[String,String] = _at ;"; + static final String SET_ATTRIBS_DEF = "def setAttribs( m:Map[String,String] ):Unit = {_at = m};"; static final int IND_STEP = 5; @@ -62,6 +63,8 @@ public class DeclToScala { fIndent = IND_STEP; printIndent(); fOut.println("import scala.xml._ ;"); + fOut.println("import scala.xml.javaAdapter.Map ;"); + fOut.println("import scala.xml.javaAdapter.HashMap ;"); } public void end() { @@ -131,8 +134,9 @@ public class DeclToScala { fOut.print('"'); fOut.print( decl.name ); fOut.print('"'); fOut.println(';'); - //printIndent(); fOut.println( ATTRIBS_VALDEF ); - //printIndent(); fOut.println( GET_ATTRIBS_DEF ); + printIndent(); fOut.println( ATTRIBS_VARDEF ); + printIndent(); fOut.println( GET_ATTRIBS_DEF ); + printIndent(); fOut.println( SET_ATTRIBS_DEF ); printIndent(); fOut.println( CHILDREN_VALDEF ); printIndent(); fOut.println( GET_CHILDREN_DEF ); @@ -184,11 +188,12 @@ public class DeclToScala { printIndent(); fOut.println( -"val _factory: scala.Map[String, (scala.Map[String,String],scala.List[Element])=>Element] = {"); +"val _factory: Map[String, scala.List[Element] => Element] = {"); fIndent += IND_STEP; printIndent(); fOut.println( -"val res = new scala.HashMap[String,(scala.Map[String,String],scala.List[Element])=>Element] ;"); + //"val res = new scala.HashMap[String,(scala.Map[String,String],scala.List[Element])=>Element] ;"); +"val res = new HashMap[String, scala.List[Element] => Element] ;"); for(Iterator it = elemMap.keySet().iterator(); it.hasNext(); ) { ElemDecl decl = (ElemDecl) elemMap.get( it.next() ); printIndent(); @@ -208,10 +213,10 @@ public class DeclToScala { void printContainsTextDef( Map elemMap ) { printIndent(); - fOut.println("val _containsMap: scala.Map[String, Boolean] = {"); + fOut.println("val _containsMap: Map[String, Boolean] = {"); fIndent += IND_STEP; printIndent(); - fOut.println("val res = new scala.HashMap[String, Boolean] ;"); + fOut.println("val res = new HashMap[String, Boolean] ;"); for(Iterator it = elemMap.keySet().iterator(); it.hasNext(); ) { ElemDecl decl = (ElemDecl) elemMap.get( it.next() ); diff --git a/sources/scala/xml/Element.scala b/sources/scala/xml/Element.scala index a882cf7548..04e0d464f1 100644 --- a/sources/scala/xml/Element.scala +++ b/sources/scala/xml/Element.scala @@ -1,5 +1,7 @@ package scala.xml ; +import javaAdapter.Map; + /** interface to XML elements. used by dtd2scala tool and the generated XML parser interfaces. * sorry, no attributes yet (needs working HashMap). * future revisions might use sequence instead of list. @@ -9,18 +11,19 @@ abstract class Element { def getName: String; // the real element name def getChildren: List[Element]; // the children - def getAttribs: java.Map[ String, String ]; // disabled + def getAttribs: Map[ String, String ]; // disabled + def setAttribs( m:Map[ String, String ] ):Unit ; def toXML: String = { - "<" + getName + " " + toXML( getAttribs ) + ">" + toXML( getChildren ) + "</" + getName +">" + "<" + getName + toXML_( getAttribs ) + ">" + toXML_( getChildren ) + "</" + getName +">" } - def toXML( elems:List[Element] ):String = elems match { - case head :: tail => head.toString() + toXML( tail ); + def toXML_( elems:List[Element] ):String = elems match { + case head :: tail => head.toXML + toXML_( tail ); case Nil => ""; } - def toXML( attrib:java.Map[ String, String ] ):String = { + def toXML_( attrib:Map[ String, String ] ):String = { def iterate( keys:Iterator[String] ) = if( keys.hasNext ) { @@ -34,6 +37,7 @@ abstract class Element { iterate( attrib.keys.elements ); } + /* def toXML : String = { val attribs = getAttribs; |