Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name := "trove-scala"

version := "0.1.0"

organization := "com.codahale"

scalaVersion := "2.10.3"

// crossPaths := false
//
retrieveManaged := true

resolvers ++= Seq(
"repo.codahale.com" at "http://repo.codahale.com"
// Resolver for trove-scala source; nonexistent here yet
// "repo.codahale.com" at "http://repo.codahale.com",
// Resolver if you want to find stuff out of your local Maven cache
// "Local Maven Repository" at "file://"+Path.userHome+"/.m2/repository"
)

libraryDependencies ++= Seq(
"net.sf.trove4j" % "trove4j" % "3.0.3",
"com.simple" % "simplespec_2.10.2" % "0.8.4"
)

// turn on all warnings in Java code
javacOptions ++= Seq("-Xlint")

// turn on all Scala warnings; also turn on deprecation warnings.
scalacOptions ++= Seq("-deprecation", "-Xlint", "-unchecked")

// Add optimization
scalacOptions ++= Seq("-optimise")
239 changes: 166 additions & 73 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
</sequential>
</macrodef>

<macrodef name="render-map-iterator">
<macrodef name="render-primitive-map-iterator">
<attribute name="keyType"/>
<attribute name="valueType"/>
<sequential>
Expand All @@ -45,6 +45,38 @@
</sequential>
</macrodef>

<macrodef name="render-object-primitive-map-iterator">
<attribute name="valueType"/>
<sequential>
<copy file="src/main/resources/com/codahale/trove/collection/ObjectPrimitiveMapIterator.scala.tpl"
tofile="src/main/scala/com/codahale/trove/collection/Object@{valueType}Iterator.scala">
<filterchain>
<replacetokens>
<token key="valueType" value="@{valueType}"/>
<token key="header"
value="// AUTOMATICALLY GENERATED FILE!!! DO NOT EDIT!!!"/>
</replacetokens>
</filterchain>
</copy>
</sequential>
</macrodef>

<macrodef name="render-primitive-object-map-iterator">
<attribute name="keyType"/>
<sequential>
<copy file="src/main/resources/com/codahale/trove/collection/PrimitiveObjectMapIterator.scala.tpl"
tofile="src/main/scala/com/codahale/trove/collection/@{keyType}ObjectIterator.scala">
<filterchain>
<replacetokens>
<token key="keyType" value="@{keyType}"/>
<token key="header"
value="// AUTOMATICALLY GENERATED FILE!!! DO NOT EDIT!!!"/>
</replacetokens>
</filterchain>
</copy>
</sequential>
</macrodef>

<target name="render-iterators">
<parallel>
<render-iterator type="Byte"/>
Expand All @@ -53,42 +85,57 @@
<render-iterator type="Float"/>
<render-iterator type="Int"/>
<render-iterator type="Long"/>
<render-map-iterator keyType="Byte" valueType="Byte"/>
<render-map-iterator keyType="Byte" valueType="Char"/>
<render-map-iterator keyType="Byte" valueType="Double"/>
<render-map-iterator keyType="Byte" valueType="Float"/>
<render-map-iterator keyType="Byte" valueType="Int"/>
<render-map-iterator keyType="Byte" valueType="Long"/>
<render-map-iterator keyType="Char" valueType="Byte"/>
<render-map-iterator keyType="Char" valueType="Char"/>
<render-map-iterator keyType="Char" valueType="Double"/>
<render-map-iterator keyType="Char" valueType="Float"/>
<render-map-iterator keyType="Char" valueType="Int"/>
<render-map-iterator keyType="Char" valueType="Long"/>
<render-map-iterator keyType="Double" valueType="Byte"/>
<render-map-iterator keyType="Double" valueType="Char"/>
<render-map-iterator keyType="Double" valueType="Double"/>
<render-map-iterator keyType="Double" valueType="Float"/>
<render-map-iterator keyType="Double" valueType="Int"/>
<render-map-iterator keyType="Double" valueType="Long"/>
<render-map-iterator keyType="Float" valueType="Byte"/>
<render-map-iterator keyType="Float" valueType="Char"/>
<render-map-iterator keyType="Float" valueType="Double"/>
<render-map-iterator keyType="Float" valueType="Float"/>
<render-map-iterator keyType="Float" valueType="Int"/>
<render-map-iterator keyType="Float" valueType="Long"/>
<render-map-iterator keyType="Int" valueType="Byte"/>
<render-map-iterator keyType="Int" valueType="Char"/>
<render-map-iterator keyType="Int" valueType="Double"/>
<render-map-iterator keyType="Int" valueType="Float"/>
<render-map-iterator keyType="Int" valueType="Int"/>
<render-map-iterator keyType="Int" valueType="Long"/>
<render-map-iterator keyType="Long" valueType="Byte"/>
<render-map-iterator keyType="Long" valueType="Char"/>
<render-map-iterator keyType="Long" valueType="Double"/>
<render-map-iterator keyType="Long" valueType="Float"/>
<render-map-iterator keyType="Long" valueType="Int"/>
<render-map-iterator keyType="Long" valueType="Long"/>

<render-primitive-map-iterator keyType="Byte" valueType="Byte"/>
<render-primitive-map-iterator keyType="Byte" valueType="Char"/>
<render-primitive-map-iterator keyType="Byte" valueType="Double"/>
<render-primitive-map-iterator keyType="Byte" valueType="Float"/>
<render-primitive-map-iterator keyType="Byte" valueType="Int"/>
<render-primitive-map-iterator keyType="Byte" valueType="Long"/>
<render-primitive-map-iterator keyType="Char" valueType="Byte"/>
<render-primitive-map-iterator keyType="Char" valueType="Char"/>
<render-primitive-map-iterator keyType="Char" valueType="Double"/>
<render-primitive-map-iterator keyType="Char" valueType="Float"/>
<render-primitive-map-iterator keyType="Char" valueType="Int"/>
<render-primitive-map-iterator keyType="Char" valueType="Long"/>
<render-primitive-map-iterator keyType="Double" valueType="Byte"/>
<render-primitive-map-iterator keyType="Double" valueType="Char"/>
<render-primitive-map-iterator keyType="Double" valueType="Double"/>
<render-primitive-map-iterator keyType="Double" valueType="Float"/>
<render-primitive-map-iterator keyType="Double" valueType="Int"/>
<render-primitive-map-iterator keyType="Double" valueType="Long"/>
<render-primitive-map-iterator keyType="Float" valueType="Byte"/>
<render-primitive-map-iterator keyType="Float" valueType="Char"/>
<render-primitive-map-iterator keyType="Float" valueType="Double"/>
<render-primitive-map-iterator keyType="Float" valueType="Float"/>
<render-primitive-map-iterator keyType="Float" valueType="Int"/>
<render-primitive-map-iterator keyType="Float" valueType="Long"/>
<render-primitive-map-iterator keyType="Int" valueType="Byte"/>
<render-primitive-map-iterator keyType="Int" valueType="Char"/>
<render-primitive-map-iterator keyType="Int" valueType="Double"/>
<render-primitive-map-iterator keyType="Int" valueType="Float"/>
<render-primitive-map-iterator keyType="Int" valueType="Int"/>
<render-primitive-map-iterator keyType="Int" valueType="Long"/>
<render-primitive-map-iterator keyType="Long" valueType="Byte"/>
<render-primitive-map-iterator keyType="Long" valueType="Char"/>
<render-primitive-map-iterator keyType="Long" valueType="Double"/>
<render-primitive-map-iterator keyType="Long" valueType="Float"/>
<render-primitive-map-iterator keyType="Long" valueType="Int"/>
<render-primitive-map-iterator keyType="Long" valueType="Long"/>

<render-object-primitive-map-iterator valueType="Byte"/>
<render-object-primitive-map-iterator valueType="Char"/>
<render-object-primitive-map-iterator valueType="Double"/>
<render-object-primitive-map-iterator valueType="Float"/>
<render-object-primitive-map-iterator valueType="Int"/>
<render-object-primitive-map-iterator valueType="Long"/>

<render-primitive-object-map-iterator keyType="Byte"/>
<render-primitive-object-map-iterator keyType="Char"/>
<render-primitive-object-map-iterator keyType="Double"/>
<render-primitive-object-map-iterator keyType="Float"/>
<render-primitive-object-map-iterator keyType="Int"/>
<render-primitive-object-map-iterator keyType="Long"/>
</parallel>
</target>

Expand Down Expand Up @@ -144,7 +191,7 @@
</parallel>
</target>

<macrodef name="render-map">
<macrodef name="render-primitive-map">
<attribute name="keyType"/>
<attribute name="valueType"/>
<sequential>
Expand All @@ -162,43 +209,89 @@
</sequential>
</macrodef>

<macrodef name="render-object-primitive-map">
<attribute name="valueType"/>
<sequential>
<copy file="src/main/resources/com/codahale/trove/mutable/ObjectPrimitiveMap.scala.tpl"
tofile="src/main/scala/com/codahale/trove/mutable/Object@{valueType}Map.scala">
<filterchain>
<replacetokens>
<token key="valueType" value="@{valueType}"/>
<token key="header"
value="// AUTOMATICALLY GENERATED FILE!!! DO NOT EDIT!!!"/>
</replacetokens>
</filterchain>
</copy>
</sequential>
</macrodef>

<macrodef name="render-primitive-object-map">
<attribute name="keyType"/>
<sequential>
<copy file="src/main/resources/com/codahale/trove/mutable/PrimitiveObjectMap.scala.tpl"
tofile="src/main/scala/com/codahale/trove/mutable/@{keyType}ObjectMap.scala">
<filterchain>
<replacetokens>
<token key="keyType" value="@{keyType}"/>
<token key="header"
value="// AUTOMATICALLY GENERATED FILE!!! DO NOT EDIT!!!"/>
</replacetokens>
</filterchain>
</copy>
</sequential>
</macrodef>

<target name="render-maps">
<parallel>
<render-map keyType="Byte" valueType="Byte"/>
<render-map keyType="Byte" valueType="Char"/>
<render-map keyType="Byte" valueType="Double"/>
<render-map keyType="Byte" valueType="Float"/>
<render-map keyType="Byte" valueType="Int"/>
<render-map keyType="Byte" valueType="Long"/>
<render-map keyType="Char" valueType="Byte"/>
<render-map keyType="Char" valueType="Char"/>
<render-map keyType="Char" valueType="Double"/>
<render-map keyType="Char" valueType="Float"/>
<render-map keyType="Char" valueType="Int"/>
<render-map keyType="Char" valueType="Long"/>
<render-map keyType="Double" valueType="Byte"/>
<render-map keyType="Double" valueType="Char"/>
<render-map keyType="Double" valueType="Double"/>
<render-map keyType="Double" valueType="Float"/>
<render-map keyType="Double" valueType="Int"/>
<render-map keyType="Double" valueType="Long"/>
<render-map keyType="Float" valueType="Byte"/>
<render-map keyType="Float" valueType="Char"/>
<render-map keyType="Float" valueType="Double"/>
<render-map keyType="Float" valueType="Float"/>
<render-map keyType="Float" valueType="Int"/>
<render-map keyType="Float" valueType="Long"/>
<render-map keyType="Int" valueType="Byte"/>
<render-map keyType="Int" valueType="Char"/>
<render-map keyType="Int" valueType="Double"/>
<render-map keyType="Int" valueType="Float"/>
<render-map keyType="Int" valueType="Int"/>
<render-map keyType="Int" valueType="Long"/>
<render-map keyType="Long" valueType="Byte"/>
<render-map keyType="Long" valueType="Char"/>
<render-map keyType="Long" valueType="Double"/>
<render-map keyType="Long" valueType="Float"/>
<render-map keyType="Long" valueType="Int"/>
<render-primitive-map keyType="Byte" valueType="Byte"/>
<render-primitive-map keyType="Byte" valueType="Char"/>
<render-primitive-map keyType="Byte" valueType="Double"/>
<render-primitive-map keyType="Byte" valueType="Float"/>
<render-primitive-map keyType="Byte" valueType="Int"/>
<render-primitive-map keyType="Byte" valueType="Long"/>
<render-primitive-map keyType="Char" valueType="Byte"/>
<render-primitive-map keyType="Char" valueType="Char"/>
<render-primitive-map keyType="Char" valueType="Double"/>
<render-primitive-map keyType="Char" valueType="Float"/>
<render-primitive-map keyType="Char" valueType="Int"/>
<render-primitive-map keyType="Char" valueType="Long"/>
<render-primitive-map keyType="Double" valueType="Byte"/>
<render-primitive-map keyType="Double" valueType="Char"/>
<render-primitive-map keyType="Double" valueType="Double"/>
<render-primitive-map keyType="Double" valueType="Float"/>
<render-primitive-map keyType="Double" valueType="Int"/>
<render-primitive-map keyType="Double" valueType="Long"/>
<render-primitive-map keyType="Float" valueType="Byte"/>
<render-primitive-map keyType="Float" valueType="Char"/>
<render-primitive-map keyType="Float" valueType="Double"/>
<render-primitive-map keyType="Float" valueType="Float"/>
<render-primitive-map keyType="Float" valueType="Int"/>
<render-primitive-map keyType="Float" valueType="Long"/>
<render-primitive-map keyType="Int" valueType="Byte"/>
<render-primitive-map keyType="Int" valueType="Char"/>
<render-primitive-map keyType="Int" valueType="Double"/>
<render-primitive-map keyType="Int" valueType="Float"/>
<render-primitive-map keyType="Int" valueType="Int"/>
<render-primitive-map keyType="Int" valueType="Long"/>
<render-primitive-map keyType="Long" valueType="Byte"/>
<render-primitive-map keyType="Long" valueType="Char"/>
<render-primitive-map keyType="Long" valueType="Double"/>
<render-primitive-map keyType="Long" valueType="Float"/>
<render-primitive-map keyType="Long" valueType="Int"/>

<render-object-primitive-map valueType="Byte"/>
<render-object-primitive-map valueType="Char"/>
<render-object-primitive-map valueType="Double"/>
<render-object-primitive-map valueType="Float"/>
<render-object-primitive-map valueType="Int"/>
<render-object-primitive-map valueType="Long"/>

<render-primitive-object-map keyType="Byte"/>
<render-primitive-object-map keyType="Char"/>
<render-primitive-object-map keyType="Double"/>
<render-primitive-object-map keyType="Float"/>
<render-primitive-object-map keyType="Int"/>
<render-primitive-object-map keyType="Long"/>
</parallel>
</target>

Expand Down
19 changes: 11 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<modelVersion>4.0.0</modelVersion>

<groupId>com.codahale</groupId>
<artifactId>trove-scala_2.9.1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>trove-scala_2.10</artifactId>
<version>0.0.2-SNAPSHOT</version>
<name>Trove Collections for Scala ${scala.version}</name>

<properties>
<scala.version>2.9.1</scala.version>
<scala.version>2.10.3</scala.version>
</properties>

<developers>
Expand Down Expand Up @@ -82,12 +82,12 @@
<dependency>
<groupId>net.sf.trove4j</groupId>
<artifactId>trove4j</artifactId>
<version>3.0.0</version>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.codahale</groupId>
<artifactId>simplespec_${scala.version}</artifactId>
<version>0.5.2</version>
<groupId>com.simple</groupId>
<artifactId>simplespec_2.10.2</artifactId>
<version>0.8.4</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down Expand Up @@ -121,7 +121,7 @@
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.3-SNAPSHOT</version>
<version>2.15.2</version>
<executions>
<execution>
<goals>
Expand All @@ -136,6 +136,9 @@
<arg>-unchecked</arg>
<arg>-deprecation</arg>
</args>
<jvmArgs>
<arg>-Xmx1024m</arg>
</jvmArgs>
<compilerPlugins>
<compilerPlugin>
<groupId>com.nativelibs4java</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
@header@

package com.codahale.trove.collection

import gnu.trove.iterator.TObject@valueType@Iterator

case class Object@valueType@Iterator[A](val underlying: TObject@valueType@Iterator[A]) extends Iterator[(A, @valueType@)] {
def hasNext = underlying.hasNext

def next() = {
underlying.advance()
(underlying.key(), underlying.value())
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
@header@

package com.codahale.trove.collection

import gnu.trove.iterator.T@keyType@ObjectIterator

case class @keyType@ObjectIterator[A](val underlying: T@keyType@ObjectIterator[A]) extends Iterator[(@keyType@, A)] {
def hasNext = underlying.hasNext

def next() = {
underlying.advance()
(underlying.key(), underlying.value())
}
}

Loading