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 */
23package com.sun.org.apache.xml.internal.security.encryption;
24
25import com.sun.org.apache.xml.internal.security.c14n.Canonicalizer;
26import org.w3c.dom.Element;
27import org.w3c.dom.Node;
28import org.w3c.dom.NodeList;
29
30/**
31 * Converts <code>String</code>s into <code>Node</code>s and visa versa.
32 */
33public 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}
78