[sword-devel] Multimap (was: I want to port the API to Java)

Troy A. Griffitts sword-devel@crosswire.org
Fri, 07 Dec 2001 04:08:18 -0700


> OK, I think I am (finally) getting it. Little bit of a language barrier
> there for to begin with... get it language barrier... C++ -> Java ;-)
> 
> OK maybe it is a little late... why do I feel like I am the only one
> laughing?

:) <- *sympathy laugh*


> You are right, the HashMap and Properties objects that are provided do
> not support duplicate values for a name. But I don't think it would take
> much to enhance them to get what is needed (subclass the Properties
> object adding a getProperties(String) method that returns an Iterator).
> And personally I would prefer to use the core libraries if at all
> possible (helps the app maintain portability).

portability?  This is java! :)  I do understand.  If we don't need jgl,
then lets don't build a dependency.  Truth is, I've tried to do exactly
that with the core c++ library.  But there's just some things (gnu
regex, zip, now maybe icu) that I'd rather someone else maintain.


> Not that I dislike JGL, I really don't know anything about it. I went
> and looked at the site and didn't really find much in the way of API
> documentation. I also couldn't find any licensing requirements. Will we
> even be able to bundle it with Sword?

JGL is freely redistributable in binary (.class) (.jar) form, full
license is appended if interested.  Docs are at:
http://www.crosswire.org/java-docs/jgl3.1.0
Source is at ftp://ftp.objectspace.com/pub/jgl


> In the end if it's decided that JGL's mutimap is the best way to go then
> that's what I'll use. I just want to make sure the other options we
> thought out and considered.

Yes.  I agree.  I don't have an emotional attachment to jgl, either, but
I know we do try to take advantage internally of stl.  We try to keep it
out of our interface, if at all possible, but sometimes you'll see it
there also.

Having said all this, I'd like to encourage us to press forward.  There
are many things yet undone that might better occupy our time.  I'm going
to be commiting some additions to sword this evening hopefully.  And
suprisingly, they were done first in java and, if I stay up late enough,
will be ported back to the c++ libs tonight.  They include:

	SWInputMethod virtual class and few decendents for inputing Hebrew text
and a test program: eledit (originally done for project leningradensis
(http://www.leningradensis.org/)).  Look for them in cvs soon.


		-Troy.




> 
> /mike
> 
> --
> ******************************************
>  Mike Dougherty -- Java Software Engineer
> ******************************************
>  Some people carve careers, others chisel them.

_____________________


			License Agreement: 
JGL - The Generic Collection Library for
Java Release Version 3.1

WHEREAS, ObjectSpace, Inc. is the owner 
of valuable intellectual property rights
relating to the Generic Library Release 
for Java(tm) Version 3.1 ("JGL") and 
wishes to license JGL subject to the terms
and conditions set forth below; and 

WHEREAS, you ("Licensee") acknowledge 
that ObjectSpace, Inc. has the right to 
grant licenses to the intellectual 
property rights relating to JGL, and 
that you desire to obtain a license to 
use JGL subject to the terms and 
conditions set forth below; 

ObjectSpace, Inc. grants Licensee a 
non-exclusive, non-transferable,
royalty-free license to use JGL and 
related materials without charge 
provided the Licensee adheres to all 
of the terms and conditions of this
Agreement. 

By downloading, using, or copying JGL 
or any portion thereof, Licensee 
agrees to abide by the intellectual 
property laws and all other applicable 
laws of the United States of America, 
and to all of the terms and conditions 
of this Agreement, and agrees to take 
all necessary steps to ensure that the 
terms and conditions of this Agreement 
are not violated by any person or 
entity under the Licensee's control or 
in the Licensee's service. 

Licensee shall maintain the copyright 
and trademark notices on the materials 
within or otherwise related to JGL, 
and not alter, erase, deface or 
overprint any such notice. 

Except as specifically provided in this 
Agreement, Licensee is expressly prohibited 
from copying, modifying, merging, selling, 
leasing, assigning, or transferring in 
any manner, JGL or any portion thereof. 

Licensee may copy materials within or 
otherwise related to JGL that bear the 
ObjectSpace copyright only as required 
for backup purposes or for use solely 
by the Licensee. 

Licensee may not distribute in any 
form of electronic or printed
communication the materials within 
or otherwise related to JGL that bear 
the ObjectSpace copyright, including 
but not limited to the source code, 
documentation, help files, examples, 
and benchmarks, without prior written 
consent from ObjectSpace, Inc. Send any
requests for limited distribution rights 
to jgl@objectspace.com. 

The Licensee may distribute binaries 
(.class files) derived from or contained 
within JGL ("Binaries") provided that: 

1) The Binaries are not integrated, 
bundled, combined, or otherwise associated 
with a Java development environment or 
Java development tool; and

                      
2) The Binaries are not a documented part
of any distribution material. 

OBJECTSPACE, INC. DISCLAIMS AND MAKES 
NO REPRESENTATIONS OR WARRANTIES ABOUT 
THE SUITABILITY OF JGL, EITHER EXPRESSED 
OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
THE IMPLIED WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE, OR 
NON-INFRINGEMENT. OBJECTSPACE, INC. SHALL 
NOT BE LIABLE FOR ANY DIRECT OR CONSEQUENTIAL
DAMAGES SUFFERED BY LICENSEE AS A RESULT 
OF USING, MODIFYING, OR DISTRIBUTING JGL 
OR ITS DERIVATIVES. 

This agreement shall be construed and 
enforced in accordance with the laws of 
the United States of America and the State 
of Texas (excluding its choice of law rules).