If you'd rather start with the WTTypeDefinition, something like this may work:
public static void main(String[] args) {
try {
String logicalID = "wt.doc.WTDocument";
TypeDefinition typeDefinition = getTypeDefinition(logicalID);
TypeDefinitionReference tdr = getTypeDefinitionReference(typeDefinition);
} catch (Exception e) {
e.printStackTrace();
}
}
private static TypeDefinitionReference getTypeDefinitionReference(TypeDefinition td) throws WTException, WTPropertyVetoException {
TypeDefinitionReference tdr = TypeDefinitionReference.newTypeDefinitionReference();
TypeDefinitionForeignKey key = TypeDefinitionForeignKey.newTypeDefinitionForeignKey();
key.setBranchId(td.getBranchIdentifier());
key.setId(PersistenceHelper.getObjectIdentifier(td).getId());
tdr.setKey(key);
return tdr;
}
private static TypeDefinition getTypeDefinition(String logicalID) {
try {
QuerySpec qs = new QuerySpec(WTTypeDefinition.class);
qs.appendWhere(new SearchCondition(WTTypeDefinition.class,WTTypeDefinition.LOGICAL_IDENTIFIER,SearchCondition.EQUAL,logicalID),new int[]{0});
qs.appendAnd();
qs.appendWhere(new SearchCondition(WTTypeDefinition.class,WTTypeDefinition.LATEST_ITERATION,SearchCondition.IS_TRUE),new int[]{0});
return (TypeDefinition)PersistenceHelper.manager.find((StatementSpec)qs).nextElement();
} catch (Exception e) {
return null;
}
}