public boolean hasClassAnnotation(Class type, Class<? extends Annotation> anntype) { if (anntype != XmlRootElement.class && anntype != XmlType.class && anntype != XmlAccessorType.class) { return false; } AbstractClassMetaData acmd = metaDataMgr.getMetaDataForClass(type, clr); return acmd != null; }
private Annotation getProxy(Class type, Method method) { AbstractClassMetaData acmd = metaDataMgr.getMetaDataForClass(method.getDeclaringClass(), clr); AbstractMemberMetaData ammd = acmd.getMetaDataForMember(method.getName()); if (ammd == null) { return null; } return getAnnotationHandler(type, ammd); } }
private Annotation getProxy(Class type, Field field) { AbstractClassMetaData acmd = metaDataMgr.getMetaDataForClass(field.getDeclaringClass(), clr); if (acmd == null) { //happens when field type is enum return null; } AbstractMemberMetaData ammd = acmd.getMetaDataForMember(field.getName()); if (ammd == null) { return null; } return getAnnotationHandler(type, ammd); }
private Object getTransformedValueFromParamValue(Object paramValue, ExecutionContext executionContext) { AbstractClassMetaData acmd = executionContext.getMetaDataManager().getMetaDataForClass(paramValue.getClass(), executionContext.getClassLoaderResolver()); if (acmd != null && paramValue instanceof PersistenceCapable) { return getIdFromObject((PersistenceCapable) paramValue, acmd).toString(); } else if (paramValue instanceof Collection<?>) { return new CollectionParameter((Collection<?>) paramValue); } else { return paramValue; } }
@Override public void deleteSchemaForClasses(Set<String> classNames, Properties props, Object connection) { Iterator<String> classIter = classNames.iterator(); ClassLoaderResolver clr = storeMgr.getNucleusContext().getClassLoaderResolver(null); while (classIter.hasNext()) { String className = classIter.next(); AbstractClassMetaData cmd = storeMgr.getMetaDataManager().getMetaDataForClass(className, clr); if (cmd != null) { deleteSchemaForClass(cmd); } } }
private Object getTransformedValueFromParamValue(Object paramValue, ExecutionContext executionContext) { AbstractClassMetaData acmd = executionContext.getMetaDataManager().getMetaDataForClass(paramValue.getClass(), executionContext.getClassLoaderResolver()); if (acmd != null && paramValue instanceof PersistenceCapable) { return getIdFromObject((PersistenceCapable) paramValue, acmd).toString(); } else if (paramValue instanceof Collection<?>) { return new CollectionParameter((Collection<?>) paramValue); } else { return paramValue; } }
private Object[] getDiscriminatorValuesForCastClass(AbstractClassMetaData cmd) { // Restrict discriminator on cast type to be the type+subclasses Collection<String> castSubclassNames = storeMgr.getSubClassesForClass(cmd.getFullClassName(), true, clr); Object[] castDiscrimValues = new Object[1 + (castSubclassNames!=null ? castSubclassNames.size() : 0)]; int discNo = 0; castDiscrimValues[discNo++] = cmd.getDiscriminatorValue(); if (castSubclassNames != null && !castSubclassNames.isEmpty()) { for (String castSubClassName : castSubclassNames) { AbstractClassMetaData castSubCmd = storeMgr.getMetaDataManager().getMetaDataForClass(castSubClassName, clr); castDiscrimValues[discNo++] = castSubCmd.getDiscriminatorValue(); } } return castDiscrimValues; }
private static boolean isReadOnlyFieldSchema(AbstractMemberMetaData ammd, OMFContext omf) { // Load up the class metadata for the owning class of this member (for example, if an inherited field, // the super class which has declared it) AbstractClassMetaData owningAcmd = omf.getMetaDataManager().getMetaDataForClass(ammd.getClassName(), omf.getClassLoaderResolver(null)); return isReadOnlySchemaInternal(owningAcmd); }
private static boolean isReadOnlyFieldSchema(AbstractMemberMetaData ammd, OMFContext omf) { // Load up the class metadata for the owning class of this member (for example, if an inherited field, // the super class which has declared it) AbstractClassMetaData owningAcmd = omf.getMetaDataManager().getMetaDataForClass(ammd.getClassName(), omf.getClassLoaderResolver(null)); return isReadOnlySchemaInternal(owningAcmd); }
/** * Accessor for whether the object with specified PK is contained in the cache. * @param cls The class * @param pk PK of the instance to evict. * @return whether it is contained */ public boolean contains(Class cls, Object pk) { ClassLoaderResolver clr = omfCtx.getClassLoaderResolver(null); AbstractClassMetaData acmd = omfCtx.getMetaDataManager().getMetaDataForClass(cls, clr); if (acmd == null) { throw new EntityNotFoundException(); } return cache.containsOid(pk); }
/** * Evict the parameter instance from the second-level cache. * @param cls Class of which to evict the object * @param pk PK of the instance to evict. */ public void evict(Class cls, Object pk) { ClassLoaderResolver clr = omfCtx.getClassLoaderResolver(null); AbstractClassMetaData acmd = omfCtx.getMetaDataManager().getMetaDataForClass(cls, clr); if (acmd == null) { throw new EntityNotFoundException(); } cache.evict(pk); } }
public AbstractMemberMetaData getRealMemberMetaData() { if (mmd.getParent() instanceof EmbeddedMetaData) { // Get the real owner classMetaData (when embedded the cmd is often the embedded) AbstractClassMetaData cmd = storeMgr.getMetaDataManager().getMetaDataForClass(mmd.getClassName(), clr); return cmd.getMetaDataForMember(mmd.getName()); } return mmd; } }
/** * Convenience method to return a managed (POJO) object for the provided Entity for the EntityManager. * @param entity The entity * @param em The EntityManager * @param cls The POJO class being represented here * @return The POJO */ public Object getJPAFromEntity(Entity entity, EntityManager em, Class cls) { ExecutionContext ec = ((JPAEntityManager)em).getExecutionContext(); ClassLoaderResolver clr = ec.getClassLoaderResolver(); AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(cls, clr); return EntityUtils.entityToPojo(entity, cmd, clr, ec, false, ec.getFetchPlan()); } }
/** * Convenience method to return a managed (POJO) object for the provided Entity for the PersistenceManager. * @param entity The entity * @param pm The PersistenceManager * @param cls The POJO class being represented here * @return The POJO */ public Object getJDOFromEntity(Entity entity, PersistenceManager pm, Class cls) { ExecutionContext ec = ((JDOPersistenceManager)pm).getExecutionContext(); ClassLoaderResolver clr = ec.getClassLoaderResolver(); AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(cls, clr); return EntityUtils.entityToPojo(entity, cmd, clr, ec, false, ec.getFetchPlan()); } }
@Override public Extent getExtent(ExecutionContext ec, Class c, boolean subclasses) { AbstractClassMetaData cmd = getMetaDataManager().getMetaDataForClass(c, ec.getClassLoaderResolver()); validateMetaDataForClass(cmd); if (!cmd.isRequiresExtent()) { throw new NoExtentException(c.getName()); } if (!getBooleanProperty(GET_EXTENT_CAN_RETURN_SUBCLASSES_PROPERTY, false)) { subclasses = false; } // In order to avoid breaking existing apps I'm hard-coding subclasses to // be false. This breaks spec compliance since the no-arg overload of // PersistenceManager.getExtent() is supposed to return subclasses. return new DefaultCandidateExtent(ec, c, subclasses, cmd); }
protected String getTypeNameForField(AbstractMemberMetaData mmd) { AbstractClassMetaData fieldCmd = classEnhancer.getMetaDataManager().getMetaDataForClass(mmd.getType(), classEnhancer.getClassLoaderResolver()); String fieldTypeName = mmd.getTypeName(); if (fieldCmd != null && fieldCmd.getIdentityType() == IdentityType.APPLICATION) { fieldTypeName = fieldCmd.getObjectidClass(); } return fieldTypeName; }
public void persist(JSONObject obj) { // TODO This is flawed persistence since it doesn't handle value-generation etc that the StateManager provides AbstractClassMetaData acmd = ec.getMetaDataManager().getMetaDataForClass(getType(obj), ec.getClassLoaderResolver()); ctx.getStoreManager().getPersistenceHandler().insertObject(new JsonAPIObjectProvider(ec, acmd, obj)); }
public void deleteObject(JSONObject id) { AbstractClassMetaData acmd = ec.getMetaDataManager().getMetaDataForClass(getType(id), ec.getClassLoaderResolver()); JsonAPIObjectProvider op = new JsonAPIObjectProvider(ec, acmd, id); ctx.getStoreManager().getPersistenceHandler().deleteObject(op); }
/** * @see DatastoreIdentityKeyTranslator for an explanation of how this is useful. * * Supported translations: * <ul> * <li>When the pk field is a Long you can give us a Long, an encoded key string, or a Key.</li> * <li>When the pk field is an unencoded String you can give us an unencoded String, an encoded String, or a Key.</li> * <li>When the pk field is an encoded String you can give us an unencoded String, an encoded String, or a Key.</li> * </ul> */ public static Object idToInternalKey(ExecutionContext ec, Class<?> cls, Object val, boolean allowSubclasses) { AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(cls, ec.getClassLoaderResolver()); String kind = determineKind(cmd, ec); AbstractMemberMetaData pkMemberMetaData = cmd.getMetaDataForManagedMemberAtAbsolutePosition(cmd.getPKMemberPositions()[0]); return idToInternalKey(kind, pkMemberMetaData, cls, val, ec, allowSubclasses); }
public JSONObject findObject(JSONObject id) { AbstractClassMetaData acmd = ec.getMetaDataManager().getMetaDataForClass(getType(id), ec.getClassLoaderResolver()); JsonAPIObjectProvider op = new JsonAPIObjectProvider(ec, acmd, id); ctx.getStoreManager().getPersistenceHandler().fetchObject(op, acmd.getAllMemberPositions()); return (JSONObject) op.getObject(); }