package gw.pcf.tools uses com.guidewire.pl.domain.personaldata.PersonalDataEntityRegistry uses gw.api.system.PCLoggerCategory uses gw.entity.IEntityType /** * Test only class for displaying entity info in test obfuscation page. * * Not meant to be in production. If it does... Ding Ding SHAME! */ @Export class ObfuscationEntityInfo { var _entityType : IEntityType as EntityType var _publicID : String as PublicID var _entityFields : List as EntityFields var _deleted : boolean as Deleted = false construct(bean : KeyableBean) { _entityType = bean.IntrinsicType _publicID = bean.PublicID _entityFields = new ArrayList() populateObfuscatedInfo(bean) } private function populateObfuscatedInfo(bean : KeyableBean) { var personalDataFields = PersonalDataEntityRegistry.getInstance().getPersonalDataFields(_entityType) bean.IntrinsicType.EntityProperties.toList().where(\elt -> elt.ColumnInDb and not elt.Autogenerated).each(\elt -> { try { var fieldInfo = new ObfuscationEntityFieldInfo() fieldInfo.FieldName = elt.ColumnName fieldInfo.IsPersonalData = personalDataFields.contains(elt) _entityFields.add(fieldInfo) } catch (e : Exception) { PCLoggerCategory.UI.error(e.Message) } }) } public function loadObfuscatedValueFromDB() { loadFieldValuesFromDB(false) } public function loadOriginalValueFromDB() { loadFieldValuesFromDB(true) } private function loadFieldValuesFromDB(originalValue : boolean) { try { var bean = com.guidewire.pl.system.bundle.ReadOnlyBundle.SharedInstance.loadByPublicId(_entityType, _publicID) bean.IntrinsicType.EntityProperties.toList().where(\elt -> elt.ColumnInDb and not elt.Autogenerated).each(\elt -> { try { var fieldInfo = _entityFields.singleWhere(\field -> field.FieldName == elt.ColumnName) if (originalValue) { fieldInfo.OriginalValue = bean.getFieldValue(elt.ColumnName) } else { fieldInfo.ObfuscatedValue = bean.getFieldValue(elt.ColumnName) } } catch (e : Exception) { PCLoggerCategory.UI.error(e.Message) } }) } catch (e : Exception) { _deleted = true } } }