@@ -2,14 +2,19 @@ package app.softnetwork.resource.persistence.query
22
33import app .softnetwork .persistence .ManifestWrapper
44import app .softnetwork .persistence .query .ExternalPersistenceProvider
5+ import app .softnetwork .resource .model .Resource .ProviderType
56import app .softnetwork .resource .model .GenericResource
6- import app .softnetwork .resource .spi .{LocalFileSystemProvider , ResourceProvider }
7+ import app .softnetwork .resource .spi .{ResourceProvider , ResourceProviders }
78
89import scala .reflect .ClassTag
910
1011protected [resource] trait ExternalGenericResourceProvider [Resource <: GenericResource ]
1112 extends ExternalPersistenceProvider [Resource ] {
12- _ : ResourceProvider with ManifestWrapper [Resource ] =>
13+ _ : ManifestWrapper [Resource ] =>
14+
15+ def providerType : ProviderType
16+
17+ def provider : ResourceProvider = ResourceProviders .provider(providerType)
1318
1419 /** Creates the underlying document to the external system
1520 *
@@ -22,7 +27,7 @@ protected[resource] trait ExternalGenericResourceProvider[Resource <: GenericRes
2227 */
2328 override def createDocument (document : Resource )(implicit t : ClassTag [Resource ]): Boolean = {
2429 import document ._
25- upsertResource(uuid, content, uri)
30+ provider. upsertResource(uuid, content, uri)
2631 }
2732
2833 /** Updates the underlying document to the external system
@@ -41,7 +46,7 @@ protected[resource] trait ExternalGenericResourceProvider[Resource <: GenericRes
4146 t : ClassTag [Resource ]
4247 ): Boolean = {
4348 import document ._
44- upsertResource(uuid, content, uri)
49+ provider. upsertResource(uuid, content, uri)
4550 }
4651
4752 /** Upsert the underlying document referenced by its uuid to the external system
@@ -61,7 +66,7 @@ protected[resource] trait ExternalGenericResourceProvider[Resource <: GenericRes
6166 else
6267 None
6368 }
64- upsertResource(segments.last, data, uri)
69+ provider. upsertResource(segments.last, data, uri)
6570 }
6671
6772 /** Deletes the underlying document referenced by its uuid to the external system
@@ -79,7 +84,7 @@ protected[resource] trait ExternalGenericResourceProvider[Resource <: GenericRes
7984 else
8085 None
8186 }
82- deleteResource(segments.last, uri)
87+ provider. deleteResource(segments.last, uri)
8388 }
8489
8590}
0 commit comments