public static < T > AbstractSerializer < T > serializerFor ( Class < T > type ) { if ( type == null ) throw new RuntimeException ( "serializable type cannot be null" , new SerializationException ( "serializable type cannot be null" ) ) ; else if ( type . equals ( String . class ) ) throw new RuntimeException ( "We don't serialize strings anymore" , new SerializationException ( "We don't serialize strings anymore" ) ) ; if ( type . equals ( BasicRollup . class ) ) return ( AbstractSerializer < T > ) basicRollupInstance ; else if ( type . equals ( BluefloodTimerRollup . class ) ) return ( AbstractSerializer < T > ) timerRollupInstance ; else if ( type . equals ( BluefloodCounterRollup . class ) ) return ( AbstractSerializer < T > ) counterRollupInstance ; else if ( type . equals ( BluefloodGaugeRollup . class ) ) return ( AbstractSerializer < T > ) gaugeRollupInstance ; else if ( type . equals ( BluefloodSetRollup . class ) ) return ( AbstractSerializer < T > ) setRollupInstance ; else if ( type . equals ( SimpleNumber . class ) ) return ( AbstractSerializer < T > ) fullInstance ; else if ( type . equals ( Integer . class ) ) return ( AbstractSerializer < T > ) fullInstance ; else if ( type . equals ( Long . class ) ) return ( AbstractSerializer < T > ) fullInstance ; else if ( type . equals ( Double . class ) ) return ( AbstractSerializer < T > ) fullInstance ; else if ( type . equals ( Float . class ) ) return ( AbstractSerializer < T > ) fullInstance ; else if ( type . equals ( byte [ ] . class ) ) return ( AbstractSerializer < T > ) fullInstance ; else if ( type . equals ( Object . class ) ) return ( AbstractSerializer < T > ) fullInstance ; else return ( AbstractSerializer < T > ) fullInstance ; }
return a serializer for a specific type