示例#1
0
  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();
      }
    }
  }