windchill对象IBA属性值的获取工具类 import java.util.Hashtable; import java.util.Locale; import org.apache.log4j.Logger; import wt.iba.definition.litedefinition.AttributeDefDefaultView; import wt.iba.value.DefaultAttributeContainer; import wt.iba.value.IBAHolder; import wt.iba.value.IBAValueUtility; import wt.iba.value.litevalue.AbstractValueView; import wt.iba.value.service.IBAValueHelper; import wt.session.SessionHelper; import wt.util.WTException; public class IBAUtils { private static final Logger logger = Logger.getLogger(IBAUtils.class); private Hashtable<String, Object> ibaContainer = new Hashtable<String, Object>(); public String getIBAValue(String attributeLogicalIdentifier) { try { return getIBAValue(attributeLogicalIdentifier, SessionHelper.manager.getLocale()); } catch (WTException e) { logger.error("getIBAValue(String)", e); } return null; } protected String getIBAValue(String attributeLogicalIdentifier, Locale locale) throws WTException { if (this.ibaContainer.get(attributeLogicalIdentifier) == null) { return null; } AbstractValueView abstractvalueview = (AbstractValueView)((Object[])this.ibaContainer.get(attributeLogicalIdentifier))[1]; try { String value = IBAValueUtility.getLocalizedIBAValueDisplayString(abstractvalueview, locale); return value; } catch (WTException e) { logger.error("getIBAValue(String, Locale)", e); } return null; } public long getIBAID(String attributeLogicalIdentifier) throws WTException { if (this.ibaContainer.get(attributeLogicalIdentifier) == null) { return 0L; } AttributeDefDefaultView attributeDefDefaultView = (AttributeDefDefaultView)((Object[])this.ibaContainer.get(attributeLogicalIdentifier))[0]; return attributeDefDefaultView.getObjectID().getId(); } private void initializeIBA(IBAHolder ibaholder) { try { ibaholder = IBAValueHelper.service.refreshAttributeContainer(ibaholder, null, SessionHelper.manager.getLocale(), null); DefaultAttributeContainer defaultattributecontainer = (DefaultAttributeContainer)ibaholder.getAttributeContainer(); if (defaultattributecontainer != null) { AttributeDefDefaultView[] attributeDefDefaultViews = defaultattributecontainer.getAttributeDefinitions(); for (AttributeDefDefaultView attributeDefDefaultView : attributeDefDefaultViews) { AbstractValueView[] abstractValueView = defaultattributecontainer.getAttributeValues(attributeDefDefaultView); if(attributeDefDefaultView == null){ continue; } Object[] obj = new Object[]{attributeDefDefaultView,abstractValueView[0]}; this.ibaContainer.put(attributeDefDefaultView.getLogicalIdentifier().trim(), obj); } } } catch (Exception e) { logger.error("initializeIBA(IBAHolder)", e); } } public IBAUtils(IBAHolder ibaholder) { initializeIBA(ibaholder); } }