/** * INTERNAL: * Set a converter on the KeyField of a DirectCollectionMapping. */ public void setKeyConverter(Converter keyConverter, DirectMapMapping mapping){ if (((DatabaseMapping)keyMapping).isDirectToFieldMapping()){ ((AbstractDirectMapping)keyMapping).setConverter(keyConverter); } else { throw DescriptorException.cannotSetConverterForNonDirectMapping(mapping.getDescriptor(), mapping, keyConverter.getClass().getName()); } }
/** * INTERNAL: */ public void process(DatabaseMapping mapping, MappingAccessor accessor, MetadataClass referenceClass, boolean isForMapKey) { if (mapping.isAbstractDirectMapping()) { AbstractDirectMapping directMapping = ((AbstractDirectMapping) mapping); directMapping.setFieldType(Types.STRUCT); directMapping.setConverter(null); directMapping.setConverterClassName(null); } else if (!(mapping.isDirectCollectionMapping() || mapping.isDirectMapMapping())){ throw ValidationException.invalidMappingForStructConverter(getName(), mapping); } }
/** * INTERNAL: * Set a converter on the KeyField of a DirectCollectionMapping. */ public void setKeyConverter(Converter keyConverter, DirectMapMapping mapping){ if (((DatabaseMapping)keyMapping).isDirectToFieldMapping()){ ((AbstractDirectMapping)keyMapping).setConverter(keyConverter); } else { throw DescriptorException.cannotSetConverterForNonDirectMapping(mapping.getDescriptor(), mapping, keyConverter.getClass().getName()); } }
((AbstractDirectMapping)nextMapping).setConverter(converter);
/** * INTERNAL: */ protected void setConverter(DatabaseMapping mapping, Converter converter, boolean isForMapKey) { if (mapping.isDirectMapMapping() && isForMapKey) { ((DirectMapMapping) mapping).setKeyConverter(converter); } else if (mapping.isDirectCollectionMapping()) { ((DirectCollectionMapping) mapping).setValueConverter(converter); } else if (mapping instanceof AbstractCompositeDirectCollectionMapping) { ((AbstractCompositeDirectCollectionMapping) mapping).setValueConverter(converter); } else if (mapping.isAggregateCollectionMapping()) { // TODO: Be nice to support converters on AggregateCollections keys. // For now they are silently ignored. } else if (mapping.isDirectToFieldMapping()) { ((AbstractDirectMapping) mapping).setConverter(converter); } }
((XMLDirectMapping)nextMapping).setIsWriteOnly(this.isWriteOnly()); if(converter != null){ ((AbstractDirectMapping)nextMapping).setConverter(converter);
((XMLDirectMapping)nextMapping).setIsWriteOnly(this.isWriteOnly()); if(converter != null){ ((AbstractDirectMapping)nextMapping).setConverter(converter);
/** * INTERNAL: * Process this converter for the given mapping. */ public void process(DatabaseMapping mapping, boolean isForMapKey, String attributeName, boolean disableConversion) { ConverterClass converterClass = new ConverterClass(getJavaClassName(), isForMapKey, fieldClassification.getName(), disableConversion); if (mapping.isDirectMapMapping() && isForMapKey) { ((DirectMapMapping) mapping).setKeyConverter(converterClass); } else if (mapping.isDirectCollectionMapping()) { ((DirectCollectionMapping) mapping).setValueConverter(converterClass); } else if (mapping.isDirectToFieldMapping()) { ((AbstractDirectMapping) mapping).setConverter(converterClass); } else if (mapping.isAggregateObjectMapping()) { ((AggregateObjectMapping) mapping).addConverter(converterClass, attributeName); } else if (mapping.isAggregateCollectionMapping()) { ((AggregateCollectionMapping) mapping).addConverter(converterClass, attributeName); } }