![JAR search and dependency download from the Maven repository](/logo.png)
org.nasdanika.html.model.app.util.AppObjectLoaderSupplier Maven / Gradle / Ivy
package org.nasdanika.html.model.app.util;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.Objects;
import java.util.function.Consumer;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.nasdanika.common.Context;
import org.nasdanika.common.DiagnosticException;
import org.nasdanika.common.ProgressMonitor;
import org.nasdanika.common.Status;
import org.nasdanika.common.Supplier;
/**
* Loads root element from a resource URI passed to constructor.
* @author Pavel
*
*/
public class AppObjectLoaderSupplier extends AppObjectLoaderExecutionParticipant implements Supplier {
private URI uri;
public AppObjectLoaderSupplier(URI uri, Context context) {
super(context);
this.uri = uri;
}
@Override
public EObject execute(ProgressMonitor progressMonitor) {
return resourceSet.getResource(uri, false).getContents().get(0);
}
@Override
protected Collection getResources() {
return Collections.singletonList(uri);
}
/**
* Loads object using AppObjectLoaderSupplier
* @param resource
* @param diagnosticConsumer
* @param context
* @param progressMonitor
* @return
* @throws Exception
*/
public static EObject loadObject(
String resource,
Consumer diagnosticConsumer,
Context context,
ProgressMonitor progressMonitor) {
URI resourceURI = URI.createFileURI(new File(resource).getAbsolutePath());
return loadObject(resourceURI, diagnosticConsumer, context, progressMonitor);
}
public static EObject loadObject(
URI resourceURI,
Consumer diagnosticConsumer,
Context context,
ProgressMonitor progressMonitor) {
// Diagnosing loaded resources.
try {
try (AppObjectLoaderSupplier appObjectLoaderSupplier = new AppObjectLoaderSupplier(resourceURI, context)) {
return Objects.requireNonNull(appObjectLoaderSupplier.call(progressMonitor, diagnosticConsumer), "Loaded null from " + resourceURI);
}
} catch (DiagnosticException e) {
System.err.println("******************************");
System.err.println("* Diagnostic failed *");
System.err.println("******************************");
e.getDiagnostic().dump(System.err, 4, Status.FAIL);
throw e;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy