public TypeEncoding<DescribedType> getEncoding(final DescribedType val) { TypeEncoding underlyingEncoding = _encoder.getType(val.getDescribed()).getEncoding(val.getDescribed()); TypeEncoding encoding = _encodings.get(underlyingEncoding); if (encoding == null) { encoding = new DynamicDescribedTypeEncoding(underlyingEncoding); _encodings.put(underlyingEncoding, encoding); } return encoding; }