From b9785280a7138a2bb52060faf94807aa0d07dec1 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Wed, 24 Aug 2011 17:11:55 +0000 Subject: Renamed tests named bugXXX to tXXX, no review. --- test/files/pos/t715/meredith_1.scala | 98 ++++++++++++++++++++++++++++++++++++ test/files/pos/t715/runner_2.scala | 3 ++ 2 files changed, 101 insertions(+) create mode 100644 test/files/pos/t715/meredith_1.scala create mode 100644 test/files/pos/t715/runner_2.scala (limited to 'test/files/pos/t715') diff --git a/test/files/pos/t715/meredith_1.scala b/test/files/pos/t715/meredith_1.scala new file mode 100644 index 0000000000..4be7b48908 --- /dev/null +++ b/test/files/pos/t715/meredith_1.scala @@ -0,0 +1,98 @@ +package com.sap.dspace.model.othello; + +import scala.xml._ + +trait XMLRenderer { + type T <: {def getClass() : java.lang.Class[_]} + val valueTypes = + List( + classOf[java.lang.Boolean], + classOf[java.lang.Integer], + classOf[java.lang.Float], + classOf[java.lang.String] + // more to come + ) + + def value2XML( + value : Object, + field : java.lang.reflect.Field, + pojo : T + ) : Node = { + value match { + case null => Text( "null" ) + case vUnmatched => + if (value.isInstanceOf[java.lang.Boolean]) + Text( value.asInstanceOf[java.lang.Boolean].toString ) + else if (value.isInstanceOf[java.lang.Integer]) + Text( value.asInstanceOf[java.lang.Integer].toString ) + else if (value.isInstanceOf[java.lang.Float]) + Text( value.asInstanceOf[java.lang.Float].toString ) + // else if (value.isInstanceOf[T]) + // pojo2XML( value.asInstanceOf[T] ) + else + + + {vUnmatched.getClass.toString} + + + {vUnmatched.toString} + + + } + } + + def field2XML( + field : java.lang.reflect.Field, + pojo : T + ) : Elem = { + + val accessible = field.isAccessible; + field.setAccessible( true ); + // BUGBUG lgm need to disambiguate on type and possibly make + // recursive call to pojo2XML + val fldValXML = value2XML( field.get( pojo ), field, pojo ); + field.setAccessible( accessible ); + + Elem( + null, + field.getName, + null, + TopScope, + fldValXML + ) + } + + def pojo2XML( pojo : T ) : Elem = { + val progeny = + for (field <- pojo.getClass.getDeclaredFields) + yield field2XML( field, pojo ); + + Elem( + null, + pojo.getClass.getName, + null, + TopScope, + progeny.asInstanceOf[Array[scala.xml.Node]] : _* + ) + } +} + +case class POJO2XMLRenderer( recurse : Boolean ) + extends XMLRenderer { + type T = java.io.Serializable + override def value2XML( + value : Object, + field : java.lang.reflect.Field, + pojo : java.io.Serializable + ) : Node = { + if (recurse) super.value2XML( value, field, pojo ) + else Text( value + "" ) + } +} + +object thePOJO2XMLRenderer extends POJO2XMLRenderer( true ) { +} + +object Test extends Application { + println(com.sap.dspace.model.othello.thePOJO2XMLRenderer) +} diff --git a/test/files/pos/t715/runner_2.scala b/test/files/pos/t715/runner_2.scala new file mode 100644 index 0000000000..1e4f40d654 --- /dev/null +++ b/test/files/pos/t715/runner_2.scala @@ -0,0 +1,3 @@ +object Test extends Application { + println(com.sap.dspace.model.othello.thePOJO2XMLRenderer) +} -- cgit v1.2.3