// Path: msgpack-core/src/main/java/org/msgpack/value/ImmutableTimestampValue.java
// public interface ImmutableTimestampValue
//         extends TimestampValue, ImmutableValue
// {
// }
// 
// Path: msgpack-core/src/main/java/org/msgpack/value/ImmutableValue.java
// public interface ImmutableValue
//         extends Value
// {
//     @Override
//     public ImmutableNilValue asNilValue();
// 
//     @Override
//     public ImmutableBooleanValue asBooleanValue();
// 
//     @Override
//     public ImmutableIntegerValue asIntegerValue();
// 
//     @Override
//     public ImmutableFloatValue asFloatValue();
// 
//     @Override
//     public ImmutableArrayValue asArrayValue();
// 
//     @Override
//     public ImmutableMapValue asMapValue();
// 
//     @Override
//     public ImmutableRawValue asRawValue();
// 
//     @Override
//     public ImmutableBinaryValue asBinaryValue();
// 
//     @Override
//     public ImmutableStringValue asStringValue();
// 
//     @Override
//     public ImmutableTimestampValue asTimestampValue();
// }


import org.msgpack.core.MessageTypeCastException;
import org.msgpack.value.ImmutableArrayValue;
import org.msgpack.value.ImmutableBinaryValue;
import org.msgpack.value.ImmutableBooleanValue;
import org.msgpack.value.ImmutableExtensionValue;
import org.msgpack.value.ImmutableFloatValue;
import org.msgpack.value.ImmutableIntegerValue;
import org.msgpack.value.ImmutableMapValue;
import org.msgpack.value.ImmutableNilValue;
import org.msgpack.value.ImmutableNumberValue;
import org.msgpack.value.ImmutableRawValue;
import org.msgpack.value.ImmutableStringValue;
import org.msgpack.value.ImmutableTimestampValue;
import org.msgpack.value.ImmutableValue;
    public ImmutableBinaryValue asBinaryValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableStringValue asStringValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableArrayValue asArrayValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableMapValue asMapValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableExtensionValue asExtensionValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
// Path: msgpack-core/src/main/java/org/msgpack/value/ImmutableTimestampValue.java
// public interface ImmutableTimestampValue
//         extends TimestampValue, ImmutableValue
// {
// }
// 
// Path: msgpack-core/src/main/java/org/msgpack/value/ImmutableValue.java
// public interface ImmutableValue
//         extends Value
// {
//     @Override
//     public ImmutableNilValue asNilValue();
// 
//     @Override
//     public ImmutableBooleanValue asBooleanValue();
// 
//     @Override
//     public ImmutableIntegerValue asIntegerValue();
// 
//     @Override
//     public ImmutableFloatValue asFloatValue();
// 
//     @Override
//     public ImmutableArrayValue asArrayValue();
// 
//     @Override
//     public ImmutableMapValue asMapValue();
// 
//     @Override
//     public ImmutableRawValue asRawValue();
// 
//     @Override
//     public ImmutableBinaryValue asBinaryValue();
// 
//     @Override
//     public ImmutableStringValue asStringValue();
// 
//     @Override
//     public ImmutableTimestampValue asTimestampValue();
// }


// Path: msgpack-core/src/main/java/org/msgpack/value/impl/AbstractImmutableValue.java
import org.msgpack.core.MessageTypeCastException;
import org.msgpack.value.ImmutableArrayValue;
import org.msgpack.value.ImmutableBinaryValue;
import org.msgpack.value.ImmutableBooleanValue;
import org.msgpack.value.ImmutableExtensionValue;
import org.msgpack.value.ImmutableFloatValue;
import org.msgpack.value.ImmutableIntegerValue;
import org.msgpack.value.ImmutableMapValue;
import org.msgpack.value.ImmutableNilValue;
import org.msgpack.value.ImmutableNumberValue;
import org.msgpack.value.ImmutableRawValue;
import org.msgpack.value.ImmutableStringValue;
import org.msgpack.value.ImmutableTimestampValue;
import org.msgpack.value.ImmutableValue;

    public ImmutableBinaryValue asBinaryValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableStringValue asStringValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableArrayValue asArrayValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableMapValue asMapValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableExtensionValue asExtensionValue()
    {
        throw new MessageTypeCastException();
    }

    @Override
    public ImmutableTimestampValue asTimestampValue()