private static boolean isGetter(Class<?> iface, FieldMetaData fmd) { if (fmd.getType() != boolean.class && fmd.getType() != Boolean.class) return true; try { Method meth = AccessController.doPrivileged( J2DoPrivHelper.getDeclaredMethodAction(iface, "is" + StringUtils.capitalize(fmd.getName()), (Class[]) null)); return meth == null; } catch (PrivilegedActionException pae) {} return true; }
public String toString() { String ret = _owner.getFullName(true); if (this == _owner.getKey()) return ret + "<key:" + _decType + ">"; if (this == _owner.getElement()) { if (_owner.getTypeCode() == JavaTypes.MAP) return ret + "<value:" + _decType + ">"; return ret + "<element:" + _decType + ">"; } return ret + "<" + _decType + ">"; }
/** * Parse @Embedded. Given annotation may be null. */ private void parseEmbedded(FieldMetaData fmd, Embedded anno) { if (!JavaTypes.maybePC(fmd.getValue())) throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "Embedded")); fmd.setInDefaultFetchGroup(true); fmd.setEmbedded(true); if (fmd.getEmbeddedMetaData() == null) fmd.addEmbeddedMetaData(getAccessCode(fmd.getDeclaredType())); }
private Method setterForField(FieldMetaData fmd) { try { return fmd.getDeclaringType().getDeclaredMethod( "set" + StringUtils.capitalize(fmd.getName()), new Class[]{ fmd.getDeclaredType() }); } catch (NoSuchMethodException e) { return null; } }
private static ClassMetaData getFieldType(FieldMetaData fmd) { if (fmd == null) return null; ClassMetaData cmd = null; ValueMetaData vmd; if ((vmd = fmd.getElement()) != null) cmd = vmd.getDeclaredTypeMetaData(); else if ((vmd = fmd.getKey()) != null) cmd = vmd.getDeclaredTypeMetaData(); else if ((vmd = fmd.getValue()) != null) cmd = vmd.getDeclaredTypeMetaData(); if (cmd == null || cmd.getDescribedType() == Object.class) cmd = fmd.getDeclaredTypeMetaData(); return cmd; }
/** * Categorizes the attribute. */ public final PersistentAttributeType getPersistentAttributeType() { if (!fmd.isDeclaredTypePC()) return super.getPersistentAttributeType(); if (fmd.getValue().isEmbedded() && fmd.getAssociationType() == 0) { return PersistentAttributeType.EMBEDDED; } return fmd.getMappedByMetaData() == null || !fmd.getType().isAssignableFrom(Collection.class) ? PersistentAttributeType.ONE_TO_ONE : PersistentAttributeType.ONE_TO_MANY; } }
public EmbeddedCollectionColumnField(FieldMetaData fmd, EmbeddedSerializer serializer) { super(fmd.getIndex(), fmd.getName()); ClassMetaData declaredClass = fmd.getElement().getDeclaredTypeMetaData(); if (declaredClass == null) { embeddedDelegate = new SerializedCollectionColumnField(fmd, serializer); } else { embeddedDelegate = new EmbeddedableCollectionColumnField(fmd, declaredClass); } }
/** * Remove the given field from management. * * @return true if the field was removed, false otherwise */ public boolean removeDeclaredField(FieldMetaData field) { if (field != null && _fieldMap.remove(field.getName()) != null) { clearFieldCache(); return true; } return false; }
private Method getBackingMember(FieldMetaData fmd) { Member back = fmd.getBackingMember(); if (Method.class.isInstance(back)) return (Method)back; Method getter = Reflection.findGetter(meta.getDescribedType(), fmd.getName(), false); if (getter != null) fmd.backingMember(getter); return getter; }
private void add(Class cls) { // assume all user-defined types are PCs ClassMetaData meta = getRepository().addMetaData(cls); FieldMetaData[] fmds = meta.getDeclaredFields(); for (int i = 0; i < fmds.length; i++) { if (fmds[i].getDeclaredTypeCode() == JavaTypes.OBJECT && fmds[i].getDeclaredType() != Object.class) fmds[i].setDeclaredTypeCode(JavaTypes.PC); } meta.setSource(_file, meta.getSourceType(), _file == null ? "" : _file.getPath()); _flush = true; }
/** * Set the owning state and field if this is an embedded instance. */ void setOwner(StateManagerImpl owner, ValueMetaData ownerMeta) { _owner = owner; _ownerIndex = ownerMeta.getFieldMetaData().getIndex(); }
/** * Returns the type that represents the type of this attribute. */ @SuppressWarnings("unchecked") public final Type<Y> getType() { return owner.model.getType(isCollection() ? fmd.getElement().getDeclaredType() : fmd.getDeclaredType()); }
final PersistenceCapable pc = ((PersistenceCapable) detachedEntity); final Object[] state = (Object[]) pc.pcGetDetachedState(); final BitSet loadedFieldsOnDetach = (BitSet) state[1]; final OpenJPAEntityManager oem = getEntityManager(); final Broker _broker = ((EntityManagerImpl) oem).getBroker(); final ClassMetaData meta = _broker.getConfiguration().getMetaDataRepositoryInstance() .getMetaData(ImplHelper.getManagedInstance(detachedEntity).getClass(), _broker.getClassLoader(), true); for (final FieldMetaData fmd : meta.getDefinedFields()) { if (loadedFieldsOnDetach.get(fmd.getIndex())) { System.out.println(fmd.getName() + " was loaded on detach."); } }
@Override protected void populate(FieldMetaData fmd) { setCascadeNone(fmd); setCascadeNone(fmd.getKey()); setCascadeNone(fmd.getElement()); }
/** * Attach the given array. */ private Object[] attachInPlace(AttachManager manager, StateManagerImpl sm, FieldMetaData fmd, Object[] arr) { if (arr == null) return null; for (int i = 0; i < arr.length; i++) arr[i] = attachInPlace(manager, sm, fmd.getElement(), arr[i]); return arr; }
@SuppressWarnings("unchecked") public Class<K> getBindableJavaType() { return (Class<K>)fmd.getKey().getDeclaredType(); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) public static Serializer<Object> getSerializer(FieldMetaData fieldMetaData) { Serializer serializer = getSerializer(fieldMetaData.getTypeCode()); if (serializer instanceof ObjectSerializer) { Class<?> clazz = fieldMetaData.getType(); if (classSerializerMap.get(clazz) != null) { serializer = classSerializerMap.get(clazz); } } return serializer; }
/** * The field name, qualified by the defining class. */ public String getRealName() { // Added to support OPENJPA-704 return getDefiningMetaData().getDescribedType().getName() + "." + _name; }
/** * Generate a value for the given metadata, or return null. Generates * values for hte following strategies: {@link ValueStrategies#SEQUENCE}, * {@link ValueStrategies#UUID_STRING}, {@link ValueStrategies#UUID_HEX} */ public static Object generateFieldValue(StoreContext ctx, FieldMetaData fmd) { return generateValue(ctx, fmd.getDefiningMetaData(), fmd, fmd.getDeclaredTypeCode()); }
private void assignVersionField(Object version) { _version = version; FieldMetaData vfield = _meta.getVersionField(); if (vfield != null) store(vfield.getIndex(), JavaTypes.convert(version, vfield.getTypeCode())); }