diff options
author | michelou <michelou@epfl.ch> | 2007-04-30 17:47:18 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2007-04-30 17:47:18 +0000 |
commit | 10aa20170079d81f3e80d1cf5d0fc821336ae2d9 (patch) | |
tree | 370d7f6a0151e399a833d37e81ebf1d61f929544 /src | |
parent | 9227a0f86a22aba48f069c8d52d6c587d05d05f9 (diff) | |
download | scala-10aa20170079d81f3e80d1cf5d0fc821336ae2d9.tar.gz scala-10aa20170079d81f3e80d1cf5d0fc821336ae2d9.tar.bz2 scala-10aa20170079d81f3e80d1cf5d0fc821336ae2d9.zip |
re-added links to Scala sources
Diffstat (limited to 'src')
19 files changed, 300 insertions, 220 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/DocDriver.scala b/src/compiler/scala/tools/nsc/doc/DocDriver.scala index 2fc4be7e84..9864b13c2e 100644 --- a/src/compiler/scala/tools/nsc/doc/DocDriver.scala +++ b/src/compiler/scala/tools/nsc/doc/DocDriver.scala @@ -23,44 +23,42 @@ abstract class DocDriver extends ModelFrames with ModelToXML { override def addition(sym: global.Symbol) = { super.addition(sym) sym match { - case sym : global.ClassSymbol => additions += sym.asInstanceOf[Symbol] + case sym : global.ClassSymbol => additions += sym.asInstanceOf[Symbol] case sym : global.ModuleSymbol => additions += sym.asInstanceOf[Symbol] - case sym : global.TypeSymbol => additions += sym.asInstanceOf[Symbol] + case sym : global.TypeSymbol => additions += sym.asInstanceOf[Symbol] case _ => } } - def init : Unit = {} + def init: Unit = {} } - def process(units: Iterator[CompilationUnit]): Unit = { + def process(units: Iterator[CompilationUnit]) { assert(global.definitions != null); - def g(pkg : Package, clazz : ClassOrObject) : Unit = { + def g(pkg: Package, clazz: ClassOrObject) { allClasses(pkg) += clazz; clazz.decls.map(._2).foreach { - case clazz : ClassOrObject => - g(pkg, clazz); - case _ => + case clazz : ClassOrObject => g(pkg, clazz) + case _ => } } - def f(pkg : Package, tree : Tree) : Unit = if (!tree.symbol.hasFlag(symtab.Flags.PRIVATE)) tree match { - case tree : PackageDef => - val pkg1 = new Package(tree.symbol.asInstanceOf[ModuleSymbol]); - tree.stats.foreach(stat => f(pkg1, stat)); - case tree : ClassDef => - assert(pkg != null); - g(pkg, new TopLevelClass(tree.symbol.asInstanceOf[ClassSymbol])); - case tree : ModuleDef => - assert(pkg != null); - g(pkg, new TopLevelObject(tree.symbol.asInstanceOf[ModuleSymbol])); - case _ => + def f(pkg: Package, tree: Tree): Unit = if (!tree.symbol.hasFlag(symtab.Flags.PRIVATE)) tree match { + case tree : PackageDef => + val pkg1 = new Package(tree.symbol.asInstanceOf[ModuleSymbol]); + tree.stats.foreach(stat => f(pkg1, stat)) + case tree : ClassDef => + assert(pkg != null); + g(pkg, new TopLevelClass(tree.symbol.asInstanceOf[ClassSymbol])) + case tree : ModuleDef => + assert(pkg != null); + g(pkg, new TopLevelObject(tree.symbol.asInstanceOf[ModuleSymbol])) + case _ => } - units.foreach(unit => f(null, unit.body)); + units.foreach(unit => f(null, unit.body)) - - for (p <- allClasses; val d <- p._2) { - symbols += d.sym; - for (pp <- d.sym.tpe.parents) subClasses(pp.symbol) += d; + for (p <- allClasses; d <- p._2) { + symbols += d.sym + for (pp <- d.sym.tpe.parents) subClasses(pp.symbol) += d } additions0.init copyResources @@ -69,9 +67,7 @@ abstract class DocDriver extends ModelFrames with ModelToXML { new PackagesContentFrame with Frame { def packages = packages0; } new NavigationFrame with Frame { } new ListClassFrame with Frame { - def classes = { - for (p <- allClasses; d <- p._2) yield d; - } + def classes = for (p <- allClasses; d <- p._2) yield d object organized extends jcl.LinkedHashMap[(List[String],Boolean),List[ClassOrObject]] { override def default(key : (List[String],Boolean)) = Nil; classes.foreach(cls => { @@ -121,23 +117,23 @@ abstract class DocDriver extends ModelFrames with ModelToXML { } for (sym <- additions) sym match { case sym : ClassSymbol => - val add = new TopLevelClass(sym); + val add = new TopLevelClass(sym) new ClassContentFrame with Frame { - def clazz = add; + def clazz = add def title = add.kind + " " + add.name + " in package " + add.sym.owner.fullNameString('.') } - case sym : TypeSymbol => - val add = new TopLevelClass(sym); + case sym :TypeSymbol => + val add = new TopLevelClass(sym) new ClassContentFrame with Frame { - def clazz = add; + def clazz = add def title = add.kind + " " + add.name + " in package " + add.sym.owner.fullNameString('.') } - case sym : ModuleSymbol => - val add = new TopLevelObject(sym); + case sym :ModuleSymbol => + val add = new TopLevelObject(sym) new ClassContentFrame with Frame { - def clazz = add; + def clazz = add def title = add.kind + " " + add.name + " in package " + add.sym.owner.fullNameString('.') } @@ -208,7 +204,7 @@ abstract class DocDriver extends ModelFrames with ModelToXML { } // <code>{Text(string + " - ")}</code>; - override def hasLink0(sym : Symbol) : Boolean = { + override def hasLink0(sym: Symbol): Boolean = { if (sym == NoSymbol) return false; val ret = super.hasLink0(sym) && (additions.contains(sym) || symbols.contains(sym)); if (ret) return true; @@ -224,9 +220,10 @@ abstract class DocDriver extends ModelFrames with ModelToXML { } return false; } - def aref(href : String, label : String)(implicit frame : Frame) = - frame.aref(href, "_self", label); - protected def anchor(entity : Symbol)(implicit frame : Frame) : NodeSeq = + def aref(href: String, label: String)(implicit frame: Frame) = + frame.aref(href, "_self", label) + + protected def anchor(entity: Symbol)(implicit frame: Frame): NodeSeq = <a name={Text(frame.docName(entity))}></a> object symbols extends jcl.LinkedHashSet[Symbol]; diff --git a/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala b/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala index 91ed949eba..44c17e4b74 100644 --- a/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala +++ b/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala @@ -16,14 +16,17 @@ import compat.Platform.{EOL => LINE_SEPARATOR} * @author Sean McDirmid */ trait ModelExtractor { - val global : Global + val global: Global import global._ + def assert(b : Boolean) { if (!b) throw new Error; } - case class Tag(tag : String, option : String, body : String); - case class Comment(body : String, attributes : List[Tag]) { + + case class Tag(tag: String, option: String, body: String) + + case class Comment(body: String, attributes: List[Tag]) { def decodeAttributes = { val map = new jcl.LinkedHashMap[String,List[(String,String)]] { override def default(key : String) = Nil; @@ -34,21 +37,20 @@ trait ModelExtractor { map } } - protected def decode(sym : Symbol) = { + protected def decode(sym: Symbol) = if (sym == definitions.ScalaObjectClass || sym == definitions.ObjectClass) - definitions.AnyRefClass; + definitions.AnyRefClass else sym match { - case sym : ModuleClassSymbol => sym.sourceModule; - case sym => sym; + case sym : ModuleClassSymbol => sym.sourceModule + case sym => sym } - } protected def decodeComment(comment0 : String) : Comment = { - assert(comment0.startsWith("/**")); - assert(comment0.endsWith("*/")); - val comment = comment0.substring("/**".length, comment0.length - "*/".length); - val tok = new java.util.StringTokenizer(comment, LINE_SEPARATOR); - val buf = new StringBuilder; + assert(comment0.startsWith("/**")) + assert(comment0.endsWith("*/")) + val comment = comment0.substring("/**".length, comment0.length - "*/".length) + val tok = new java.util.StringTokenizer(comment, LINE_SEPARATOR) + val buf = new StringBuilder type AttrDescr = (String, String, StringBuilder) val attributes = new collection.mutable.ListBuffer[AttrDescr] var attr: AttrDescr = null @@ -89,14 +91,17 @@ trait ModelExtractor { Some(ModelExtractor.this.decodeComment(comment)); } protected def accessQualified(core: String, qual: String) = core match { - case "public" => ""; // assert(qual == null); ""; - case core => core + (if (qual == null) "" else "[" + qual + "]"); + case "public" => "" // assert(qual == null); ""; + case core => core + (if (qual == null) "" else "[" + qual + "]") } def flagsString = { import symtab.Flags - val isLocal = sym.hasFlag(Flags.LOCAL); - val x = if (sym.hasFlag(Flags.PRIVATE)) "private" else if (sym.hasFlag(Flags.PROTECTED)) "protected" else "public"; + val isLocal = sym.hasFlag(Flags.LOCAL) + val x = + if (sym.hasFlag(Flags.PRIVATE)) "private" + else if (sym.hasFlag(Flags.PROTECTED)) "protected" + else "public" var string = accessQualified(x, { if (sym.hasFlag(Flags.LOCAL)) "this"; else if (sym.privateWithin != null && sym.privateWithin != NoSymbol) diff --git a/src/compiler/scala/tools/nsc/doc/ModelFrames.scala b/src/compiler/scala/tools/nsc/doc/ModelFrames.scala index a4ece5286f..5e84513075 100644 --- a/src/compiler/scala/tools/nsc/doc/ModelFrames.scala +++ b/src/compiler/scala/tools/nsc/doc/ModelFrames.scala @@ -96,17 +96,19 @@ trait ModelFrames extends ModelExtractor { def urlFor(sym: Symbol): String = sym match { case sym : TypeSymbol if sym == definitions.AnyRefClass => - urlFor0(sym,sym) + FILE_EXTENSION_HTML + urlFor0(sym, sym) + FILE_EXTENSION_HTML case psym : ModuleSymbol if psym.isPackage => - urlFor0(sym,sym) + FILE_EXTENSION_HTML + urlFor0(sym, sym) + FILE_EXTENSION_HTML case sym if !hasLink(sym) => null + case sym if sym.hasFlag(Flags.JAVA) => + null // handled in ModelToXML.link case msym: ModuleSymbol => urlFor0(sym, sym) + FILE_EXTENSION_HTML case csym: ClassSymbol => urlFor0(sym, sym) + FILE_EXTENSION_HTML case _ => - val cnt = urlFor(decode(sym.owner)); + val cnt = urlFor(decode(sym.owner)) if (cnt == null) null else cnt + "#" + docName(sym) } @@ -145,13 +147,11 @@ trait ModelFrames extends ModelExtractor { case msym: ModuleSymbol => if (msym hasFlag Flags.PACKAGE) NAME_SUFFIX_PACKAGE else NAME_SUFFIX_OBJECT - case csym: ClassSymbol => - if (csym.isModuleClass) { - if (csym hasFlag Flags.PACKAGE) NAME_SUFFIX_PACKAGE - else NAME_SUFFIX_OBJECT - } - else "" - case _ => "" + case csym: ClassSymbol if csym.isModuleClass => + if (csym hasFlag Flags.PACKAGE) NAME_SUFFIX_PACKAGE + else NAME_SUFFIX_OBJECT + case _ => + "" }) } } @@ -235,6 +235,7 @@ trait ModelFrames extends ModelExtractor { } def optional(cls: ClassOrObject): NodeSeq = NodeSeq.Empty } + abstract class PackageContentFrame extends Frame { override def path = pkg.fullName('/') + "$content" override def title = "All classes and objects in " + pkg.fullName('.') @@ -250,6 +251,7 @@ trait ModelFrames extends ModelExtractor { </table> })}; } + abstract class ClassContentFrame extends Frame { def clazz: ClassOrObject def body: NodeSeq = @@ -271,14 +273,21 @@ trait ModelFrames extends ModelExtractor { </tr> <tr><td></td></tr> </table>; - private def header0: NodeSeq = + private def header0: NodeSeq = { + val owner = decode(clazz.sym.owner) + val name = + owner.fullNameString('/') + (if (owner.isPackage) "/" + clazz.name else "") <xml:group> <div class="entity"> - {aref(urlFor(decode(clazz.sym.owner)), "_self", decode(clazz.sym.owner).fullNameString('.'))} + {aref(urlFor(owner), "_self", owner.fullNameString('.'))} <br/> <span class="entity">{Text(clazz.kind)} {Text(clazz.name)}</span> </div><hr/> - </xml:group>; + <div style="font-size:smaller; color:gray;"> + [source: <a class={name} href=""><code>{name + ".scala"}</code></a>] + </div><hr/> + </xml:group> + } } def longComment(cmnt: Comment): NodeSeq @@ -355,6 +364,7 @@ trait ModelFrames extends ModelExtractor { copyResource(stylesheetSetting.value, !stylesheetSetting.isDefault) copyResource("script.js", false) } + private val patVal = java.util.regex.Pattern.compile( - "scala\\.(Byte|Boolean|Char|Double|Float|Int|Long|Short)") + "scala\\.(Byte|Boolean|Char|Double|Float|Int|Long|Short)") } diff --git a/src/compiler/scala/tools/nsc/doc/ModelToXML.scala b/src/compiler/scala/tools/nsc/doc/ModelToXML.scala index 00de9d6189..63c8990c56 100644 --- a/src/compiler/scala/tools/nsc/doc/ModelToXML.scala +++ b/src/compiler/scala/tools/nsc/doc/ModelToXML.scala @@ -24,11 +24,17 @@ trait ModelToXML extends ModelExtractor { def aref(href: String, label: String)(implicit frame: Frame): NodeSeq def link(entity: Symbol)(implicit frame: Frame): NodeSeq = { - val url = urlFor(entity); + val url = urlFor(entity) // nothing to do but be verbose. - if (url == null) Text({ - entity.owner.fullNameString('.') + '.' + entity.nameString; - }) else aref(url, entity.nameString); + if (url == null) { + val name = entity.owner.fullNameString('.') + '.' + entity.nameString + if (entity.hasFlag(symtab.Flags.JAVA)) + <a class={name.replace('.', '/')} href="" target="contentFrame">{name}</a> + else + Text(name) + } + else + aref(url, entity.nameString) } def link(tpe: Type)(implicit frame: Frame): NodeSeq = { @@ -103,7 +109,7 @@ trait ModelToXML extends ModelExtractor { } } - def longHeader(entity : Entity)(implicit from : Frame) : NodeSeq = Group({ + def longHeader(entity: Entity)(implicit from: Frame): NodeSeq = Group({ anchor(entity.sym) ++ <dl> <dt> {attrsFor(entity)} @@ -156,14 +162,15 @@ trait ModelToXML extends ModelExtractor { {categories.mkXML("","\n","")(c => longList(entity, c)) : NodeSeq} </xml:group>; - def longList(entity : ClassOrObject,category : Category)(implicit from : Frame) : NodeSeq = { - val xs = entity.members(category); - if (!xs.elements.hasNext) return NodeSeq.Empty; - Group( + def longList(entity: ClassOrObject, category: Category)(implicit from: Frame): NodeSeq = { + val xs = entity.members(category) + if (!xs.elements.hasNext) + NodeSeq.Empty + else Group( <table cellpadding="3" class="member-detail" summary=""> <tr><td class="title">{Text(category.label)} Details</td></tr> </table> - <div>{xs.mkXML("","\n","")(m => longHeader(m))}</div>); + <div>{xs.mkXML("","\n","")(m => longHeader(m))}</div>) } def shortList(entity: ClassOrObject, category: Category)(implicit from: Frame): NodeSeq = { diff --git a/src/compiler/scala/tools/nsc/doc/script.js b/src/compiler/scala/tools/nsc/doc/script.js index 7684ecc9a0..592cf05ac0 100644 --- a/src/compiler/scala/tools/nsc/doc/script.js +++ b/src/compiler/scala/tools/nsc/doc/script.js @@ -82,9 +82,11 @@ function init() { api['java/lang/ThreadLocal'] = java_api_root; api['java/lang/Throwable'] = java_api_root; api['java/lang/Void'] = java_api_root; + api['java/math/BigDecimal'] = java_api_root; api['java/math/BigInteger'] = java_api_root; api['java/math/MathContext'] = java_api_root; + api['java/net/Authenticator'] = java_api_root; api['java/net/BindException'] = java_api_root; api['java/net/HttpURLConnection'] = java_api_root; @@ -105,6 +107,7 @@ function init() { api['java/net/URLConnection'] = java_api_root; api['java/net/URLDecoder'] = java_api_root; api['java/net/URLStreamHandler'] = java_api_root; + api['java/nio/Buffer'] = java_api_root; api['java/nio/ByteBuffer'] = java_api_root; api['java/nio/BufferOverflowException'] = java_api_root; @@ -126,24 +129,43 @@ function init() { api['java/nio/channels/ServerSocketChannel'] = java_api_root; api['java/nio/channels/SocketChannel'] = java_api_root; api['java/nio/charset/CharsetDecoder'] = java_api_root; + api['java/rmi/AccessException'] = java_api_root; api['java/rmi/MarshalledObject'] = java_api_root; api['java/rmi/Naming'] = java_api_root; api['java/rmi/RMISecurityManager'] = java_api_root; api['java/rmi/Remote'] = java_api_root; //interface + api['java/sql/Array'] = java_api_root; //interface + api['java/sql/BatchUpdateException'] = java_api_root; //exception api['java/sql/Blob'] = java_api_root; //interface api['java/sql/CallableStatement'] = java_api_root; //interface + api['java/sql/Clob'] = java_api_root; //interface api['java/sql/Connection'] = java_api_root; //interface + api['java/sql/DataTruncation'] = java_api_root; //exception + api['java/sql/DatabaseMetaData'] = java_api_root; //interface api['java/sql/Date'] = java_api_root; + api['java/sql/Driver'] = java_api_root; //interface api['java/sql/DriverManager'] = java_api_root; + api['java/sql/DriverPropertyInfo'] = java_api_root; + api['java/sql/ParameterMetaData'] = java_api_root; //interface + api['java/sql/PreparedStatement'] = java_api_root; //interface + api['java/sql/Ref'] = java_api_root; //interface api['java/sql/ResultSet'] = java_api_root; //interface api['java/sql/ResultSetMetaData'] = java_api_root; //interface + api['java/sql/SQLData'] = java_api_root; //interface + api['java/sql/SQLInput'] = java_api_root; //interface + api['java/sql/SQLOutput'] = java_api_root; //interface + api['java/sql/SQLException'] = java_api_root; //exception api['java/sql/SQLPermission'] = java_api_root; + api['java/sql/SQLWarning'] = java_api_root; //exception + api['java/sql/SavePoint'] = java_api_root; //interface + api['java/sql/Statement'] = java_api_root; //interface + api['java/sql/Struct'] = java_api_root; //interface api['java/sql/Time'] = java_api_root; api['java/sql/Timestamp'] = java_api_root; api['java/sql/Types'] = java_api_root; - api['java/text/MessageFormat'] = java_api_root; + api['java/text/Annotation'] = java_api_root; api['java/text/AttributedCharacterIterator'] = java_api_root; api['java/text/AttributedString'] = java_api_root; @@ -165,6 +187,13 @@ function init() { api['java/text/ParsePosition'] = java_api_root; api['java/text/SimpleDateFormat'] = java_api_root; api['java/text/StringCharacterIterator'] = java_api_root; + + api['java/util/AbstractCollection'] = java_api_root; + api['java/util/AbstractList'] = java_api_root; + api['java/util/AbstractMap'] = java_api_root; + api['java/util/AbstractSequentialList'] = java_api_root; + api['java/util/AbstractSet'] = java_api_root; + api['java/util/ArrayList'] = java_api_root; api['java/util/Arrays'] = java_api_root; api['java/util/BitSet'] = java_api_root; api['java/util/Calendar'] = java_api_root; @@ -174,23 +203,44 @@ function init() { api['java/util/Currency'] = java_api_root; api['java/util/Date'] = java_api_root; api['java/util/Dictionary'] = java_api_root; + api['java/util/EnumMap'] = java_api_root; + api['java/util/EnumSet'] = java_api_root; + api['java/util/Enumeration'] = java_api_root; //interface + api['java/util/EventListener'] = java_api_root; //interface + api['java/util/EventListenerProxy'] = java_api_root; + api['java/util/EventObject'] = java_api_root; + api['java/util/Formattable'] = java_api_root; //interface api['java/util/Formatter'] = java_api_root; + api['java/util/GregorianCalendar'] = java_api_root; api['java/util/HashMap'] = java_api_root; api['java/util/HashSet'] = java_api_root; - api['java/util/Hashapi'] = java_api_root; + api['java/util/Hashtable'] = java_api_root; + api['java/util/IdentityHashMap'] = java_api_root; api['java/util/IllegalFormatException'] = java_api_root; + api['java/util/Iterator'] = java_api_root; //interface api['java/util/LinkedHashMap'] = java_api_root; api['java/util/LinkedHashSet'] = java_api_root; api['java/util/LinkedList'] = java_api_root; api['java/util/List'] = java_api_root; //interface + api['java/util/ListIterator'] = java_api_root; //interface + api['java/util/ListResourceBundle'] = java_api_root; + api['java/util/Locale'] = java_api_root; api['java/util/Map'] = java_api_root; api['java/util/Observable'] = java_api_root; + api['java/util/Observer'] = java_api_root; //interface api['java/util/PriorityQueue'] = java_api_root; api['java/util/Properties'] = java_api_root; + api['java/util/PropertyPermission'] = java_api_root; + api['java/util/PropertyResourceBundle'] = java_api_root; + api['java/util/Queue'] = java_api_root; //interface api['java/util/Random'] = java_api_root; + api['java/util/RandomAccess'] = java_api_root; //interface api['java/util/ResourceBundle'] = java_api_root; api['java/util/Scanner'] = java_api_root; //(1.5) api['java/util/Set'] = java_api_root; + api['java/util/SimpleTimeZone'] = java_api_root; + api['java/util/SortedMap'] = java_api_root; //interface + api['java/util/SortedSet'] = java_api_root; //infterface api['java/util/Stack'] = java_api_root; api['java/util/StringTokenizer'] = java_api_root; api['java/util/Timer'] = java_api_root; @@ -545,6 +595,12 @@ function init() { src['scala/testing/SUnit'] = lib_src_root; src['scala/testing/UnitTest'] = lib_src_root; // object + src['scala/text/DocBreak'] = lib_src_root; + src['scala/text/DocCons'] = lib_src_root; + src['scala/text/DocGroup'] = lib_src_root; + src['scala/text/DocNest'] = lib_src_root; + src['scala/text/DocNil'] = lib_src_root; + src['scala/text/DocText'] = lib_src_root; src['scala/text/Document'] = lib_src_root; src['scala/util/Fluid'] = lib_src_root; diff --git a/src/dbc/scala/dbc/statement/AccessMode.scala b/src/dbc/scala/dbc/statement/AccessMode.scala index d6b45ea9bc..19809a6735 100644 --- a/src/dbc/scala/dbc/statement/AccessMode.scala +++ b/src/dbc/scala/dbc/statement/AccessMode.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,16 +9,16 @@ // $Id:AccessMode.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement abstract class AccessMode { - def sqlString: String; + def sqlString: String } object AccessMode { case object ReadOnly extends AccessMode { - def sqlString = "READ ONLY"; + def sqlString = "READ ONLY" } case object ReadWrite extends AccessMode { def sqlString = "READ WRITE" diff --git a/src/dbc/scala/dbc/statement/DerivedColumn.scala b/src/dbc/scala/dbc/statement/DerivedColumn.scala index 653ce75698..2e4dc4f6cd 100644 --- a/src/dbc/scala/dbc/statement/DerivedColumn.scala +++ b/src/dbc/scala/dbc/statement/DerivedColumn.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,28 +9,30 @@ // $Id$ -package scala.dbc.statement; +package scala.dbc.statement abstract class DerivedColumn { /** The value for the column. This value can be of any type but must be - * calculated from fields that appear in a relation that takes part - * in the query. */ - def valueExpression: Expression; + * calculated from fields that appear in a relation that takes part + * in the query. + */ + def valueExpression: Expression /** A new name for this field. This name must be unique for the query in - * which the column takes part. */ - def asClause: Option[String]; + * which the column takes part. + */ + def asClause: Option[String] /** A SQL-99 compliant string representation of the derived column - * sub-statement. This only has a meaning inside a select statement. */ - def sqlString: String = ( + * sub-statement. This only has a meaning inside a select statement. + */ + def sqlString: String = valueExpression.sqlInnerString + (asClause match { case None => "" case Some(ac) => " AS " + ac }) - ); } diff --git a/src/dbc/scala/dbc/statement/Expression.scala b/src/dbc/scala/dbc/statement/Expression.scala index 6243564311..531288ec47 100644 --- a/src/dbc/scala/dbc/statement/Expression.scala +++ b/src/dbc/scala/dbc/statement/Expression.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,21 +9,20 @@ // $Id$ -package scala.dbc.statement; +package scala.dbc.statement /** An expression that calculates some value from fields. */ abstract class Expression extends Relation { - def fieldTypes: List[DataType] = Nil; + def fieldTypes: List[DataType] = Nil /** A SQL-99 compliant string representation of the expression. */ - def sqlString: String = { - "SELECT " + sqlInnerString - } + def sqlString: String = "SELECT " + sqlInnerString /** A SQL-99 compliant string representation of the relation sub- - * statement. This only has a meaning inside another statement. */ - def sqlInnerString: String; + * statement. This only has a meaning inside another statement. + */ + def sqlInnerString: String } diff --git a/src/dbc/scala/dbc/statement/Insert.scala b/src/dbc/scala/dbc/statement/Insert.scala index 7e5ce777d8..a565c93585 100644 --- a/src/dbc/scala/dbc/statement/Insert.scala +++ b/src/dbc/scala/dbc/statement/Insert.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,28 +9,23 @@ // $Id:Insert.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement -import scala.dbc.statement.expression._; +import scala.dbc.statement.expression._ /** An insertion of values into a table. */ -case class Insert ( - insertionTarget: String, - insertionData: InsertionData -) extends Status { +case class Insert(insertionTarget: String, insertionData: InsertionData) + extends Status { /** A SQL-99 compliant string representation of the select statement. */ - def sqlString: String = ( - "INSERT INTO " + - insertionTarget + - " " + insertionData.sqlString - ); + def sqlString: String = + "INSERT INTO " + insertionTarget + " " + insertionData.sqlString /** The name of the table where the data should be added. */ - //def insertionTarget: String; + //def insertionTarget: String /** The data that will be added tot he table. */ - //def insertionData: InsertionData; + //def insertionData: InsertionData } diff --git a/src/dbc/scala/dbc/statement/InsertionData.scala b/src/dbc/scala/dbc/statement/InsertionData.scala index cc9a225ad2..5aa8a7d368 100644 --- a/src/dbc/scala/dbc/statement/InsertionData.scala +++ b/src/dbc/scala/dbc/statement/InsertionData.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,33 +9,32 @@ // $Id:InsertionData.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement -import scala.dbc.statement.expression._; +import scala.dbc.statement.expression._ /** Data to be inserted into a table in an <code>Insert</code>. */ abstract class InsertionData { - def sqlString: String; + def sqlString: String } object InsertionData { /** Insertion of data resulting from a query on the database. */ - case class Subquery (query:Relation) extends InsertionData { - def sqlString = query.sqlString; + case class Subquery(query: Relation) extends InsertionData { + def sqlString = query.sqlString } /** Insertion of data as explicitly defined values. */ - case class Constructor ( - columnNames:Option[List[String]], - columnValues:List[Expression] + case class Constructor( + columnNames: Option[List[String]], + columnValues: List[Expression] ) extends InsertionData { - def sqlString = ( + def sqlString = (columnNames match { case None => "" case Some(cn) => cn.mkString(" (",", ",")") }) + " VALUES" + - columnValues.map(e=>e.sqlInnerString).mkString(" (",", ",")") - ) + columnValues.map(e => e.sqlInnerString).mkString(" (",", ",")") } } diff --git a/src/dbc/scala/dbc/statement/IsolationLevel.scala b/src/dbc/scala/dbc/statement/IsolationLevel.scala index 92cead7c51..3b1619c72d 100644 --- a/src/dbc/scala/dbc/statement/IsolationLevel.scala +++ b/src/dbc/scala/dbc/statement/IsolationLevel.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,11 +9,11 @@ // $Id:IsolationLevel.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement abstract class IsolationLevel { - def sqlString: String; + def sqlString: String } object IsolationLevel { diff --git a/src/dbc/scala/dbc/statement/JoinType.scala b/src/dbc/scala/dbc/statement/JoinType.scala index 77befa5607..e60fc5a979 100644 --- a/src/dbc/scala/dbc/statement/JoinType.scala +++ b/src/dbc/scala/dbc/statement/JoinType.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,39 +9,46 @@ // $Id$ -package scala.dbc.statement; +package scala.dbc.statement /** A join behaviour in a <code>Jointure</code>. */ abstract class JoinType { /** A SQL-99 string representation of the join behaviour. */ - def sqlString: String; + def sqlString: String } object JoinType { + /** A join behaviour where a joined tuple is created only when a - * corresponding tuple exists in both original relations. */ + * corresponding tuple exists in both original relations. + */ case object Inner extends JoinType { val sqlString = "INNER JOIN" } + /** A join behaviour family where a joined tuple is created even when a - * tuple has no corresponding tuple in the other relation. The fields - * populated by values of the other tuple will receive the NULL value. + * tuple has no corresponding tuple in the other relation. The fields + * populated by values of the other tuple will receive the NULL value. */ - abstract class Outer extends JoinType; + abstract class Outer extends JoinType + object Outer { /** An outer join behaviour where there will be at least on tuple for - * every tuple in the left relation. */ + * every tuple in the left relation. + */ case object Left extends Outer { val sqlString = "LEFT OUTER JOIN" } /** An outer join behaviour where there will be at least on tuple for - * every tuple in the right relation. */ + * every tuple in the right relation. + */ case object Right extends Outer { val sqlString = "RIGHT OUTER JOIN" } /** An outer join behaviour where there will be at least on tuple for - * every tuple in both right and left relations. */ + * every tuple in both right and left relations. + */ case object Full extends Outer { val sqlString = "FULL OUTER JOIN" } diff --git a/src/dbc/scala/dbc/statement/Jointure.scala b/src/dbc/scala/dbc/statement/Jointure.scala index 71fc610dcb..06d751a318 100644 --- a/src/dbc/scala/dbc/statement/Jointure.scala +++ b/src/dbc/scala/dbc/statement/Jointure.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,32 +9,31 @@ // $Id:Jointure.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement /** A jointure between two relations. */ abstract class Jointure extends Relation { /** The relation on the left part of the join. */ - def leftRelation: Relation; + def leftRelation: Relation /** The relation on the right part of the join. */ - def rightRelation: Relation; + def rightRelation: Relation /** The type of the jointure. */ - def joinType: JoinType; + def joinType: JoinType /** The condition on which the jointure needs be done. */ - def joinCondition: Option[Expression]; + def joinCondition: Option[Expression] /** A SQL-99 compliant string representation of the relation statement. */ - def sqlString: String = { - "SELECT * FROM " + sqlInnerString - } + def sqlString: String = "SELECT * FROM " + sqlInnerString /** A SQL-99 compliant string representation of the relation sub- - * statement. This only has a meaning inside a query. */ - def sqlInnerString: String = ( + * statement. This only has a meaning inside a query. + */ + def sqlInnerString: String = leftRelation.sqlInnerString + " " + joinType.sqlString + " " + rightRelation.sqlInnerString + @@ -42,6 +41,5 @@ abstract class Jointure extends Relation { case Some(jc) => jc.sqlString case None => "" }) - ) } diff --git a/src/dbc/scala/dbc/statement/Select.scala b/src/dbc/scala/dbc/statement/Select.scala index 1d1fa64233..11bf98f322 100644 --- a/src/dbc/scala/dbc/statement/Select.scala +++ b/src/dbc/scala/dbc/statement/Select.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,7 +9,7 @@ // $Id:Select.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement /** A statement that when executed on a database will return a relation. @@ -21,7 +21,7 @@ abstract class Select extends Relation { * relation. <h3>Compatibility notice</h3> Some DBMS (PostgreSQL) allow * uniqueness constrains on an arbitrary field instead of the entire * tuple. */ - def setQuantifier: Option[SetQuantifier]; + def setQuantifier: Option[SetQuantifier] /** Defines the output fields that a tuple in the returned relation will * contain, and their content with respect to the tables in the @@ -29,25 +29,28 @@ abstract class Select extends Relation { * empty), all possible input fields will be returned. <h3>Compatibility * notice</h3> SQL's qualified asterisk select sublist is not * available. */ - def selectList: List[DerivedColumn]; + def selectList: List[DerivedColumn] /** Defines the relations from which the query will obtain its data.*/ - def fromClause: List[Relation]; + def fromClause: List[Relation] /** Defines condition that must be true in the returned relation's tuples. - * This value expression must return a boolean or boolean-compatible - * value. This condition is applied before any GROUP BY clause. */ - def whereClause: Option[Expression]; + * This value expression must return a boolean or boolean-compatible + * value. This condition is applied before any GROUP BY clause. + */ + def whereClause: Option[Expression] /** Defines the grouping of the returned relation's tuples. One tuple is - * returned for every group. The value of <code>selectList</code> must - * use aggregate functions for calculation. */ - def groupByClause: Option[List[Expression]]; + * returned for every group. The value of <code>selectList</code> must + * use aggregate functions for calculation. + */ + def groupByClause: Option[List[Expression]] /** Defines conditions that must be true in the returned relation's tuples. - * The value expression must return a boolean can only refer to fields - * that are grouped or to any field from inside an aggregate function. */ - def havingClause: Option[Expression]; + * The value expression must return a boolean can only refer to fields + * that are grouped or to any field from inside an aggregate function. + */ + def havingClause: Option[Expression] /* def windowClause: Option[_]; */ @@ -89,7 +92,8 @@ abstract class Select extends Relation { ); /** A SQL-99 compliant string representation of the relation sub- - * statement. This only has a meaning inside a query. */ - def sqlInnerString: String = "("+sqlString+")"; + * statement. This only has a meaning inside a query. + */ + def sqlInnerString: String = "("+sqlString+")" } diff --git a/src/dbc/scala/dbc/statement/SetClause.scala b/src/dbc/scala/dbc/statement/SetClause.scala index dd25d2fef9..84633624bb 100644 --- a/src/dbc/scala/dbc/statement/SetClause.scala +++ b/src/dbc/scala/dbc/statement/SetClause.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,14 +9,13 @@ // $Id:SetClause.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement -import scala.dbc.statement.expression._; +import scala.dbc.statement.expression._ /** Data to be inserted into a table in an <code>Insert</code>. */ -case class SetClause (name:String, expr:Expression) { - val value: Pair[String,Expression] = Pair(name,expr); - def sqlString: String = - value._1 + " = " + value._2.sqlInnerString; +case class SetClause(name: String, expr: Expression) { + val value: Pair[String,Expression] = (name, expr) + def sqlString: String = value._1 + " = " + value._2.sqlInnerString } diff --git a/src/dbc/scala/dbc/statement/SetQuantifier.scala b/src/dbc/scala/dbc/statement/SetQuantifier.scala index d1a9cfb7a2..7d735d1240 100644 --- a/src/dbc/scala/dbc/statement/SetQuantifier.scala +++ b/src/dbc/scala/dbc/statement/SetQuantifier.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,26 +9,30 @@ // $Id:SetQuantifier.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement /** A set quantifier that defines the collection type of a relation. */ abstract class SetQuantifier { /** A SQL-99 compliant string representation of the set quantifier. */ - def sqlString: String; + def sqlString: String } object SetQuantifier { + /** A set quantifier that defines a relation as being a bag. That means - * that duplicates are allowed. */ + * that duplicates are allowed. + */ case object AllTuples extends SetQuantifier { /** A SQL-99 compliant string representation of the set quantifier. */ - def sqlString: String = "ALL"; + def sqlString: String = "ALL" } + /** A set quantifier that defines a relation as being a set. That means - * that duplicates are not allowed and will be pruned. */ + * that duplicates are not allowed and will be pruned. + */ case object DistinctTuples extends SetQuantifier { /** A SQL-99 compliant string representation of the set quantifier. */ - def sqlString: String = "DISTINCT"; + def sqlString: String = "DISTINCT" } } diff --git a/src/dbc/scala/dbc/statement/Statement.scala b/src/dbc/scala/dbc/statement/Statement.scala index f26e9b8654..b1580c8121 100644 --- a/src/dbc/scala/dbc/statement/Statement.scala +++ b/src/dbc/scala/dbc/statement/Statement.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,10 +9,8 @@ // $Id:Statement.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement /** An ISO-9075:2003 (SQL) statement. */ -abstract class Statement { - -} +abstract class Statement diff --git a/src/dbc/scala/dbc/statement/Status.scala b/src/dbc/scala/dbc/statement/Status.scala index 9835b29e7f..521e546474 100644 --- a/src/dbc/scala/dbc/statement/Status.scala +++ b/src/dbc/scala/dbc/statement/Status.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,22 +9,24 @@ // $Id:Status.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement +import scala.dbc.Database +import scala.dbc.result /** A statement that changes the status of the database. */ abstract class Status extends Statement { /** A SQL-99 compliant string representation of the statement. */ - def sqlString: String; + def sqlString: String /** Executes the statement on the given database. */ - def execute (database: scala.dbc.Database): scala.dbc.result.Status[Unit] = { - database.executeStatement(this); + def execute(database: Database): result.Status[Unit] = { + database.executeStatement(this) } - def execute (database: scala.dbc.Database, debug: Boolean): scala.dbc.result.Status[Unit] = { - database.executeStatement(this,debug); + def execute(database: Database, debug: Boolean): result.Status[Unit] = { + database.executeStatement(this, debug) } } diff --git a/src/dbc/scala/dbc/statement/Table.scala b/src/dbc/scala/dbc/statement/Table.scala index 9c09eec1bd..fa61d5d2e6 100644 --- a/src/dbc/scala/dbc/statement/Table.scala +++ b/src/dbc/scala/dbc/statement/Table.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -9,7 +9,7 @@ // $Id:Table.scala 6853 2006-03-20 16:58:47 +0100 (Mon, 20 Mar 2006) dubochet $ -package scala.dbc.statement; +package scala.dbc.statement /** A reference to a table in the database. @@ -18,23 +18,21 @@ package scala.dbc.statement; abstract class Table extends Relation { /** The name of the table in the database. */ - def tableName: String; + def tableName: String /** The name that the table will be called in the enclosing statement. */ - def tableRename: Option[String]; + def tableRename: Option[String] /** A SQL-99 compliant string representation of the relation statement. */ - def sqlString: String = { - "SELECT * FROM " + tableName - } + def sqlString: String = "SELECT * FROM " + tableName /** A SQL-99 compliant string representation of the relation sub- * statement. This only has a meaning inside a query. */ - def sqlInnerString: String = ( + def sqlInnerString: String = tableName + (tableRename match { case None => "" case Some(rename) => " AS " + rename }) - ) + } |