public Object toObjectValue(ValueMapping vm, Object val) { // check for null value. if (val == null) return null; try { String packageName = vm.getDeclaredType().getPackage().getName(); JAXBContext jc = JAXBContext.newInstance(packageName); Unmarshaller u = jc.createUnmarshaller(); return u.unmarshal(new StreamSource(new StringReader (val.toString()))); } catch (JAXBException je) { throw new InternalException(je); } } }
public static ClassMapping getEmbeddedMapping(ValueMapping val, boolean createNew) { ClassMapping embed = val.getEmbeddedMapping(); if (embed != null || !createNew) return embed; val.addEmbeddedMetaData(); return val.getEmbeddedMapping(); }
public static void mapRelationToUnmappedPC(ValueMapping vm, DBIdentifier name, boolean adapt) { if (vm.getTypeMapping().getIdentityType() == ClassMapping.ID_UNKNOWN) throw new MetaDataException(_loc.get("rel-to-unknownid", vm)); ValueMappingInfo vinfo = vm.getValueInfo(); Column[] tmplates = newUnmappedPCTemplateColumns(vm, name); vm.setColumns(vinfo.getColumns(vm, name, tmplates, vm.getFieldMapping().getTable(), adapt)); vm.setColumnIO(vinfo.getColumnIO()); }
/** * Map the given value's join to its persistent type. */ private void mapTypeJoin(ValueMapping vm, DBIdentifier name, boolean adapt) { if (vm.getTypeMapping().isMapped()) { ValueMappingInfo vinfo = vm.getValueInfo(); ForeignKey fk = vinfo.getTypeJoin(vm, name, false, adapt); vm.setForeignKey(fk); vm.setColumnIO(vinfo.getColumnIO()); } else RelationStrategies.mapRelationToUnmappedPC(vm, name, adapt); vm.mapConstraints(name, adapt); }
public void copyMappingInfo(ValueMapping vm) { setValueMappedBy(vm.getValueMappedBy()); setPolymorphic(vm.getPolymorphic()); _info.copy(vm.getValueInfo()); ClassMapping embed = vm.getEmbeddedMapping(); if (embed != null && getEmbeddedMapping() != null) { FieldMapping[] tmplates = embed.getFieldMappings(); FieldMapping[] fms = getEmbeddedMapping().getFieldMappings(); if (tmplates.length == fms.length) for (int i = 0; i < fms.length; i++) fms[i].copyMappingInfo(tmplates[i]); } }
public void map(boolean adapt) { ValueMapping vm = cls.getEmbeddingMapping(); if (vm == null || vm.getType() != cls.getDescribedType() || vm.getTypeCode() != JavaTypes.OID) throw new MetaDataException(_loc.get("not-oid", cls)); ClassMappingInfo info = cls.getMappingInfo(); info.assertNoSchemaComponents(cls, true); cls.setTable(vm.getFieldMapping().getTable()); } }
/** * Throw the proper exception if the given handler-controlled value * represents an unjoinable relation. */ public static void assertJoinable(ValueMapping vm) { ClassMapping rel = vm.getTypeMapping(); if (rel != null && (rel.getTable() == null || !rel.getTable().equals(vm.getFieldMapping().getTable()))) throw RelationStrategies.unjoinable(vm); } }
public void populate(Table local, Table foreign, Column col, Object target, boolean inverse, int pos, int cols) { val.getMappingRepository().getMappingDefaults(). populateForeignKeyColumn(val, name, local, foreign, col, target, inverse, pos, cols); } };
break; case KEY_CLASS_CRIT: fm.getKeyMapping().getValueInfo().setUseClassCriteria (((KeyClassCriteria) anno).value()); break; case KEY_FK: KeyForeignKey kfk = (KeyForeignKey) anno; parseForeignKey(fm.getKeyMapping().getValueInfo(), kfk.name(), kfk.enabled(), kfk.deferred(), kfk.deleteAction(), kfk.updateAction()); case KEY_INDEX: KeyIndex kidx = (KeyIndex) anno; parseIndex(fm.getKeyMapping().getValueInfo(), kidx.name(), kidx.enabled(), kidx.unique()); break; break; case KEY_NONPOLY: fm.getKeyMapping().setPolymorphic(toPolymorphicConstant (((KeyNonpolymorphic) anno).value())); break; case KEY_STRAT: fm.getKeyMapping().getValueInfo() .setStrategy(((KeyStrategy) anno).value()); break; break;
public Column[] map(ValueMapping vm, DBIdentifier name, ColumnIO io, boolean adapt) { Column col = new Column(); col.setIdentifier(name); if (vm.getTypeCode() == JavaTypes.DATE) col.setJavaType(JavaSQLTypes.getDateTypeCode(vm.getType())); else col.setJavaType(vm.getTypeCode()); return new Column[]{ col }; }
public Unique getUnique(ValueMapping val, DBIdentifier name, boolean adapt) { Column[] cols = val.getColumns(); if (cols.length == 0) return null; Unique unq = val.getMappingRepository().getMappingDefaults(). getUnique(val, name, cols[0].getTable(), cols); return createUnique(val, null, unq, cols, adapt); }
@Override protected void parseElementClassCriteriaAttr(FieldMetaData fmd, Attributes attrs) throws SAXException { String elementClassCriteriaString = attrs.getValue("element-class-criteria"); if (!StringUtil.isEmpty(elementClassCriteriaString)) { FieldMapping fm = (FieldMapping) fmd; boolean elementClassCriteria = Boolean.parseBoolean(elementClassCriteriaString); fm.getElementMapping().getValueInfo().setUseClassCriteria(elementClassCriteria); } }
public void copyMappingInfo(ValueMapping vm) { _val.copyMappingInfo(vm); }
/** * Return whether our defining mapping is an unjoined subclass of * the type of the given value. */ private boolean isTypeUnjoinedSubclass(ValueMapping mapped) { ClassMapping def = field.getDefiningMapping(); for (; def != null; def = def.getJoinablePCSuperclassMapping()) if (def == mapped.getTypeMapping()) return false; return true; }
public ClassMapping getEmbeddedMapping() { return _val.getEmbeddedMapping(); }
public Object toObjectValue(ValueMapping vm, Object val) { if (val == null) return null; if (_ordinal) return _vals[((Number) val).intValue()]; return Enum.valueOf(vm.getType(), (String) val); } }
public void setPolymorphic(int poly) { _val.setPolymorphic(poly); }
/** * Clear mapping information, including strategy. */ public void clearMapping() { _strategy = null; _fk = null; _unq = null; _idx = null; _outer = false; _orderCol.setColumn(null); _val.clearMapping(); _key.clearMapping(); _elem.clearMapping(); _info.clear(); setResolve(MODE_MAPPING, false); }
public boolean isPrimaryKeyObjectId(boolean hasAll) { return cls.getEmbeddingMapping().getFieldMapping(). getDefiningMapping().isPrimaryKeyObjectId(hasAll); } }
public void copyMappingInfo(ValueMapping vm) { setValueMappedBy(vm.getValueMappedBy()); setPolymorphic(vm.getPolymorphic()); _info.copy(vm.getValueInfo()); ClassMapping embed = vm.getEmbeddedMapping(); if (embed != null && getEmbeddedMapping() != null) { FieldMapping[] tmplates = embed.getFieldMappings(); FieldMapping[] fms = getEmbeddedMapping().getFieldMappings(); if (tmplates.length == fms.length) for (int i = 0; i < fms.length; i++) fms[i].copyMappingInfo(tmplates[i]); } }