1 /*
   2  * reserved comment block
   3  * DO NOT REMOVE OR ALTER!
   4  */
   5 /**
   6  * Licensed to the Apache Software Foundation (ASF) under one
   7  * or more contributor license agreements. See the NOTICE file
   8  * distributed with this work for additional information
   9  * regarding copyright ownership. The ASF licenses this file
  10  * to you under the Apache License, Version 2.0 (the
  11  * "License"); you may not use this file except in compliance
  12  * with the License. You may obtain a copy of the License at
  13  *
  14  * http://www.apache.org/licenses/LICENSE-2.0
  15  *
  16  * Unless required by applicable law or agreed to in writing,
  17  * software distributed under the License is distributed on an
  18  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  19  * KIND, either express or implied. See the License for the
  20  * specific language governing permissions and limitations
  21  * under the License.
  22  */
  23 package com.sun.org.apache.xml.internal.security.encryption;
  24 
  25 import com.sun.org.apache.xml.internal.security.c14n.Canonicalizer;
  26 import org.w3c.dom.Element;
  27 import org.w3c.dom.Node;
  28 import org.w3c.dom.NodeList;
  29 
  30 /**
  31  * Converts <code>String</code>s into <code>Node</code>s and visa versa.
  32  */
  33 public interface Serializer {
  34     
  35     /**
  36      * Set the Canonicalizer object to use.
  37      */
  38     void setCanonicalizer(Canonicalizer canon);
  39     
  40     /**
  41      * Returns a <code>byte[]</code> representation of the specified
  42      * <code>Element</code>.
  43      *
  44      * @param element the <code>Element</code> to serialize.
  45      * @return the <code>byte[]</code> representation of the serilaized
  46      *   <code>Element</code>.
  47      * @throws Exception
  48      */
  49     byte[] serializeToByteArray(Element element) throws Exception;
  50 
  51     /**
  52      * Returns a <code>byte[]</code> representation of the specified
  53      * <code>NodeList</code>.
  54      * 
  55      * @param content the <code>NodeList</code> to serialize.
  56      * @return the <code>byte[]</code> representation of the serialized
  57      *   <code>NodeList</code>.
  58      * @throws Exception
  59      */
  60     byte[] serializeToByteArray(NodeList content) throws Exception;
  61 
  62     /**
  63      * Use the Canonicalizer to serialize the node
  64      * @param node
  65      * @return the (byte[]) canonicalization of the node
  66      * @throws Exception
  67      */ 
  68     byte[] canonSerializeToByteArray(Node node) throws Exception;
  69 
  70     /**
  71      * @param source
  72      * @param ctx
  73      * @return the Node resulting from the parse of the source
  74      * @throws XMLEncryptionException
  75      */
  76     Node deserialize(byte[] source, Node ctx) throws XMLEncryptionException;
  77 }