private <T extends ExporterDescription, V> ModelOutput<V> createOutput0( DataModelDefinition<V> definition, ExporterRetriever<T> retriever, ExporterDescription description, TestContext context) throws IOException { assert definition != null; assert retriever != null; assert description != null; T desc = retriever.getDescriptionClass().cast(description); return retriever.createOutput(definition, desc, context); }
private <T extends ExporterDescription> DataModelSource createSource0( DataModelDefinition<?> definition, ExporterRetriever<T> retriever, ExporterDescription description, TestContext context) throws IOException { assert retriever != null; assert description != null; T desc = retriever.getDescriptionClass().cast(description); return retriever.createSource(definition, desc, context); } }
private <T extends ExporterDescription> void truncate0( ExporterRetriever<T> preparator, ExporterDescription description, TestContext context) throws IOException { assert preparator != null; assert description != null; T desc = preparator.getDescriptionClass().cast(description); preparator.truncate(desc, context); }
private <T> void prepare( DataModelDefinition<T> definition, ExporterDescription desctipion, URI source) throws IOException { assert definition != null; assert desctipion != null; assert source != null; ModelOutput<T> output = exporters.createOutput(definition, desctipion, context); prepare(definition, output, source); }
@Override public void truncate(ExporterDescription description, TestContext context) throws IOException { for (ExporterRetriever<?> element : elements) { if (element.getDescriptionClass().isAssignableFrom(description.getClass())) { truncate0(element, description, context); return; } } throw new IOException(MessageFormat.format( Messages.getString("SpiExporterRetriever.errorFailedToTruncate"), //$NON-NLS-1$ description)); }
private <T> List<Difference> inspect( DataModelDefinition<T> definition, ExporterDescription description, VerifyEngine engine) throws IOException { assert definition != null; assert description != null; assert engine != null; List<Difference> results = new ArrayList<>(); try (DataModelSource target = targets.createSource(definition, description, context)) { results.addAll(engine.inspectInput(target)); } results.addAll(engine.inspectRest()); return results; }
/** * Truncates the target exporter's output. * @param description target importer * @throws IOException if failed to prepare the importer * @throws IllegalArgumentException if some parameters were {@code null} */ public void truncate(ExporterDescription description) throws IOException { if (description == null) { throw new IllegalArgumentException("description must not be null"); //$NON-NLS-1$ } exporters.truncate(description, context); }
private <T> void prepare( DataModelDefinition<T> definition, ExporterDescription desctipion, DataModelSourceFactory source) throws IOException { assert definition != null; assert desctipion != null; assert source != null; ModelOutput<T> output = getDriver(desctipion).createOutput(definition, desctipion, context); prepare(definition, output, source); }
@Override public <V> ModelOutput<V> createOutput( DataModelDefinition<V> definition, ExporterDescription description, TestContext context) throws IOException { for (ExporterRetriever<?> element : elements) { if (element.getDescriptionClass().isAssignableFrom(description.getClass())) { return createOutput0(definition, element, description, context); } } throw new IOException(MessageFormat.format( Messages.getString("SpiExporterRetriever.errorFailedToCreateOutput"), //$NON-NLS-1$ description)); }
private <T> List<Difference> inspect( DataModelDefinition<T> definition, ExporterDescription description, VerifyContext verifyContext, VerifierFactory verifier) throws IOException { assert definition != null; assert description != null; assert verifier != null; List<Difference> results; try (DataModelSource target = getDriver(description).createSource(definition, description, context); Verifier engine = verifier.createVerifier(definition, verifyContext)) { results = engine.verify(target); } Collections.sort(results, new DifferenceComparator(definition)); return results; }
/** * Truncates the target exporter's output. * @param description target importer * @throws IOException if failed to prepare the importer * @throws IllegalArgumentException if some parameters were {@code null} */ public void truncate(ExporterDescription description) throws IOException { if (description == null) { throw new IllegalArgumentException("description must not be null"); //$NON-NLS-1$ } getDriver(description).truncate(description, context); }
/** * Opens the target exporter's output to prepare it. * @param <T> type of data model * @param type class of data model * @param description target exporter * @return model object sink to prepare the importer's input * @throws IOException if failed to open the importer * @throws IllegalArgumentException if some parameters were {@code null} */ public <T> ModelOutput<T> prepare(Class<T> type, ExporterDescription description) throws IOException { if (type == null) { throw new IllegalArgumentException("type must not be null"); //$NON-NLS-1$ } if (description == null) { throw new IllegalArgumentException("description must not be null"); //$NON-NLS-1$ } if (type != description.getModelType()) { throw new IllegalArgumentException( "invalid model type: type must be = description.getModelType()"); //$NON-NLS-1$ } DataModelDefinition<T> definition = findDefinition(type); return exporters.createOutput(definition, description, context); }
@Override public <V> DataModelSource createSource( DataModelDefinition<V> definition, ExporterDescription description, TestContext context) throws IOException { for (ExporterRetriever<?> element : elements) { if (element.getDescriptionClass().isAssignableFrom(description.getClass())) { return createSource0(definition, element, description, context); } } throw new IOException(MessageFormat.format( Messages.getString("SpiExporterRetriever.errorFailedToCreateSource"), //$NON-NLS-1$ description)); }
try (DataModelSource source = getDriver(description).createSource(definition, description, context); DataModelSink sink = resultDataSink.createSink(definition, context);) { while (true) {