1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2002,2010 Oracle. All rights reserved.
*
* $Id: TestClassCatalog.java,v 1.18.2.2 2010/01/04 15:30:41 cwl Exp $
*/
package com.sleepycat.bind.serial.test;
import java.io.ObjectStreamClass;
import java.util.HashMap;
import com.sleepycat.bind.serial.ClassCatalog;
import com.sleepycat.je.DatabaseException;
/**
* @author Mark Hayes
*/
public class TestClassCatalog implements ClassCatalog {
private HashMap idToDescMap = new HashMap();
private HashMap nameToIdMap = new HashMap();
private int nextId = 1;
public TestClassCatalog() {
}
public void close()
throws DatabaseException {
}
public synchronized byte[] getClassID(ObjectStreamClass desc)
throws DatabaseException {
String className = desc.getName();
byte[] id = (byte[]) nameToIdMap.get(className);
if (id == null) {
String strId = String.valueOf(nextId);
id = strId.getBytes();
nextId += 1;
idToDescMap.put(strId, desc);
nameToIdMap.put(className, id);
}
return id;
}
public synchronized ObjectStreamClass getClassFormat(byte[] id)
throws DatabaseException {
String strId = new String(id);
ObjectStreamClass desc = (ObjectStreamClass) idToDescMap.get(strId);
if (desc == null) {
throw new DatabaseException("classID not found");
}
return desc;
}
}
|