public Requisition getActiveRequisition(final boolean createIfMissing) {
      if (m_pending != null) {
        return m_pending;
      }

      final Requisition pending =
          RequisitionFileUtils.getLatestPendingOrSnapshotRequisition(
              getPendingForeignSourceRepository(), m_foreignSource);
      final Requisition deployed =
          getDeployedForeignSourceRepository().getRequisition(m_foreignSource);

      if (pending == null && deployed == null && createIfMissing) {
        return new Requisition(m_foreignSource);
      } else if (pending == null) {
        return deployed;
      } else if (deployed == null) {
        return pending;
      } else if (deployed.getDate().after(pending.getDate())) {
        // deployed is newer than pending
        return deployed;
      }
      return pending;
    }