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; }