org.datanucleus.ExecutionContext.getClassLoaderResolver()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(12.0k)|赞(0)|评价(0)|浏览(77)

本文整理了Java中org.datanucleus.ExecutionContext.getClassLoaderResolver()方法的一些代码示例,展示了ExecutionContext.getClassLoaderResolver()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ExecutionContext.getClassLoaderResolver()方法的具体详情如下:
包路径:org.datanucleus.ExecutionContext
类名称:ExecutionContext
方法名:getClassLoaderResolver

ExecutionContext.getClassLoaderResolver介绍

暂无

代码示例

代码示例来源:origin: org.datanucleus/datanucleus-api-jdo

/**
 * Accessor for the generic compilation that this criteria query equates to.
 * @return The generic compilation
 */
public QueryCompilation getCompilation()
{
  if (compilation == null)
  {
    // Not yet compiled, so compile it
    compilation = compile(ec.getMetaDataManager(), ec.getClassLoaderResolver());
  }
  return compilation;
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Locates this object in the datastore.
 * @param op ObjectProvider for the object to be found
 * @throws NucleusObjectNotFoundException if the object doesnt exist
 * @throws NucleusDataStoreException when an error occurs in the datastore communication
 */
public void locateObject(ObjectProvider op)
{
  ClassLoaderResolver clr = op.getExecutionContext().getClassLoaderResolver();
  DatastoreClass table = getDatastoreClass(op.getObject().getClass().getName(), clr);
  getLocateRequest(table, op.getObject().getClass().getName()).execute(op);
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected EmbeddedMappingStrategy(StoreManager storeMgr, ObjectProvider op, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(op, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
}

代码示例来源:origin: org.datanucleus/datanucleus-mongodb

private Object getMapValueForReturnValue(AbstractMemberMetaData mmd, Object value)
  {
    String valueType = mmd.getMap().getValueType();
    Class valueCls = ec.getClassLoaderResolver().classForName(valueType);
    if (valueCls == Long.class || valueCls == Double.class || valueCls == Float.class || valueCls == Integer.class || valueCls == Short.class || valueCls == String.class)
    {
      return value;
    }
    else if (Enum.class.isAssignableFrom(valueCls))
    {
      return Enum.valueOf(valueCls, (String)value);
    }
    else
    {
      throw new NucleusException("Dont currently support persistence/retrieval of maps with values of type " + valueType);
    }
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-mongodb

private Object getMapKeyForReturnValue(AbstractMemberMetaData mmd, Object value)
{
  String keyType = mmd.getMap().getKeyType();
  Class keyCls = ec.getClassLoaderResolver().classForName(keyType);
  if (keyCls == Long.class || keyCls == Double.class || keyCls == Float.class || keyCls == Integer.class || keyCls == Short.class || keyCls == String.class)
  {
    return value;
  }
  else if (Enum.class.isAssignableFrom(keyCls))
  {
    return Enum.valueOf(keyCls, (String)value);
  }
  else
  {
    throw new NucleusException("Dont currently support persistence/retrieval of maps with keys of type " + keyType);
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Utility to validate a key is ok for writing (present in the datastore).
 * @param ownerOP ObjectProvider for the owner of the map
 * @param key The key to check.
 */
protected void validateKeyForWriting(ObjectProvider ownerOP, Object key)
{
  // TODO Pass in cascade flag and if key not present then throw exception
  ExecutionContext ec = ownerOP.getExecutionContext();
  validateKeyType(ec.getClassLoaderResolver(), key);
  if (!keysAreEmbedded && !keysAreSerialised)
  {
    SCOUtils.validateObjectForWriting(ec, key, null);
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Utility to validate a value is ok for writing (present in the datastore).
 * @param ownerOP ObjectProvider for the owner of the map
 * @param value The value to check.
 */
protected void validateValueForWriting(ObjectProvider ownerOP, Object value)
{
  // TODO Pass in cascade flag and if value not present then throw exception
  ExecutionContext ec = ownerOP.getExecutionContext();
  validateValueType(ec.getClassLoaderResolver(), value);
  if (!valuesAreEmbedded && !valuesAreSerialised)
  {
    SCOUtils.validateObjectForWriting(ec, value, null);
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-api-jdo

/**
 * Method to perform the replication for all objects registered in the pmf source.
 */
public void replicateRegisteredClasses()
{
  ClassLoaderResolver clr = ((JDOPersistenceManager)pmfSource.getPersistenceManager()).getExecutionContext().getClassLoaderResolver();
  MetaDataManager mmgr = ((JDOPersistenceManagerFactory)pmfSource).getNucleusContext().getMetaDataManager();
  Collection classNames = mmgr.getClassesWithMetaData();
  ArrayList arrayTypes = new ArrayList();
  Iterator iterator = classNames.iterator();
  while (iterator.hasNext())
  {
    String className = (String) iterator.next();
    AbstractClassMetaData cmd = mmgr.getMetaDataForClass(className, clr);
    if (!cmd.isEmbeddedOnly()) // Omit embedded-only classes since can't replicate those
    {
      arrayTypes.add(clr.classForName(className));
    }
  }
  replicate((Class[])arrayTypes.toArray(new Class[arrayTypes.size()]));
}

代码示例来源:origin: org.datanucleus/datanucleus-neodatis

/**
 * Accessor for an Extent for a class.
 * @param ec execution context
 * @param c The class requiring the Extent
 * @param subclasses Whether to include subclasses of 'c'
 * @return The Extent.
 */
public Extent getExtent(ExecutionContext ec, Class c, boolean subclasses)
{
  AbstractClassMetaData cmd = getMetaDataManager().getMetaDataForClass(c, ec.getClassLoaderResolver());
  if (!cmd.isRequiresExtent())
  {
    throw new NoExtentException(c.getName());
  }
  return new NeoDatisExtent(this, ec, c, subclasses, cmd);
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected RelationByAttributeStrategy(StoreManager storeMgr, ObjectProvider sm, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(sm, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
  this.mappingMetaData = new RelationByAttributeMetaData(mmd, ec.getMetaDataManager());
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Utility to throw an exception if the object is not persistable.
 * @param op The ObjectProvider for the object
 */ 
void assertPCClass(ObjectProvider op)
{
  Class c = op.getObject().getClass();
  if (!op.getExecutionContext().getClassLoaderResolver().isAssignableFrom(cmd.getFullClassName(),c))
  {
    throw new NucleusException(Localiser.msg("057013",cmd.getFullClassName(),c)).setFatal();
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-xml

public FetchFieldManager(ObjectProvider op, Document doc)
{
  this.op = op;
  this.doc = doc;
  ExecutionContext ec = op.getExecutionContext();
  node = XMLUtils.findNode(doc, op);
  try
  {
    value = ((XMLStoreManager)ec.getStoreManager()).getJAXBHandler().unmarshall(op.getObject().getClass(), node, op.getExecutionContext().getClassLoaderResolver());
  }
  catch (JAXBException e)
  {
    NucleusLogger.DATASTORE_RETRIEVE.warn("Exception unmarshalling XML", e);
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

public SimpleCollectionMappingStrategy(ObjectProvider sm, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(sm, mmd, attributes);
  type = sm.getExecutionContext().getClassLoaderResolver().classForName(mmd.getCollection().getElementType());
  // For now, each collection element is persisted as its own attribute value
  if (mmd.getJoinMetaData() == null)
  {
    // TODO Drop this hack. Using join as way of saying don't serialise
    mmd.setJoinMetaData(new JoinMetaData());
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected RelationByHierarchyStrategy(StoreManager storeMgr, ObjectProvider op, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(op, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
  this.isFieldHierarchicalMapped = isChildOfHierarchicalMapping(mmd, ec.getMetaDataManager());
  this.isFieldParentOfHierarchicalMapping = isParentOfHierarchicalMapping(mmd, ec.getMetaDataManager());
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected RelationByDnStrategy(StoreManager storeMgr, ObjectProvider sm, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(sm, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
  this.mappingMetaData = new RelationByDnMetaData(mmd, ec.getMetaDataManager());
  if (mappingMetaData.getOwnerAttributeName() == null)
  {
    // Sanity check on metadata
    throw new NucleusUserException("Member " + mmd.getFullFieldName() + " stores multiple values and has owner LDAP attribute as NULL. The metadata is incorrect and needs to set this.");
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-neodatis

/**
 * Utility method to process the passed persistable object.
 * We know that this object has no ObjectProvider when it comes in here.
 * @param fieldNumber Absolute field number
 * @param pc The persistable object
 */
protected void processPersistable(int fieldNumber, Object pc)
{
  ExecutionContext ec = op.getExecutionContext();
  ObjectProvider theSM = null;
  // No ObjectProvider but object returned to us by NeoDatis so we know it is persistent
  // Connect a ObjectProvider in P_CLEAN state with all fields loaded
  AbstractClassMetaData acmd = ec.getMetaDataManager().getMetaDataForClass(pc.getClass(), 
    ec.getClassLoaderResolver());
  Object id = NeoDatisUtils.getIdentityForObject(pc, acmd, ec, odb);
  theSM = ec.getNucleusContext().getObjectProviderFactory().newForPersistentClean(ec, id, pc);
  // Recurse to all fields of this object since just assigned its ObjectProvider
  theSM.provideFields(theSM.getClassMetaData().getAllMemberPositions(), 
    new AssignObjectProviderFieldManager(theSM, odb));
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
   * Method to be called before any delete of the owner class element, if the field in the owner is dependent
   * @param ownerOP ObjectProvider of the owner
   */
  public void preDelete(ObjectProvider ownerOP)
  {
    if (containerIsStoredInSingleColumn())
    {
      // Do nothing when stored in a single column since we are handled in the main request
      return;
    }

    // makes sure field is loaded
    ownerOP.isLoaded(getAbsoluteFieldNumber());
    Object value = ownerOP.provideField(getAbsoluteFieldNumber());
    if (value == null)
    {
      return;
    }

    // Clear the array via its backing store
    ArrayStore backingStore = (ArrayStore) storeMgr.getBackingStoreForField(ownerOP.getExecutionContext().getClassLoaderResolver(), mmd, null);
    backingStore.clear(ownerOP);
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Utility to validate a key is ok for reading.
 * @param op ObjectProvider for the map.
 * @param key The key to check.
 * @return Whether it is validated. 
 */
protected boolean validateKeyForReading(ObjectProvider op, Object key)
{
  validateKeyType(op.getExecutionContext().getClassLoaderResolver(), key);
  if (!keysAreEmbedded && !keysAreSerialised)
  {
    ExecutionContext ec = op.getExecutionContext();
    if (key!=null && (!ec.getApiAdapter().isPersistent(key) ||
      ec != ec.getApiAdapter().getExecutionContext(key)) && !ec.getApiAdapter().isDetached(key))
    {
      return false;
    }
  }
  return true;
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Utility to validate a value is ok for reading.
 * @param op ObjectProvider for the map.
 * @param value The value to check.
 * @return Whether it is validated.
 */
protected boolean validateValueForReading(ObjectProvider op, Object value)
{
  validateValueType(op.getExecutionContext().getClassLoaderResolver(), value);
  if (!valuesAreEmbedded && !valuesAreSerialised)
  {
    ExecutionContext ec = op.getExecutionContext();
    if (value != null && (!ec.getApiAdapter().isPersistent(value) ||
      ec != ec.getApiAdapter().getExecutionContext(value)) && !ec.getApiAdapter().isDetached(value))
    {
      return false;
    }
  }
  return true;
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Deletes a persistent object from the database.
 * The delete can take place in several steps, one delete per table that it is stored in.
 * e.g When deleting an object that uses "new-table" inheritance for each level of the inheritance tree
 * then will get an DELETE for each table. When deleting an object that uses "complete-table"
 * inheritance then will get a single DELETE for its table.
 * @param op The ObjectProvider of the object to be deleted.
 * @throws NucleusDataStoreException when an error occurs in the datastore communication
 */
public void deleteObject(ObjectProvider op)
{
  // Check if read-only so update not permitted
  assertReadOnlyForUpdateOfObject(op);
  ExecutionContext ec = op.getExecutionContext();
  if (ec.getStatistics() != null)
  {
    ec.getStatistics().incrementDeleteCount();
  }
  ClassLoaderResolver clr = op.getExecutionContext().getClassLoaderResolver();
  DatastoreClass dc = getDatastoreClass(op.getClassMetaData().getFullClassName(), clr);
  deleteObjectFromTable(dc, op, clr);
}

相关文章