public String getPackedVersionString() { ICFLibAnyObj scopeDef; ICFBamVersionObj versionLeafDef = getVersionLeaf(); List<String> invertedNodeNames = new ArrayList<String>(); while (versionLeafDef != null) { invertedNodeNames.add(getVersionStringForLeafDef(versionLeafDef)); scopeDef = versionLeafDef.getObjScope(); if (scopeDef == null) { versionLeafDef = null; } else if (scopeDef instanceof ICFBamMinorVersionObj) { versionLeafDef = (ICFBamMinorVersionObj) scopeDef; } else if (scopeDef instanceof ICFBamMajorVersionObj) { versionLeafDef = (ICFBamMajorVersionObj) scopeDef; } else if (scopeDef instanceof ICFBamVersionObj) { versionLeafDef = (ICFBamVersionObj) scopeDef; } else { versionLeafDef = null; } } String ret = ""; for (int idx = invertedNodeNames.size() - 1; idx >= 0; idx--) { if (ret.length() == 0) { ret = invertedNodeNames.get(idx); } else { ret = ret + invertedNodeNames.get(idx); } } return (ret); }