The following source code samples show how to use the TDT Engine.
public class TestCaseSgtin extends TestCase
{
private TDTEngine engine = null;
private Map<String,String> params;
protected void setUp() {
params = new HashMap<String,String>();
if (engine == null) {
try {
engine = new TDTEngine();
}
catch (Exception e) {
e.printStackTrace(System.err);
//System.exit(1);
}
}
}
public void testPage13Staged() {
// this test follows fig 4 on page 13 of TDT Spec
// jpb trying this version using a staged approach, only going one level at a time.
params.put("taglength", "96");
params.put("filter", "3");
params.put("companyprefixlength", "7");
String orig = "gtin=00037000302414;serial=1041970";
String s = engine.convert(orig,
params,
LevelTypeList.BINARY);
// ................................................................................................
String expect = "001100000111010000000010010000100010000000011101100010000100000000000000000011111110011000110010";
Assert.assertEquals(expect, s);
String s2 = engine.convert(s,
params,
LevelTypeList.TAG_ENCODING);
expect = "urn:epc:tag:sgtin-96:3.0037000.030241.1041970";
Assert.assertEquals(expect, s2);
System.out.println("te " + s2);
String s3 = engine.convert(s2,
params,
LevelTypeList.PURE_IDENTITY);
expect = "urn:epc:id:sgtin:0037000.030241.1041970";
Assert.assertEquals(expect, s3);
System.out.println("pi " + s3);
String s4 = engine.convert(s3,
params,
LevelTypeList.LEGACY);
Assert.assertEquals(orig, s4);
}
public void testPage13() {
// this test follows fig 4 on page 13 of TDT Spec
params.put("taglength", "96");
params.put("filter", "3");
params.put("companyprefixlength", "7");
String orig = "gtin=00037000302414;serial=1041970";
String s = engine.convert(orig,
params,
LevelTypeList.BINARY);
// ................................................................................................
String expect = "001100000111010000000010010000100010000000011101100010000100000000000000000011111110011000110010";
Assert.assertEquals(expect, s);
String s2 = engine.convert(s,
params,
LevelTypeList.LEGACY);
Assert.assertEquals(orig, s2);
}
public void testPage26() {
// table 3 on page 26 has some legacy codes. Check that they
// convert back and forth to binary.
params.put("taglength", "96");
params.put("filter", "3");
params.put("companyprefixlength", "7");
String legacy [] =
{"gtin=00037000302414;serial=10419703",
"sscc=000370003024147856",
"gln=0003700030247;serial=1041970",
"grai=00037000302414274877906943",
"giai=00370003024149267890123",
"generalmanager=5;objectclass=17;serial=23",
"cageordodaac=AB123;serial=3789156"
};
for (String s : legacy) {
String s2 = engine.convert(s,
params,
LevelTypeList.BINARY);
System.out.println(" " + s + " -> " + s2);
String s3 = engine.convert(s2,
params,
LevelTypeList.LEGACY);
System.out.println(" -> " + s3);
Assert.assertEquals(s, s3);
}
}
public void testSgtin64() {
params.put("taglength", "64");
params.put("filter", "3");
params.put("companyprefixlength", "7");
String orig = "gtin=20073796510026;serial=1";
String s = engine.convert(orig,
params,
LevelTypeList.BINARY);
// ................................................................................................
String expect = "1001100000010011110001111010100011110100000000000000000000000001";
// 9 8 1 3 c 7 a 8 f 4 0 0 0 0 0 1
Assert.assertEquals(expect, s);
}
public void testUsDod96() {
params.put("taglength", "96");
params.put("filter", "0");
String orig = "cageordodaac=2S194;serial=12345678901";
String s = engine.convert(orig,
params,
LevelTypeList.BINARY);
// ................................................................................................
String expect = "001011110000001000000011001001010011001100010011100100110100001011011111110111000001110000110101";
// 2 f 0 2 0 3 2 5 3 3 1 3 9 3 4 2 d f d c 1 c 3 5
Assert.assertEquals(expect, s);
}
public void testUsDod64() {
params.put("taglength", "64");
params.put("filter", "1");
String orig = "cageordodaac=1D381;serial=16522293";
String s = engine.convert(orig,
params,
LevelTypeList.BINARY);
// ................................................................................................
String expect = "1100111001110001000100110011111000110001111111000001110000110101";
// c e 7 1 1 3 3 e 3 1 f c 1 c 3 5
Assert.assertEquals(expect, s);
}
}