Author: tabish
Date: Wed Feb 18 20:15:29 2009
New Revision: 745634
URL: http://svn.apache.org/viewvc?rev=745634&view=rev
Log:
Add ClassCastException
Added:
activemq/activemq-cpp/trunk/src/main/decaf/lang/exceptions/ClassCastException.h
(with props)
Added:
activemq/activemq-cpp/trunk/src/main/decaf/lang/exceptions/ClassCastException.h
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/decaf/lang/exceptions/ClassCastException.h?rev=745634&view=auto
==============================================================================
---
activemq/activemq-cpp/trunk/src/main/decaf/lang/exceptions/ClassCastException.h
(added)
+++
activemq/activemq-cpp/trunk/src/main/decaf/lang/exceptions/ClassCastException.h
Wed Feb 18 20:15:29 2009
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF 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.
+ */
+#ifndef _DECAF_LANG_EXCEPTIONS_CLASSCASTEXCEPTION_H_
+#define _DECAF_LANG_EXCEPTIONS_CLASSCASTEXCEPTION_H_
+
+#include <decaf/lang/Exception.h>
+
+namespace decaf{
+namespace lang{
+namespace exceptions{
+
+ /*
+ * Thrown when an Dynamic Cast fails
+ */
+ class DECAF_API ClassCastException : public Exception
+ {
+ public:
+
+ /**
+ * Default Constructor
+ */
+ ClassCastException() throw() : Exception() {}
+
+ /**
+ * Conversion Constructor from some other Exception
+ * @param An exception that should become this type of Exception
+ */
+ ClassCastException( const Exception& ex ) throw()
+ : Exception()
+ {
+ *(Exception*)this = ex;
+ }
+
+ /**
+ * Copy Constructor
+ */
+ ClassCastException( const ClassCastException& ex ) throw()
+ : Exception()
+ {
+ *(Exception*)this = ex;
+ }
+
+ /**
+ * Constructor
+ * @param cause Pointer to the exception that caused this one to
+ * be thrown, the object is cloned caller retains ownership.
+ */
+ ClassCastException( const std::exception* cause )
+ throw() : Exception( cause ) {}
+
+ /**
+ * Constructor - Initializes the file name and line number where
+ * this message occurred. Sets the message to report, using an
+ * optional list of arguments to parse into the message
+ * @param file name where exception occurs
+ * @param line number where the exception occurred.
+ * @param message to report
+ * @param list of primitives that are formatted into the message
+ */
+ ClassCastException( const char* file, const int lineNumber,
+ const char* msg, ... ) throw()
+ : Exception()
+ {
+ va_list vargs;
+ va_start( vargs, msg );
+ buildMessage( msg, vargs );
+
+ // Set the first mark for this exception.
+ setMark( file, lineNumber );
+ }
+
+ /**
+ * Constructor - Initializes the file name and line number where
+ * this message occurred. Sets the message to report, using an
+ * optional list of arguments to parse into the message
+ * @param file name where exception occurs
+ * @param line number where the exception occurred.
+ * @param cause The exception that was the cause for this one to be
thrown.
+ * @param message to report
+ * @param list of primitives that are formatted into the message
+ */
+ ClassCastException( const char* file, const int lineNumber,
+ const std::exception* cause,
+ const char* msg, ... ) throw()
+ : Exception( cause )
+ {
+ va_list vargs ;
+ va_start( vargs, msg );
+ buildMessage( msg, vargs );
+
+ // Set the first mark for this exception.
+ setMark( file, lineNumber );
+ }
+
+ /**
+ * Clones this exception. This is useful for cases where you need
+ * to preserve the type of the original exception as well as the
message.
+ * All subclasses should override.
+ */
+ virtual ClassCastException* clone() const{
+ return new ClassCastException( *this );
+ }
+
+ /**
+ * Destructor
+ */
+ virtual ~ClassCastException() throw() {}
+
+ };
+
+}}}
+
+#endif /*_DECAF_LANG_EXCEPTIONS_CLASSCASTEXCEPTION_H_*/
Propchange:
activemq/activemq-cpp/trunk/src/main/decaf/lang/exceptions/ClassCastException.h
------------------------------------------------------------------------------
svn:eol-style = native