Get the Attributes of an Asset Dynamically -

Dermot Butterfield - 06 September 2015


Get the Attributes of an Asset Dynamically

It has often proven useful to gain access to the asset definition so as to access all the attributes of an asset.  In the example below I am looking for the attributes of asset of type MyAddressAsset which has an asset definition called MyAddressDefinition.

I create and instance of the AssetTypeDefManager called assetDefManager and pass it a reference to ics which is the same ics used in ics.GetVar("").   This allows us to create an instance of AssetTypeDef called assetDef.  To create an AssetTypeDef instance we need to specify the asset type and asset definition.  I have called these fatAssetType, fatAssetDefinition respectively.

Using the getAttributeDefs() method of the AssetTypeDef instance assetDef, we retrieve a Java List of all the attributes associate with that asset.
This list can then be iterated (here we use a for loop for clarity but a list iterator is just as valid) and the attributes retrieved. In the example below we print the attribute name each on a new line.  What you do with this is up to you.

String fatAssetType = "MyAddressAsset";
String fatAssetDefinition = "MyAddressDefinition";

//Gets instance of the asset definition manager
AssetTypeDefManager assetDefManager = new AssetTypeDefManagerImpl(ics);  
//Gets fatwire asset type by asset name and definition
AssetTypeDef assetDef = assetDefManager.findByName(fatAssetType, fatAssetDefinition); 

List attrDefsList = assetDef.getAttributeDefs();     
for (int i=0; i<attrDefsList.size(); i++) {
	AttributeDef def = (AttributeDef)attrDefsList.get(i);
	out.println("<br />" + ics.GetVar(def.getName()));

You may notice that some of the common attributes are returned along with the custom attributes of the FatWire asset definition.  These can be filtered out using the isMetaDataAttribute() method of the returned attribute.  The updated for loop is below.

for (int i=0; i<attrDefsList.size(); i++) {
	AttributeDef def = (AttributeDef)attrDefsList.get(i);
	if (!def.isMetaDataAttribute()) { //only show user created attributes
		out.println("<br />" + ics.GetVar(def.getName()));

Contact Us

I hope you found this useful or if you have any questions don't hesitate to leave a comment or contact support[@]tomred[.]net



I have spent most of my time working on these little bits of logic or snippets. These come from problems or issues I have encountered over the year. These are insights I have researched or provided as code review feedback.

Oracle WebCenter (FatWire)

During my time working in consulting I was tasked many times with delivering FatWire sites. I took notes due to the lack of useful documentation at the time. These are the results of those notes made and shared.


I believe the majority of time on a project is spent with the UI. Web is no exception. I have compiled a set of articles covering HTML, CSS and JS with the intention of taking the sting out of this work.


A space dedicated to all those things you need to know beyond writing code. This covers Linux, Windows, Git and SVN among other hopefully useful nuggets.


I picked up some pointers over the years consulting for government and banking sectors before entering a PCI DSS development environment. This section covers aspects like coding, testing, code review and best practice.


Apps is a section which offers access to bits and pieces I have put together over the last few years. This includes Random Password Generator and Base64 Encoder.