Snapper 3.0 API

org.enhydra.snapper.parsers.fileparsers.parsers.office2007opc
Class Package

java.lang.Object
  extended by org.enhydra.snapper.parsers.fileparsers.parsers.office2007opc.Package
All Implemented Interfaces:
PartMarshaller

public class Package
extends java.lang.Object
implements PartMarshaller

Représente un paquet suivant les spécifications de l'Open packaging Convention.

Version:
0.1
Author:
Julien Chable

Field Summary
protected  PartMarshaller defaultPartMarshaller
          Le PartMarshaller par défaut.
protected  java.util.Hashtable<java.lang.String,PartMarshaller> partMarshallers
          Les PartMarshaller en fonction du type de contenu.
 
Method Summary
 void addMarshaller(java.lang.String contentType, PartMarshaller marshaller)
          Ajoute un marshaller.
 PackagePart addPart(java.net.URI partUri, java.lang.String contentType)
          Ajouter une partie à ce package.
 PackagePart addPart(java.net.URI partUri, java.lang.String contentType, java.io.File content)
          Ajouter une partie à ce package à partir du contenu d'un fichier.
 void addRelationship(java.net.URI targetUri, TargetMode targetMode, java.lang.String relationshipType)
          Ajouter une relation au niveau du package.
 java.util.zip.ZipFile getArchive()
           
 org.enhydra.snapper.parsers.fileparsers.parsers.office2007opc.Package.ContentTypeHelper getContentTypeHelper()
           
 PackageAccess getPackageAccess()
           
 PackagePart getPart(PackageRelationship partRel)
          Obtenir la partie référencée par la relation spécifiée.
 PackagePart getPart(java.net.URI partUri)
          Récupérer une partie spécifique de ce package.
 java.util.ArrayList<PackagePart> getPartByContentType(java.lang.String contentType)
          Récupérer les parties dont le type de contenu est celui spécifié en argument.
 java.util.ArrayList<PackagePart> getPartByRelationshipType(java.lang.String relationshipType)
          Récupérer les parties en fontion du type de relation.
 java.util.ArrayList<PackagePart> getParts()
          Obtenir les parties de l'archive.
 PackageRelationshipCollection getRelationships()
          Récupérer toutes les relations de ce package.
 PackageRelationshipCollection getRelationshipsByType(java.lang.String relationshipType)
          Récupérer les relations possédant le type spécifié
static java.util.ArrayList<java.net.URI> listPackageParts(java.util.zip.ZipFile zipfile)
          Liste l'ensemble des parties contenues dans un package.
 void marshall(PackagePart part, java.io.OutputStream out)
          Enregistre les parties dans le flux compressé Zip
static Package open(java.util.zip.ZipFile archive, PackageAccess access)
          Ouvre ou crée une archive OPC
 boolean partExists(java.net.URI partUri)
          Savoir si une partie est bien présente dans le paquet.
 void removeMarshaller(java.lang.String contentType)
          Supprimer un marshaller en fonction de son type de contenu.
 void removePart(java.net.URI partUri)
           
 void removeRelationship(java.lang.String id)
          Supprimer une relation du package.
 void save(java.io.File destFile)
          Enregistre le document dans le fichier spécifié.
 void throwExceptionIfReadOnly()
          Lance une exception si le mode d'accès est ouvert/créé en lecture seulement (PackageAccess.Read).
 void throwExceptionIfWriteOnly()
          Lance une exception si le mode d'accès est en écriture seule (PackageAccess.Write).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

partMarshallers

protected java.util.Hashtable<java.lang.String,PartMarshaller> partMarshallers
Les PartMarshaller en fonction du type de contenu.


defaultPartMarshaller

protected PartMarshaller defaultPartMarshaller
Le PartMarshaller par défaut.

Method Detail

open

public static Package open(java.util.zip.ZipFile archive,
                           PackageAccess access)
Ouvre ou crée une archive OPC

Parameters:
archive - L'archive ZIP du document.
access - Mode d'accès au document (lecture seule, écriture seule, lecture/écriture)
Returns:
Le document résultant de l'ouverture ou de la création.

listPackageParts

public static java.util.ArrayList<java.net.URI> listPackageParts(java.util.zip.ZipFile zipfile)
Liste l'ensemble des parties contenues dans un package. Le fichier de type de contenu [Content_Types].xml n'est pas listé.

Parameters:
zipfile - Le fichier de paquet compressé à l'aide de l'algorithme ZIP.
Returns:
La liste des URIs de l'ensemble des parties du paquet.

throwExceptionIfReadOnly

public void throwExceptionIfReadOnly()
Lance une exception si le mode d'accès est ouvert/créé en lecture seulement (PackageAccess.Read).


throwExceptionIfWriteOnly

public void throwExceptionIfWriteOnly()
Lance une exception si le mode d'accès est en écriture seule (PackageAccess.Write). Cette méthode est appellée par les méthodes nécessitant un droit d'écriture sur le document.


getPart

public PackagePart getPart(java.net.URI partUri)
Récupérer une partie spécifique de ce package.

Parameters:
parturi - L'URI de la partie
Returns:
La partie correspondant à l'URI spécifié

getPartByContentType

public java.util.ArrayList<PackagePart> getPartByContentType(java.lang.String contentType)
Récupérer les parties dont le type de contenu est celui spécifié en argument.

Parameters:
contentType - Le type de contenu à chercher.
Returns:
Toutes le sparties dont le type de contenu est celui spécifié.

getPartByRelationshipType

public java.util.ArrayList<PackagePart> getPartByRelationshipType(java.lang.String relationshipType)
Récupérer les parties en fontion du type de relation.

Parameters:
relationshipType - Le type de relation.
Returns:
Toutes les parties ayant le type de relation spécifié.

getPart

public PackagePart getPart(PackageRelationship partRel)
Obtenir la partie référencée par la relation spécifiée.

Parameters:
partRel - La relation de partie

getParts

public java.util.ArrayList<PackagePart> getParts()
Obtenir les parties de l'archive. Si celles-ci n'ont pas encore été chargé depuis le document, alors cela est réalisé par cette méthode.

Returns:
Les parties de ce package.

addPart

public PackagePart addPart(java.net.URI partUri,
                           java.lang.String contentType)
Ajouter une partie à ce package.

Parameters:
partUri - L'URI de la partie
contentType - Le type de contenu de la partie.
Returns:
L'objet PackagePart représentant la partie nouvellement ajoutée.

addPart

public PackagePart addPart(java.net.URI partUri,
                           java.lang.String contentType,
                           java.io.File content)
                    throws java.io.IOException
Ajouter une partie à ce package à partir du contenu d'un fichier.

Parameters:
partUri - L'URI de destination de la partie dans le paquet
contentType - Le type de contenu du paquet
content - Le fichier d'origine dont le contenu sera lu et ajouté dans la partie ajoutée
Returns:
La partie nouvellement ajoutée.
Throws:
java.io.IOException

removePart

public void removePart(java.net.URI partUri)

partExists

public boolean partExists(java.net.URI partUri)
Savoir si une partie est bien présente dans le paquet.

Parameters:
partUri - L'URI de la partie à vérifier.
Returns:
true si la partie existe logiquement dans le paquet sinon false.

addRelationship

public void addRelationship(java.net.URI targetUri,
                            TargetMode targetMode,
                            java.lang.String relationshipType)
Ajouter une relation au niveau du package.

Parameters:
targetUri - L'URI de la partie cible.
targetMode - La méthode de ciblage (Internal|External).
relationshipType - Le type de la relation.

removeRelationship

public void removeRelationship(java.lang.String id)
Supprimer une relation du package.

Parameters:
id - L'identifiant de la relation à supprimer.

getRelationships

public PackageRelationshipCollection getRelationships()
Récupérer toutes les relations de ce package.

Returns:
Les relations de niveau paquet de ce package.

getRelationshipsByType

public PackageRelationshipCollection getRelationshipsByType(java.lang.String relationshipType)
Récupérer les relations possédant le type spécifié

Parameters:
relationshipType - Le filtre spécifiant le type de relation des relations à retourner.
Returns:
Les relations dont le type correspond au filtre.

save

public void save(java.io.File destFile)
Enregistre le document dans le fichier spécifié.

Parameters:
destFile - Le fichier de destination

addMarshaller

public void addMarshaller(java.lang.String contentType,
                          PartMarshaller marshaller)
Ajoute un marshaller.

Parameters:
contentType - Le type de contenu associé à ce marshaller.
marshaller - Le marshaller à utilsier pour enregistrer les parties du type de contenu spécifié.

removeMarshaller

public void removeMarshaller(java.lang.String contentType)
Supprimer un marshaller en fonction de son type de contenu.

Parameters:
contentType - Le type de contenu de la partie à supprimer.

marshall

public void marshall(PackagePart part,
                     java.io.OutputStream out)
Enregistre les parties dans le flux compressé Zip

Specified by:
marshall in interface PartMarshaller

getArchive

public java.util.zip.ZipFile getArchive()

getContentTypeHelper

public org.enhydra.snapper.parsers.fileparsers.parsers.office2007opc.Package.ContentTypeHelper getContentTypeHelper()

getPackageAccess

public PackageAccess getPackageAccess()

Snapper 3.0 API