|
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