/** * Create a new value metadata instance. */ protected ValueMetaData newValueMetaData(FieldMetaData owner) { return new ValueMetaDataImpl(owner); }
public ClassMetaData getEmbeddedMetaData() { if (_embeddedMeta == null && isEmbeddedPC()) addEmbeddedMetaData(); return _embeddedMeta; }
public boolean isTypePC() { return getTypeCode() == JavaTypes.PC || getTypeCode() == JavaTypes.PC_UNTYPED; }
public int getCascadePersist() { if (_owner.getManagement() != FieldMetaData.MANAGE_PERSISTENT) return CASCADE_NONE; if (isDeclaredTypePC()) return checkPUDefaultCascadePersist(); if (!isTypePC()) return CASCADE_NONE; // if only externalized type is pc, can't cascade immediate return (_persist == CASCADE_IMMEDIATE) ? CASCADE_AUTO : checkPUDefaultCascadePersist(); }
public int getCascadeDetach() { if (_owner.getManagement() != FieldMetaData.MANAGE_PERSISTENT || !isDeclaredTypePC()) // detach acts on declared type return CASCADE_NONE; if (isEmbedded()) return CASCADE_IMMEDIATE; return _detach; }
_decCode = codeOverride; if (JavaTypes.maybePC(codeOverride, _typeOverride)) resolveDeclaredType(_typeOverride); _decTypeMeta = _typeMeta; } else if (JavaTypes.maybePC(_decCode, _decType)) resolveDeclaredType(_decType); getValueMappedBy(); ClassMetaData embed = getEmbeddedMetaData(); if (embed != null) embed.resolve(MODE_META); if (_decCode == JavaTypes.PC && isEmbedded() && _owner.isPrimaryKey() && _owner.getValue() == this) _code = _decCode = JavaTypes.OID;
public int getCascadeDelete() { if (_owner.getManagement() != FieldMetaData.MANAGE_PERSISTENT) return CASCADE_NONE; if (isEmbeddedPC()) return CASCADE_IMMEDIATE; switch (_delete) { case CASCADE_NONE: // if the user marks the owning field dependent and we // externalize to a pc type, then become dependent if (this != _owner.getValue() && isTypePC() && ((ValueMetaDataImpl) _owner.getValue())._delete == CASCADE_AUTO) return CASCADE_AUTO; break; case CASCADE_AUTO: if (isTypePC()) return CASCADE_AUTO; break; case CASCADE_IMMEDIATE: if (isDeclaredTypePC()) return CASCADE_IMMEDIATE; break; } return CASCADE_NONE; }
public ClassMetaData getDeclaredTypeMetaData() { if (_decTypeMeta == null && _decCode == JavaTypes.PC) { if (isEmbedded()) _decTypeMeta = getEmbeddedMetaData(); else { ClassMetaData meta = _owner.getDefiningMetaData(); _decTypeMeta = meta.getRepository().getMetaData(_decType, meta.getEnvClassLoader(), true); } } return _decTypeMeta; }
public int getCascadeAttach() { if (_owner.getManagement() != FieldMetaData.MANAGE_PERSISTENT || !isDeclaredTypePC()) // attach acts on declared type return CASCADE_NONE; if (isEmbeddedPC()) return CASCADE_IMMEDIATE; return _attach; }
/** * Resolve the declared type. */ private void resolveDeclaredType(Class type) { ClassMetaData meta = _owner.getRepository().getMetaData(type, _owner.getDefiningMetaData().getEnvClassLoader(), false); if (meta != null) _decCode = JavaTypes.PC; if (meta != null && meta.isEmbeddedOnly() && !meta.isAbstract()) setEmbedded(true); if (!isEmbedded()) _decTypeMeta = meta; }
public int getCascadePersist() { if (_owner.getManagement() != FieldMetaData.MANAGE_PERSISTENT) return CASCADE_NONE; if (isDeclaredTypePC()) return _persist; if (!isTypePC()) return CASCADE_NONE; // if only externalized type is pc, can't cascade immediate return (_persist == CASCADE_IMMEDIATE) ? CASCADE_AUTO : _persist; }
/** * Check if the persistence unit default <cascade-persist> has been enabled. If so, then change * CASCADE_NONE to CASCADE_IMMEDIATE. */ private int checkPUDefaultCascadePersist() { if (_checkPUDefaultCascadePersist) { // Apply default <cascade-persist> only to entity relationships boolean applyDefaultCascadePersist = false; switch (_owner.getAssociationType()) { case FieldMetaData.ONE_TO_ONE: case FieldMetaData.ONE_TO_MANY: case FieldMetaData.MANY_TO_MANY: case FieldMetaData.MANY_TO_ONE: applyDefaultCascadePersist = true; default: } if (applyDefaultCascadePersist) { Boolean dcpe = getRepository().getMetaDataFactory().getDefaults().isDefaultCascadePersistEnabled(); if (dcpe != null && dcpe.equals(Boolean.TRUE) && _persist == CASCADE_NONE) { _persist = CASCADE_IMMEDIATE; } } _checkPUDefaultCascadePersist = false; } return _persist; }
public boolean isEmbeddedPC() { return _decCode == JavaTypes.PC && isEmbedded(); }
public int getCascadeRefresh() { if (_owner.getManagement() != FieldMetaData.MANAGE_PERSISTENT || !isDeclaredTypePC()) // refresh acts on declared type return CASCADE_NONE; return _refresh; }
public ClassMetaData getTypeMetaData() { if (_type == null) return getDeclaredTypeMetaData(); if (_typeMeta == null && _code == JavaTypes.PC) { ClassMetaData meta = _owner.getDefiningMetaData(); _typeMeta = meta.getRepository().getMetaData(_type, meta.getEnvClassLoader(), true); } return _typeMeta; }
public FieldMetaData getValueMappedByMetaData() { if (getValueMappedBy() != null && _mappedByMeta == null) { ClassMetaData meta = _owner.getElement().getTypeMetaData(); FieldMetaData field = (meta == null) ? null : meta.getField(getValueMappedBy()); if (field == null) throw new MetaDataException(_loc.get("no-mapped-by", this, getValueMappedBy())); if (field.getMappedBy() != null) throw new MetaDataException(_loc.get("circ-mapped-by", this, getValueMappedBy())); _mappedByMeta = field; } return _mappedByMeta; }
public ClassMetaData addEmbeddedMetaData() { return addEmbeddedMetaData(AccessCode.UNKNOWN); }
_decCode = codeOverride; if (JavaTypes.maybePC(codeOverride, _typeOverride)) resolveDeclaredType(_typeOverride); _decTypeMeta = _typeMeta; } else if (JavaTypes.maybePC(_decCode, _decType)) resolveDeclaredType(_decType); getValueMappedBy(); ClassMetaData embed = getEmbeddedMetaData(); if (embed != null) embed.resolve(MODE_META); if (_decCode == JavaTypes.PC && isEmbedded() && _owner.isPrimaryKey() && _owner.getValue() == this) _code = _decCode = JavaTypes.OID;
public int getCascadeDelete() { if (_owner.getManagement() != FieldMetaData.MANAGE_PERSISTENT) return CASCADE_NONE; if (isEmbeddedPC()) return CASCADE_IMMEDIATE; switch (_delete) { case CASCADE_NONE: // if the user marks the owning field dependent and we // externalize to a pc type, then become dependent if (this != _owner.getValue() && isTypePC() && ((ValueMetaDataImpl) _owner.getValue())._delete == CASCADE_AUTO) return CASCADE_AUTO; break; case CASCADE_AUTO: if (isTypePC()) return CASCADE_AUTO; break; case CASCADE_IMMEDIATE: if (isDeclaredTypePC()) return CASCADE_IMMEDIATE; break; } return CASCADE_NONE; }
public ClassMetaData getDeclaredTypeMetaData() { if (_decTypeMeta == null && _decCode == JavaTypes.PC) { if (isEmbedded()) _decTypeMeta = getEmbeddedMetaData(); else { ClassMetaData meta = _owner.getDefiningMetaData(); _decTypeMeta = meta.getRepository().getMetaData(_decType, meta.getEnvClassLoader(), true); } } return _decTypeMeta; }