001/** 002 * 003 * Copyright 2013-2018 Florian Schmaus 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.jivesoftware.smack.util.stringencoder; 018 019/** 020 * An interface for String encoder. 021 * 022 * @author Florian Schmaus 023 */ 024public interface StringEncoder<O> { 025 /** 026 * Encodes an object to another representation. 027 * 028 * @param object the object to encode. 029 * @return the encoded String 030 */ 031 String encode(O object); 032 033 /** 034 * Decodes a string back to it's initial representation. 035 * 036 * @param string the string to decode. 037 * @return the decoded object 038 */ 039 O decode(String string); 040}