public void calcOccursOwners() { if (m_occursItemSettings != null && m_occursItemSettings.m_arrVarDefOccursOwner != null) { int nNbDimensions = m_occursItemSettings.m_arrVarDefOccursOwner.size(); m_occursItemSettings.m_aOccursOwnerLocation = new OccursOwnerLocation[nNbDimensions]; VarDefBase varDefOccursOwnerCurrent = this; for (int n = 0; n < nNbDimensions; n++) { VarDefBase varDefOccursOwner = m_occursItemSettings.m_arrVarDefOccursOwner.get(n); int nDistanceFromOccursOwner = varDefOccursOwnerCurrent.m_nDefaultAbsolutePosition - varDefOccursOwner.m_nDefaultAbsolutePosition; int nSignleEntrySize = varDefOccursOwner.getOneEntrySize(); m_occursItemSettings.m_aOccursOwnerLocation[n] = new OccursOwnerLocation( nDistanceFromOccursOwner, varDefOccursOwner.m_nDefaultAbsolutePosition, nSignleEntrySize); varDefOccursOwnerCurrent = varDefOccursOwner; } } if (m_arrChildren != null) { int nNbChildren = m_arrChildren.size(); for (int nChild = 0; nChild < nNbChildren; nChild++) { VarDefBase varDefChild = getChild(nChild); varDefChild.calcOccursOwners(); } } }