/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package io.netty.handler.codec; /** * Thrown if an unsupported message is received by an codec. */ public class UnsupportedMessageTypeException extends CodecException { private static final long serialVersionUID = 2799598826487038726L; public UnsupportedMessageTypeException( Object message, Class<?>... expectedTypes) { super(message( message == null? "null" : message.getClass().getName(), expectedTypes)); } public UnsupportedMessageTypeException() { } public UnsupportedMessageTypeException(String message, Throwable cause) { super(message, cause); } public UnsupportedMessageTypeException(String s) { super(s); } public UnsupportedMessageTypeException(Throwable cause) { super(cause); } private static String message( String actualType, Class<?>... expectedTypes) { StringBuilder buf = new StringBuilder(actualType); if (expectedTypes != null && expectedTypes.length > 0) { buf.append(" (expected: ").append(expectedTypes[0].getName()); for (int i = 1; i < expectedTypes.length; i ++) { Class<?> t = expectedTypes[i]; if (t == null) { break; } buf.append(", ").append(t.getName()); } buf.append(')'); } return buf.toString(); } }