@@ -76,43 +76,54 @@ public function resources()
7676 return $ resources ;
7777 }
7878
79- public function resource ($ name, $ resource = null )
79+ public function getResource ($ name )
8080 {
81- if ($ resource ) {
82- if (is_a ($ resource , 'frictionlessdata \\datapackage \\Resources \\BaseResource ' )) {
83- $ resource = $ resource ->descriptor ();
84- } else {
85- $ resource = Utils::objectify ($ resource );
86- }
87- $ resource ->name = $ name ;
88- $ resourceDescriptors = [];
89- $ gotMatch = false ;
90- foreach ($ this ->descriptor ->resources as $ resourceDescriptor ) {
91- if ($ resourceDescriptor ->name == $ resource ->name ) {
92- $ resourceDescriptors [] = $ resource ;
93- $ gotMatch = true ;
94- } else {
95- $ resourceDescriptors [] = $ resourceDescriptor ;
96- }
81+ foreach ($ this ->descriptor ->resources as $ resourceDescriptor ) {
82+ if ($ resourceDescriptor ->name == $ name ) {
83+ return $ this ->initResource ($ resourceDescriptor );
9784 }
98- if (!$ gotMatch ) {
85+ }
86+ throw new \Exception ("couldn't find matching resource with name = ' {$ name }' " );
87+ }
88+
89+ public function addResource ($ name , $ resource )
90+ {
91+ if (is_a ($ resource , 'frictionlessdata \\datapackage \\Resources \\BaseResource ' )) {
92+ $ resource = $ resource ->descriptor ();
93+ } else {
94+ $ resource = Utils::objectify ($ resource );
95+ }
96+ $ resource ->name = $ name ;
97+ $ resourceDescriptors = [];
98+ $ gotMatch = false ;
99+ foreach ($ this ->descriptor ->resources as $ resourceDescriptor ) {
100+ if ($ resourceDescriptor ->name == $ resource ->name ) {
99101 $ resourceDescriptors [] = $ resource ;
102+ $ gotMatch = true ;
103+ } else {
104+ $ resourceDescriptors [] = $ resourceDescriptor ;
100105 }
101- $ this ->descriptor ->resources = $ resourceDescriptors ;
102- if (!$ this ->skipValidations ) {
103- $ this ->revalidate ();
104- }
106+ }
107+ if (!$ gotMatch ) {
108+ $ resourceDescriptors [] = $ resource ;
109+ }
110+ $ this ->descriptor ->resources = $ resourceDescriptors ;
111+ if (!$ this ->skipValidations ) {
112+ $ this ->revalidate ();
113+ }
114+ }
115+
116+ // TODO: remove this function and use the getResource / addResource directly (will need to modify a lot of tests code)
117+ public function resource ($ name , $ resource = null )
118+ {
119+ if ($ resource ) {
120+ $ this ->addResource ($ name , $ resource );
105121 } else {
106- foreach ($ this ->descriptor ->resources as $ resourceDescriptor ) {
107- if ($ resourceDescriptor ->name == $ name ) {
108- return $ this ->initResource ($ resourceDescriptor );
109- }
110- }
111- throw new \Exception ("couldn't find matching resource with name = ' {$ name }' " );
122+ return $ this ->getResource ($ name );
112123 }
113124 }
114125
115- public function deleteResource ($ name )
126+ public function removeResource ($ name )
116127 {
117128 $ resourceDescriptors = [];
118129 foreach ($ this ->descriptor ->resources as $ resourceDescriptor ) {
0 commit comments