Files
2015-09-19 10:52:26 +02:00

299 lines
7.2 KiB
Java

//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
// \\
// Centre for Speech Technology Research \\
// University of Edinburgh, UK \\
// Copyright (c) 1996,1997 \\
// All Rights Reserved. \\
// Permission is hereby granted, free of charge, to use and distribute \\
// this software and its documentation without restriction, including \\
// without limitation the rights to use, copy, modify, merge, publish, \\
// distribute, sublicense, and/or sell copies of this work, and to \\
// permit persons to whom this work is furnished to do so, subject to \\
// the following conditions: \\
// 1. The code must retain the above copyright notice, this list of \\
// conditions and the following disclaimer. \\
// 2. Any modifications must be clearly marked as such. \\
// 3. Original authors' names are not deleted. \\
// 4. The authors' names are not used to endorse or promote products \\
// derived from this software without specific prior written \\
// permission. \\
// THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK \\
// DISCLAIM ALL WARRANTIES With REGARD TO THIS SOFTWARE, INCLUDING \\
// ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT \\
// SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE \\
// FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES \\
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN \\
// AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, \\
// ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF \\
// THIS SOFTWARE. \\
// \\
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
// \\
// Author: Richard Caley (rjc@cstr.ed.ac.uk) \\
// Date: Tue Mar 31 1998 \\
// -------------------------------------------------------------------- \\
// Java wrapper around items. \\
// \\
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
package cstr.est;
import java.lang.*;
import java.util.*;
import java.awt.*;
import cstr.util.*;
import java.io.*;
public class Item
implements Named, Keyed, Featured
{
private long cpp_handle;
private boolean mine;
private Utterance utterance;
private Item_Content contents;
public Item()
{
this(0L, true, null);
}
public Item(long handle)
{
this(handle, false, null);
}
public Item(long handle, Utterance utterance)
{
this(handle, false, utterance);
}
Item(long handle, boolean m, Utterance from_utterance)
{
utterance = from_utterance;
create_cpp_item(handle);
mine=m;
}
protected void finalize() throws Throwable
{
if (mine)
destroy_cpp_item();
super.finalize();
}
protected final Item getItem(long handle)
{
Item i;
if (utterance != null)
i = utterance.getItem(handle);
else
i = new Item(handle);
return i;
}
public long getHandle()
{
return cpp_handle;
}
private native String cpp_name();
public String name()
{
return cpp_name();
}
public String getName()
{
return cpp_name();
}
private native void cpp_setName(String name);
public void setName(String name)
{
cpp_setName(name);
}
private native long cpp_getContent();
public final Item_Content getContent()
{
if (contents==null)
contents = new Item_Content(cpp_getContent());
return contents;
}
public final Object getKey()
{
return getContent();
}
public final int hashCode()
{
return (int)cpp_getContent();
}
public final boolean equals(Object i)
{
return i instanceof Item && ((Item)i).cpp_handle == cpp_handle;
}
private native String cpp_getS(String n, String def);
public String getS(String n, String def)
{
return cpp_getS(n, def);
}
public String getS(String n)
{
return cpp_getS(n, "");
}
public String getFeature(String n)
{
return cpp_getS(n, "");
}
private native float cpp_getF(String n, float def);
public float getF(String n, float def)
{
return cpp_getF(n, def);
}
public float getF(String n)
{
return cpp_getF(n, 0);
}
private native void cpp_set(String n, float val);
public void set(String n, float val)
{
cpp_set(n, val);
}
private native void cpp_set(String n, String val);
public void set(String n, String val)
{
cpp_set(n, val);
}
private native String cpp_type();
public String type()
{
return cpp_type();
}
private native float cpp_getStartTime();
public float getStartTime()
{
return cpp_getStartTime();
}
private native float cpp_getMidTime();
public float getMidTime()
{
return cpp_getMidTime();
}
private native float cpp_getTime();
public float getTime()
{
return cpp_getTime();
}
private native float cpp_getEndTime();
public float getEndTime()
{
return cpp_getEndTime();
}
private native long cpp_next();
public Item next()
{
long h = cpp_next();
if (h==0)
return null;
else
return getItem(h);
}
private native long cpp_prev();
public Item prev()
{
long h = cpp_prev();
if (h==0)
return null;
else
return getItem(h);
}
private native long cpp_up();
public Item up()
{
long h = cpp_up();
if (h==0)
return null;
else
return getItem(h);
}
private native long cpp_down();
public Item down()
{
long h = cpp_down();
if (h==0)
return null;
else
return getItem(h);
}
private native long cpp_insert_after();
public Item insert_after()
{
long h = cpp_insert_after();
if (h==0)
return null;
else
return getItem(h);
}
private native long cpp_insert_before();
public Item insert_before()
{
long h = cpp_insert_before();
if (h==0)
return null;
else
return getItem(h);
}
private native static boolean initialise_cpp();
private native static boolean finalise_cpp();
private native boolean create_cpp_item(long handle);
private native boolean destroy_cpp_item();
static {
System.loadLibrary("estjava");
if (!initialise_cpp())
throw new ExceptionInInitializerError("Item C++ fails");
}
}