View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */ 
17  
18  package org.apache.commons.codec;
19  
20  /**
21   * <p>Provides the highest level of abstraction for Encoders.
22   * This is the sister interface of {@link Decoder}.  Every implementation of
23   * Encoder provides this common generic interface whic allows a user to pass a 
24   * generic Object to any Encoder implementation in the codec package.</p>
25   *
26   * @author Apache Software Foundation
27   * @version $Id: Encoder.java 480406 2006-11-29 04:56:58Z bayard $
28   */
29  public interface Encoder {
30      
31      /**
32       * Encodes an "Object" and returns the encoded content 
33       * as an Object.  The Objects here may just be <code>byte[]</code>
34       * or <code>String</code>s depending on the implementation used.
35       *   
36       * @param pObject An object ot encode
37       * 
38       * @return An "encoded" Object
39       * 
40       * @throws EncoderException an encoder exception is
41       *  thrown if the encoder experiences a failure
42       *  condition during the encoding process.
43       */
44      Object encode(Object pObject) throws EncoderException;
45  }  
46