I tried to add a child XML based content to a XML based virtual content programatically and getting the following error. The child content and virtual content reside in the repository. Any idea why I am getting the following error.
thanks in advance
java.lang.ClassCastExcepti
on: com.documentum.vdm.impl.Ad
aptiveNode
.
sample code
public boolean checkoutVDM(String docId){
try {
IDfCheckoutOperation coOp = clientx.getCheckoutOperati
on();
//coOp.setDestinationDirec
tory("E://
aaa/TempAr
ea");
IDfDocument doc = (IDfDocument) session.getObject(new DfId(docId));
IDfCheckoutNode coNode;
if (doc.isVirtualDocument()){
IDfVirtualDocument vDoc = doc.asVirtualDocument( "CURRENT",false);
coNode = (IDfCheckoutNode)coOp.add(
vDoc);
} else {
coNode = (IDfCheckoutNode)coOp.add(
doc);
}
if (coOp.execute()) {
return true;
} else {
return false;
}
} catch(Exception ex){
ex.printStackTrace();
System.out.println("checko
utVDM Error: " + ex.getLocalizedMessage());
}
return false;
}
public boolean checkinVDM(String docId){
try {
IDfCheckinOperation cio = clientx.getCheckinOperatio
n();
cio.setCheckinVersion(IDfC
heckinOper
ation.NEXT
_MAJOR);
cio.setVersionLabels("CURR
ENT");
IDfDocument doc = (IDfDocument) session.getObject(new DfId(docId));
if (doc.isVirtualDocument()){
IDfVirtualDocument vDoc = doc.asVirtualDocument( "CURRENT",false);
IDfCheckinNode node = (IDfCheckinNode) cio.add(vDoc);
} else{
IDfCheckinNode node = (IDfCheckinNode) cio.add(doc);
}
if (!cio.execute())
{
return false;
}
} catch(Exception ex){
ex.printStackTrace();
System.out.println("checki
nVDM Error: " + ex.getLocalizedMessage());
}
return true;
}
public boolean createVDMNode(String parentIdString, String childIdString, String versionLabel, String siblingIdString){
try {
boolean bCheckoutSuccess = checkoutVDM(parentIdString
);
if (bCheckoutSuccess) {
IDfVirtualDocument vDoc = null;
IDfId parentIdObject = clientx.getId(parentIdStri
ng);
IDfSysObject sysObj = (IDfSysObject) session.getObject(parentId
Object);
if (versionLabel.equals("")) versionLabel = null;
if (sysObj != null){
vDoc = sysObj.asVirtualDocument(n
ull,false)
;
IDfVirtualDocumentNode root = vDoc.getRootNode();
IDfId childId = session.getIdByQualificati
on("dm_sys
object where r_object_id='" + childIdString + "'");
IDfSysObject childObj = (IDfSysObject) session.getObject(childId)
;
IDfVirtualDocumentNode siblingNode = null;
if (!siblingIdString.equals(n
ull) & !siblingIdString.equals(""
)){
IDfId siblingId = session.getIdByQualificati
on("dm_sys
object where r_object_id='" + siblingIdString + "'");
IDfSysObject siblingObj = (IDfSysObject) session.getObject(siblingI
d);
String siblingChronId = siblingObj.getChronicleId(
).toString
();
siblingNode = vDoc.find(root,siblingChro
nId,"i_chr
onicle_id"
,0);
}
IDfVirtualDocumentNode childVDNode = vDoc.addNode(root, siblingNode, childObj.getChronicleId(),
null, false, false);
//vDoc.addNode(root, siblingNode, childObj.getChronicleId(),
null, false, false);
boolean bCheckinSuccess = checkinVDM(parentIdString)
;
if (bCheckinSuccess) {
return true;
} else {
return false;
}
}
}
} catch(Exception ex){
ex.printStackTrace();
System.out.println("checki
nVDM Error: " + ex.getLocalizedMessage());
}
return false;
}