public static Hashtable<String,Hashtable<String,ArrayList<String>>> getCSMAttributeOfPart(WTPart part) throws RemoteException, WTException{
LOGGER.debug("ClassificationAtt :: getCSMAttributeOfPart: Start ");
Hashtable<String,Hashtable<String,ArrayList<String>>> leafNodeAttList = new Hashtable<String,Hashtable<String,ArrayList<String>>>();
if(part != null){
IBAHolder partIBAHolder=null;
partIBAHolder=IBAValueHelper.service.refreshAttributeContainer((IBAHolder)part, null, SessionHelper.manager.getLocale(),null);
DefaultAttributeContainer partAttContainer = (DefaultAttributeContainer)partIBAHolder.getAttributeContainer();
if(partAttContainer !=null){
AttributeDefDefaultView[] partAttDefDefaultView= partAttContainer.getAttributeDefinitions();
for ( int i = 0; i < partAttDefDefaultView.length; i++ ){
AbstractValueView[] theValues=partAttContainer.getAttributeValues(partAttDefDefaultView[i]);
if(theValues.length!=0){
for(int j=0;j<theValues.length; j++){
if (theValues[j] instanceof ReferenceValueDefaultView){
AbstractValueView theRefValue=theValues[j];
ReferenceValueDefaultView referenceValue = (ReferenceValueDefaultView)theRefValue;
String classnodeOID = referenceValue.getLiteIBAReferenceable().getReferencedLiteObject().getObjectID().toString();
ClassificationNode classificationNode = (ClassificationNode)new ReferenceFactory().getReference(classnodeOID).getObject();
IBAHolder nodeIBAHolder =(IBAHolder)IBAValueHelper.service.refreshAttributeContainer(classificationNode,"CSM",null,null);
DefaultAttributeContainer theContainer_class = (DefaultAttributeContainer) nodeIBAHolder.getAttributeContainer();
LOGGER.info("classificationNode : "+classificationNode.getName());
Hashtable<String,ArrayList<String>> cmsNodeAtt= new Hashtable<String,ArrayList<String>>();
if ( theContainer_class != null ){
AttributeDefDefaultView[] theAtts_class = theContainer_class.getAttributeDefinitions();
LOGGER.debug("ReadClassificationAttribute:: attribue leanth : "+theAtts_class.length);
for ( int ii = 0; ii < theAtts_class.length; ii++ ) {
LOGGER.debug("ReadClassificationAttribute:: attribue name: "+theAtts_class[ii].getDisplayName());
AbstractValueView[] theValues_class = partAttContainer.getAttributeValues(theAtts_class[ii]);
if ( theValues_class != null && theValues_class.length>0) {
AbstractValueView theValues_obj_class=null;
ArrayList<String> valueList = new ArrayList<String>();
for ( int k = 0; k < theValues_class.length; k++ ) {
theValues_obj_class=theValues_class[k];
if(theValues_obj_class !=null){
LOGGER.debug("ReadClassificationAttribute:: attribue value: "+IBAValueUtility.getLocalizedIBAValueDisplayString(theValues_obj_class, SessionHelper.manager.getLocale()));
valueList.add(IBAValueUtility.getLocalizedIBAValueDisplayString(theValues_obj_class, SessionHelper.manager.getLocale()).trim());
}
}
cmsNodeAtt.put(theAtts_class[ii].getDisplayName().trim(), valueList);
}
}
}
leafNodeAttList.put(classificationNode.getName().trim().toString(), cmsNodeAtt);
}
}
}
}
}
LOGGER.debug("Leaf Node Att List : "+leafNodeAttList);
}
else{
LOGGER.error("Input wtpart for classification search is null");
}
LOGGER.debug("ClassificationAtt :: getCSMAttributeOfPart: End ");
return leafNodeAttList;
}