summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-06-24 13:21:18 +0000
committerburaq <buraq@epfl.ch>2003-06-24 13:21:18 +0000
commitcc296d5b5c13bfe944493d0b5787f530811357a9 (patch)
tree6fdf322f5257d7ca4a5e3c96aae9ee928a7fa5b9 /sources
parent0720197b32904eada2723b340b4012ed326e7895 (diff)
downloadscala-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.java31
-rw-r--r--sources/scala/xml/Element.scala14
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;