コード例 #1
0
ファイル: V0_9_2Transformer.java プロジェクト: eclipse/osee
  private Map<Long, Long> convertArtifactAndConflicts(ExchangeDataProcessor processor)
      throws OseeCoreException {
    V0_9_2ArtifactVersionHandler handler = new V0_9_2ArtifactVersionHandler();
    processor.parse("osee.artifact.version.data.xml", handler);
    Map<Long, Long> artifactGammaToNetGammaId = handler.getArtifactGammaToNetGammaId();
    Map<Integer, Long> artIdToNetGammaId = handler.getArtIdToNetGammaId();

    processor.transform(
        ExportItem.OSEE_ARTIFACT_DATA, new V0_9_2ArtifactDataTransformer(artIdToNetGammaId));
    processor.transform(
        ExportItem.OSEE_CONFLICT_DATA, new V0_9_2ConflictTransformer(artifactGammaToNetGammaId));

    return artifactGammaToNetGammaId;
  }
コード例 #2
0
ファイル: V0_9_2Transformer.java プロジェクト: eclipse/osee
  @Override
  public Version applyTransform(ExchangeDataProcessor processor, Log logger)
      throws OseeCoreException {
    List<Long> branchUuids = convertBranchTable(processor);

    Map<Long, Long> artifactGammaToNetGammaId = convertArtifactAndConflicts(processor);
    consolidateTxsAddressing(
        processor, ExportItem.OSEE_TXS_DATA, branchUuids, artifactGammaToNetGammaId);

    HashCollection<String, String> tableToColumns = new HashCollection<>();
    tableToColumns.put("osee_artifact", "<column id=\"gamma_id\" type=\"NUMERIC\" />\n");
    tableToColumns.put(
        "osee_branch", "<column id=\"baseline_transaction_id\" type=\"INTEGER\" />\n");
    processor.transform(ExportItem.EXPORT_DB_SCHEMA, new DbSchemaRuleAddColumn(tableToColumns));

    processor.transform(
        ExportItem.EXPORT_MANIFEST,
        new ReplaceAll("<entry id=\"osee.artifact.version.data.xml[^<]+", ""));
    processor.deleteExportItem("osee.artifact.version.data.xml");
    return getMaxVersion();
  }
コード例 #3
0
ファイル: V0_9_2Transformer.java プロジェクト: eclipse/osee
  private void consolidateTxsAddressing(
      ExchangeDataProcessor processor,
      ExportItem exportItem,
      List<Long> branchUuids,
      Map<Long, Long> artifactGammaToNetGammaId)
      throws OseeCoreException {
    File targetFile = processor.getDataProvider().getFile(exportItem);
    File tempFile = new File(Lib.changeExtension(targetFile.getPath(), "temp"));
    Writer fileWriter = null;
    HashCollection<Long, Address> addressMap = new HashCollection<>(false, TreeSet.class);
    V0_9_2TxsConsolidateParser transformer =
        new V0_9_2TxsConsolidateParser(artifactGammaToNetGammaId, addressMap);
    try {
      fileWriter = processor.startTransform(targetFile, tempFile, transformer);
      ExchangeUtil.readExchange(tempFile, transformer);

      for (long branchUuid : branchUuids) {
        transformer.setBranchId(branchUuid);
        ExchangeUtil.readExchange(tempFile, transformer);

        for (Long gammaId : addressMap.keySet()) {
          Collection<Address> addresses = addressMap.getValues(gammaId);
          fixAddressing(addresses);
          writeAddresses(transformer.getWriter(), addresses);
        }
        addressMap.clear();
      }
      tempFile.delete();
    } catch (Exception ex) {
      OseeExceptions.wrapAndThrow(ex);
    } finally {
      try {
        transformer.finish();
      } catch (Exception ex) {
        OseeExceptions.wrapAndThrow(ex);
      } finally {
        Lib.close(fileWriter);
      }
    }
  }
コード例 #4
0
ファイル: V0_9_2Transformer.java プロジェクト: eclipse/osee
 private List<Long> convertBranchTable(ExchangeDataProcessor processor) throws OseeCoreException {
   Map<Long, Integer> branchToBaseTx = new HashMap<>(10000);
   processor.parse(ExportItem.OSEE_TX_DETAILS_DATA, new V0_9_2TxDetailsHandler(branchToBaseTx));
   processor.transform(ExportItem.OSEE_BRANCH_DATA, new V0_9_2BranchTransformer(branchToBaseTx));
   return new ArrayList<Long>(branchToBaseTx.keySet());
 }