Difference between revisions of "Silme:Tutorial:IOClient"

From Braniecki's Wiki
Jump to navigation Jump to search
Line 3: Line 3:
 
Now we'll focus on the ways you can use to load/save those objects to actually be able to use the system in the real life.
 
Now we'll focus on the ways you can use to load/save those objects to actually be able to use the system in the real life.
  
There are two levels of this operations. First one is an actual loading entities from somewhere to EntityList and saving EntityList to something. This is covered by IOClient family.
+
There are two levels of this operations. First one is an actual loading entities from somewhere to internal structure like EntityList, L10nObject or L10nPackage and saving it to some place. This is covered by IOClient family.
 +
 
 +
== IOManager ==
 +
 
 +
IOManager class is a command center for all kinds of IOClients classes. It means that you should use it to load a proper I/O class. Currently, the project supports several I/O's like '''file''', '''svn''', '''sqlite''', '''jar'''.
 +
 
  
 
== IOClient ==
 
== IOClient ==
  
IOClient class is
+
IOClient is an abstract class that is a base for every I/O client that can read and write objects. For example a FileClient can read a file into memory and write it back to the hard drive. Or it can load directory as L10nPackage. SvnClient can load L10nPackage from the directory in SVN repository, JarClient can load a '''*.jar''' file as L10nPackage and SQLiteClient can read tables as L10nObjects.
 +
 
 +
In the simple case you just use IOManager to load a proper IOClient and then interact with selected type of IO. For example:
 +
 
 +
<code lang="python">
 +
from mozilla.l10n.object import L10nObject, L10nPackage
 +
from mozilla.l10n.io.IOManager import IOManager
 +
from mozilla.l10n.io.file import FileClient
 +
from mozilla.l10n.io.jar import JarClient
 +
 
 +
ioClient = IOManager.get('file') # you can you other types here like: jar, sqlite, mysql, svn
 +
l10nPackage = ioClient.getL10nPackage(path='./test/')
 +
 
 +
 
 +
ioClient2 = IOManager.get('jar')
 +
l10nPackage2 = ioClient.getL10nPackage(path='./test.jar')
 +
</code>
 +
 
 +
In result we have two l10nPackages, one from the directory on the hard drive, and another extracted from the .jar file.

Revision as of 00:19, 26 June 2008

As you probably noticed, until now we did not get into any way to actually operate on the l10n objects outside of memory. By this moment you should know how to create an Entity, Comment, how to create an EntityList, L10nObject and L10nPackage and bundle it all together.

Now we'll focus on the ways you can use to load/save those objects to actually be able to use the system in the real life.

There are two levels of this operations. First one is an actual loading entities from somewhere to internal structure like EntityList, L10nObject or L10nPackage and saving it to some place. This is covered by IOClient family.

IOManager

IOManager class is a command center for all kinds of IOClients classes. It means that you should use it to load a proper I/O class. Currently, the project supports several I/O's like file, svn, sqlite, jar.


IOClient

IOClient is an abstract class that is a base for every I/O client that can read and write objects. For example a FileClient can read a file into memory and write it back to the hard drive. Or it can load directory as L10nPackage. SvnClient can load L10nPackage from the directory in SVN repository, JarClient can load a *.jar file as L10nPackage and SQLiteClient can read tables as L10nObjects.

In the simple case you just use IOManager to load a proper IOClient and then interact with selected type of IO. For example:

from mozilla.l10n.object import L10nObject, L10nPackage from mozilla.l10n.io.IOManager import IOManager from mozilla.l10n.io.file import FileClient from mozilla.l10n.io.jar import JarClient

ioClient = IOManager.get('file') # you can you other types here like: jar, sqlite, mysql, svn l10nPackage = ioClient.getL10nPackage(path='./test/')


ioClient2 = IOManager.get('jar') l10nPackage2 = ioClient.getL10nPackage(path='./test.jar')

In result we have two l10nPackages, one from the directory on the hard drive, and another extracted from the .jar file.