@@ -69,7 +69,8 @@ private Literal createLiteral(Object value) {
6969 }
7070
7171 public Resource createNewEObjectResource (Model model , EObject eObject ) {
72- return createNewEObjectResource (model , eObject , createEObjectIRI (model , eObject ));
72+ String iri = createEObjectIRI (model , eObject );
73+ return iri == null ? null : createNewEObjectResource (model , eObject , iri );
7374 }
7475
7576 public Resource createNewEObjectResource (Model model , EObject eObject , String iri ) {
@@ -125,15 +126,8 @@ private RDFNode createValueRDFNode(Object value, Model model) {
125126 }
126127
127128 if (value instanceof EObject eob ) {
128- if (eob .eResource () != null ) {
129- // Turn the EObject into an RDF resource if needed
130- return getEObjectResource (model , (EObject ) value );
131- } else {
132- // Not in a resource - we can't get a URI for it
133- return null ;
134- }
129+ return getEObjectResource (model , eob );
135130 } else {
136- // Literal values
137131 return createLiteral (value );
138132 }
139133 }
@@ -225,7 +219,11 @@ private Statement createStatement(Model model, Resource eObjectResource, EStruct
225219 // OBJECT
226220 RDFNode object = createValueRDFNode (value , model );
227221
228- return object != null ? ResourceFactory .createStatement (rdfNode , property , object ) : null ;
222+ if (object == null ) {
223+ return null ;
224+ } else {
225+ return ResourceFactory .createStatement (rdfNode , property , object );
226+ }
229227 }
230228
231229 private String getEMFResourceURI (EObject eObject ) {
@@ -247,9 +245,13 @@ private String createEObjectIRI(Model model, EObject eObject) {
247245 String prefix = model .getNsPrefixMap ().get ("" );
248246 if (null != prefix ) {
249247 eObjectNamespace = prefix ;
250- } else {
248+ } else if ( eObject . eResource () != null ) {
251249 // Fallback to file names with a fragment for the eObject <file>#<eObjectname>
252250 eObjectNamespace = getEMFResourceURI (eObject ) + "#" ;
251+ } else {
252+ // No default prefix and the EObject does not belong to a resource: give up
253+ System .err .println ("Cannot generate IRI for object without resource and without default namespace: " + eObject );
254+ return null ;
253255 }
254256 }
255257
0 commit comments