|
33 | 33 | import com.oracle.labs.mlrg.olcut.config.property.ListProperty;
|
34 | 34 | import com.oracle.labs.mlrg.olcut.config.property.MapProperty;
|
35 | 35 | import com.oracle.labs.mlrg.olcut.config.property.SimpleProperty;
|
| 36 | +import com.oracle.labs.mlrg.olcut.provenance.impl.NullConfiguredProvenance; |
36 | 37 | import com.oracle.labs.mlrg.olcut.provenance.io.FlatMarshalledProvenance;
|
37 | 38 | import com.oracle.labs.mlrg.olcut.provenance.io.ListMarshalledProvenance;
|
38 | 39 | import com.oracle.labs.mlrg.olcut.provenance.io.MapMarshalledProvenance;
|
@@ -490,14 +491,17 @@ public static List<ConfigurationData> extractConfiguration(ObjectProvenance prov
|
490 | 491 | processingQueue.add(provenance);
|
491 | 492 | while (!processingQueue.isEmpty()) {
|
492 | 493 | ObjectProvenance curProv = processingQueue.poll();
|
493 |
| - if (curProv instanceof ConfiguredObjectProvenance) { |
494 |
| - if (!provenanceTracker.containsKey((ConfiguredObjectProvenance)curProv)) { |
495 |
| - provenanceTracker.put((ConfiguredObjectProvenance) curProv, counter); |
496 |
| - traversalOrder.add((ConfiguredObjectProvenance) curProv); |
497 |
| - counter++; |
| 494 | + // skip null provenances |
| 495 | + if (!(curProv instanceof NullConfiguredProvenance)) { |
| 496 | + if (curProv instanceof ConfiguredObjectProvenance) { |
| 497 | + if (!provenanceTracker.containsKey((ConfiguredObjectProvenance) curProv)) { |
| 498 | + provenanceTracker.put((ConfiguredObjectProvenance) curProv, counter); |
| 499 | + traversalOrder.add((ConfiguredObjectProvenance) curProv); |
| 500 | + counter++; |
| 501 | + } |
498 | 502 | }
|
| 503 | + extractProvenanceToQueue(processingQueue, curProv); |
499 | 504 | }
|
500 |
| - extractProvenanceToQueue(processingQueue, curProv); |
501 | 505 | }
|
502 | 506 |
|
503 | 507 | List<ConfigurationData> output = new ArrayList<>();
|
@@ -528,28 +532,37 @@ private static ConfigurationData extractSingleConfiguration(ConfiguredObjectProv
|
528 | 532 |
|
529 | 533 | for (Provenance p : (ListProvenance<?>)prov) {
|
530 | 534 | if (p instanceof ConfiguredObjectProvenance) {
|
531 |
| - list.add(new SimpleProperty(computeName((ConfiguredObjectProvenance)p,map.get(p)))); |
| 535 | + // skip nulls |
| 536 | + if (!(p instanceof NullConfiguredProvenance)) { |
| 537 | + list.add(new SimpleProperty(computeName((ConfiguredObjectProvenance) p, map.get(p)))); |
| 538 | + } |
532 | 539 | } else {
|
533 | 540 | list.add(new SimpleProperty(p.toString()));
|
534 | 541 | }
|
535 | 542 | }
|
536 | 543 |
|
537 | 544 | data.add(e.getKey(),new ListProperty(list));
|
538 | 545 | } else if (prov instanceof MapProvenance) {
|
539 |
| - Map<String,SimpleProperty> propMap = new HashMap<>(); |
| 546 | + Map<String, SimpleProperty> propMap = new HashMap<>(); |
540 | 547 |
|
541 |
| - for (Pair<String,? extends Provenance> pair : (MapProvenance<?>)prov) { |
| 548 | + for (Pair<String, ? extends Provenance> pair : (MapProvenance<?>) prov) { |
542 | 549 | Provenance valueProv = pair.getB();
|
543 | 550 | if (valueProv instanceof ConfiguredObjectProvenance) {
|
544 |
| - propMap.put(pair.getA(),new SimpleProperty(computeName((ConfiguredObjectProvenance)valueProv,map.get(valueProv)))); |
| 551 | + // skip nulls |
| 552 | + if (!(valueProv instanceof NullConfiguredProvenance)) { |
| 553 | + propMap.put(pair.getA(), new SimpleProperty(computeName((ConfiguredObjectProvenance) valueProv, map.get(valueProv)))); |
| 554 | + } |
545 | 555 | } else {
|
546 |
| - propMap.put(pair.getA(),new SimpleProperty(valueProv.toString())); |
| 556 | + propMap.put(pair.getA(), new SimpleProperty(valueProv.toString())); |
547 | 557 | }
|
548 | 558 | }
|
549 | 559 |
|
550 |
| - data.add(e.getKey(),new MapProperty(propMap)); |
| 560 | + data.add(e.getKey(), new MapProperty(propMap)); |
551 | 561 | } else if (prov instanceof ConfiguredObjectProvenance) {
|
552 |
| - data.add(e.getKey(),new SimpleProperty(computeName((ConfiguredObjectProvenance)prov,map.get(prov)))); |
| 562 | + // Skip nulls; |
| 563 | + if (!(prov instanceof NullConfiguredProvenance)) { |
| 564 | + data.add(e.getKey(), new SimpleProperty(computeName((ConfiguredObjectProvenance) prov, map.get(prov)))); |
| 565 | + } |
553 | 566 | } else {
|
554 | 567 | data.add(e.getKey(),new SimpleProperty(prov.toString()));
|
555 | 568 | }
|
|
0 commit comments