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

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

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

ExecutionContext.getNucleusContext介绍

暂无

代码示例

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

/**
 * Get the properties and associated values currently in effect for the
 * persistence manager. Changing entries in the map will not have affect
 * the configuration of the persistence manager.
 * @return map of properties in effect
 * @since JDO3.1
 */
public Map<String, Object> getProperties()
{
  assertIsOpen();
  Map<String, Object> pmProps = new HashMap<String, Object>();
  Map<String, Object> ecProps = ec.getProperties();
  Iterator<Map.Entry<String, Object>> propertiesIter = ecProps.entrySet().iterator();
  Configuration conf = ec.getNucleusContext().getConfiguration();
  while (propertiesIter.hasNext())
  {
    Map.Entry<String, Object> entry = propertiesIter.next();
    String ecPropName = entry.getKey();
    // Return with javax.jdo name if this is an internal property name
    String pmPropName = conf.getPropertyNameWithInternalPropertyName(ecPropName, "javax.jdo");
    pmProps.put(pmPropName!=null ? pmPropName : ecPropName, entry.getValue());
  }
  return pmProps;
}

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

/**
 * Gets the object that is embedded within the current entry.
 * @return the object
 */
private Object fetchEmbedded()
{
  // use embedded meta data from field
  EmbeddedMetaData embeddedMetaData = mmd.getEmbeddedMetaData();
  // use field meta data from embedded meta data
  List<AbstractMemberMetaData> embeddedMmds = new ArrayList<AbstractMemberMetaData>(Arrays.asList(embeddedMetaData.getMemberMetaData()));
  // TODO Provide the owner in this call
  ObjectProvider embeddedSM = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, effectiveClassMetaData, null, -1);
  // TODO Why get SM just after creating it????
  embeddedSM = getEmbeddedObjectProvider(embeddedSM.getObject());
  return fetchMerge(embeddedSM, attributes, embeddedMmds, embeddedMetaData);
}

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

/**
 * Accessor for the result set concurrency for the specified query.
 * Uses the persistence property "datanucleus.rdbms.query.resultSetConcurrency" and allows it to be overridden by the query extension of the same name.
 * Checks both the NucleusContext and also the query extensions.
 * @param query The query
 * @return The result set concurrency string
 */
public static String getResultSetConcurrencyForQuery(Query query)
{
  String rsConcurrencyString = query.getExecutionContext().getNucleusContext().getConfiguration().getStringProperty(RDBMSPropertyNames.PROPERTY_RDBMS_QUERY_RESULT_SET_CONCURRENCY);
  Object rsConcurrencyExt = query.getExtension(RDBMSPropertyNames.PROPERTY_RDBMS_QUERY_RESULT_SET_CONCURRENCY);
  if (rsConcurrencyExt != null)
  {
    rsConcurrencyString = (String)rsConcurrencyExt;
  }
  return rsConcurrencyString;
}

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

/**
 * Accessor for the result set type for the specified query.
 * Uses the persistence property "datanucleus.rdbms.query.resultSetType" and allows it to be overridden by the query extension of the same name.
 * Checks both the NucleusContext and also the query extensions.
 * @param query The query
 * @return The result set type string
 */
public static String getResultSetTypeForQuery(Query query)
{
  String rsTypeString = query.getExecutionContext().getNucleusContext().getConfiguration().getStringProperty(RDBMSPropertyNames.PROPERTY_RDBMS_QUERY_RESULT_SET_TYPE);
  Object rsTypeExt = query.getExtension(RDBMSPropertyNames.PROPERTY_RDBMS_QUERY_RESULT_SET_TYPE);
  if (rsTypeExt != null)
  {
    rsTypeString = (String)rsTypeExt;
  }
  return rsTypeString;
}

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

public ManagedConnection retrieveConnection()
{
  // Obtain a new connection
  // Note : it may be worthwhile to use the PM's connection here however where a Sequence doesnt yet
  // exist the connection would then be effectively dead until the end of the tx
  // The way around this would be to find a way of checking for existence of the sequence
  Configuration conf = ec.getNucleusContext().getConfiguration();
  int isolationLevel = TransactionUtils.getTransactionIsolationLevelForName(conf.getStringProperty(PropertyNames.PROPERTY_VALUEGEN_TXN_ISOLATION));
  this.mconn = ((RDBMSStoreManager)storeManager).getConnectionManager().getConnection(isolationLevel);
  return mconn;
}

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

/**
   * Convenience method to return the (DataNucleus) identity for an object.
   * @param obj The object
   * @param acmd MetaData for the object
   * @param ec execution context
   * @param odb ODB to use
   * @return The DataNucleus identity
   */
  public static Object getIdentityForObject(Object obj, AbstractClassMetaData acmd, ExecutionContext ec,
      ODB odb)
  {
    if (acmd.getIdentityType() == IdentityType.DATASTORE)
    {
      long datastoreId = odb.getObjectId(obj).getObjectId();
      return ec.getNucleusContext().getIdentityManager().getDatastoreId(datastoreId);
    }
    else if (acmd.getIdentityType() == IdentityType.APPLICATION)
    {
      return ec.getNucleusContext().getIdentityManager().getApplicationId(obj, acmd);
    }
    else
    {
      // Nondurable identity
      return null;
    }
  }
}

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

public static Delete getDeleteForObject(ObjectProvider op, Table schemaTable) throws IOException
{
  byte[] rowKey = (byte[]) op.getAssociatedValue("HBASE_ROW_KEY");
  if (rowKey == null)
  {
    AbstractClassMetaData cmd = op.getClassMetaData();
    final Object[] pkValues = findKeyObjects(op, cmd, schemaTable);
    ExecutionContext ec = op.getExecutionContext();
    if (ec.getStatistics() != null)
    {
      // Add to statistics
      ec.getStatistics().incrementNumReads();
    }
    rowKey = getRowKeyForPkValue(pkValues, ec.getNucleusContext());
  }
  return new Delete(rowKey);
}

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

public static Put getPutForObject(ObjectProvider op, Table schemaTable) throws IOException
{
  byte[] rowKey = (byte[]) op.getAssociatedValue("HBASE_ROW_KEY");
  if (rowKey == null)
  {
    AbstractClassMetaData cmd = op.getClassMetaData();
    final Object[] pkValues = findKeyObjects(op, cmd, schemaTable);
    ExecutionContext ec = op.getExecutionContext();
    if (ec.getStatistics() != null)
    {
      // Add to statistics
      ec.getStatistics().incrementNumReads();
    }
    rowKey = getRowKeyForPkValue(pkValues, ec.getNucleusContext());
  }
  return new Put(rowKey);
}

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

public static Get getGetForObject(ObjectProvider op, Table schemaTable) throws IOException
{
  byte[] rowKey = (byte[]) op.getAssociatedValue("HBASE_ROW_KEY");
  if (rowKey == null)
  {
    AbstractClassMetaData cmd = op.getClassMetaData();
    final Object[] pkValues = findKeyObjects(op, cmd, schemaTable);
    ExecutionContext ec = op.getExecutionContext();
    if (ec.getStatistics() != null)
    {
      // Add to statistics
      ec.getStatistics().incrementNumReads();
    }
    rowKey = getRowKeyForPkValue(pkValues, ec.getNucleusContext());
  }
  return new Get(rowKey);
}

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

/**
 * Method to return the ObjectProvider for an embedded PC object (element, key, value).
 * It creates one if the element is not currently managed.
 * @param op ObjectProvider of the owner
 * @param obj The embedded PC object
 * @param ownerMmd The meta data for the owner field
 * @param pcType Object type for the embedded object (see ObjectProvider EMBEDDED_PC etc)
 * @return The ObjectProvider
 */
public ObjectProvider getObjectProviderForEmbeddedPCObject(ObjectProvider op, Object obj, AbstractMemberMetaData ownerMmd, short pcType)
{
  ExecutionContext ec = op.getExecutionContext();
  ObjectProvider objOP = ec.findObjectProvider(obj);
  if (objOP == null)
  {
    objOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, obj, false, op, ownerMmd.getAbsoluteFieldNumber());
  }
  objOP.setPcObjectType(pcType);
  return objOP;
}

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

private void updateEmbedded(Object value)
{
  if (value == null)
  {
    // create an instance with empty fields, this will null-out all embedded fields
    // TODO Populate the owner object in this call
    ObjectProvider embeddedSM = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, effectiveClassMetaData, null, -1);
    int[] allMemberPositions = embeddedSM.getClassMetaData().getAllMemberPositions();
    for (int i : allMemberPositions)
    {
      embeddedSM.makeDirty(i);
    }
    //get the dummy value
    value = embeddedSM.getObject();
  }
  ObjectProvider embeddedSM = ec.findObjectProvider(value);
  boolean insert = false;
  if (embeddedSM == null)
  {
    embeddedSM = getEmbeddedObjectProvider(value);
    insert = true;
  }
  EmbeddedMetaData embeddedMetaData = mmd.getEmbeddedMetaData();
  List<AbstractMemberMetaData> embeddedMmds = new ArrayList<AbstractMemberMetaData>(Arrays.asList(embeddedMetaData.getMemberMetaData()));
  updateMerge(embeddedSM, attributes, embeddedMmds, embeddedMetaData, insert);
}

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

/**
   * Method to extract the value of the persistable from a ResultSet.
   * @param ec The ExecutionContext
   * @param resultSet The ResultSet
   * @param exprIndex The parameter positions in the result set to use.
   * @param ownerOP ObjectProvider for the owning object
   * @param fieldNumber Absolute number of field in owner object
   * @return The (deserialised) persistable object
   */
  public Object getObject(ExecutionContext ec, ResultSet resultSet, int[] exprIndex, ObjectProvider ownerOP, int fieldNumber)
  {
    Object obj = getDatastoreMapping(0).getObject(resultSet, exprIndex[0]);
    if (obj != null)
    {
      // Assign a StateManager to the serialised object if none present
      ObjectProvider embSM = ec.findObjectProvider(obj);
      if (embSM == null || ec.getApiAdapter().getExecutionContext(obj) == null)
      {
        ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, obj, false, ownerOP, fieldNumber);
      }
    }
    return obj;
  }
}

代码示例来源: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-hbase

ObjectProvider embOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, embCmd, op, fieldNumber);
FieldManager ffm = new FetchEmbeddedFieldManager(embOP, result, embMmds, table);
embOP.replaceFields(embCmd.getAllMemberPositions(), ffm);

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

/**
   * Method to extract the value of the persistable from a ResultSet.
   * @param ec execution context
   * @param resultSet The ResultSet
   * @param exprIndex The parameter positions in the result set to use.
   * @param ownerOP ObjectProvider for the owning object
   * @param fieldNumber Absolute number of field in owner object
   * @return The (deserialised) persistable object
   */
  public Object getObject(ExecutionContext ec, ResultSet resultSet, int[] exprIndex, ObjectProvider ownerOP, int fieldNumber)
  {
    Object obj = getDatastoreMapping(0).getObject(resultSet, exprIndex[0]);
    ApiAdapter api = ec.getApiAdapter();
    if (api.isPersistable(obj))
    {
      // Assign a StateManager to the serialised object if none present
      ObjectProvider embSM = ec.findObjectProvider(obj);
      if (embSM == null || api.getExecutionContext(obj) == null)
      {
        ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, obj, false, ownerOP, fieldNumber);
      }
    }
    return obj;
  }
}

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

/**
   * Accessor for the ObjectProvider of the embedded PC object when provided with the owner object.
   * @param ownerOP ObjectProvider of the owner
   * @return ObjectProvider of the embedded object
   */
  private ObjectProvider getObjectProviderForEmbeddedObject(ObjectProvider ownerOP)
  {
    AbstractMemberMetaData theMmd = getRealMemberMetaData();

    Object value = ownerOP.provideField(theMmd.getAbsoluteFieldNumber()); // Owner (non-embedded) PC
    TypeManager typeManager = ownerOP.getExecutionContext().getTypeManager();
    value = mmd.isSingleCollection() ? typeManager.getContainerAdapter(value).iterator().next() : value;
    if (value == null)
    {
      return null;
    }

    ExecutionContext ec = ownerOP.getExecutionContext();
    ObjectProvider thisOP = ec.findObjectProvider(value);
    if (thisOP == null)
    {
      // Assign a ObjectProvider to manage our embedded object
      thisOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, value, false, ownerOP, theMmd.getAbsoluteFieldNumber());
      thisOP.setPcObjectType(objectType);
    }

    return thisOP;
  }
}

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

public Object fetchObjectField(int fieldNumber)
{
  ClassLoaderResolver clr = ec.getClassLoaderResolver();
  AbstractMemberMetaData mmd = cmd.getMetaDataForManagedMemberAtAbsolutePosition(fieldNumber);
  RelationType relationType = mmd.getRelationType(clr);
  // Special cases
  if (relationType != RelationType.NONE && MetaDataUtils.getInstance().isMemberEmbedded(ec.getMetaDataManager(), clr, mmd, relationType, null))
  {
    // Embedded field
    if (RelationType.isRelationSingleValued(relationType))
    {
      // TODO Null detection
      List<AbstractMemberMetaData> embMmds = new ArrayList<AbstractMemberMetaData>();
      embMmds.add(mmd);
      AbstractClassMetaData embCmd = ec.getMetaDataManager().getMetaDataForClass(mmd.getType(), clr);
      ObjectProvider embOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, embCmd, op, fieldNumber);
      FieldManager fetchEmbFM = new FetchEmbeddedFieldManager(embOP, sheet, rowNumber, embMmds, table);
      embOP.replaceFields(embCmd.getAllMemberPositions(), fetchEmbFM);
      return embOP.getObject();
    }
    else if (RelationType.isRelationMultiValued(relationType))
    {
      throw new NucleusUserException("Dont support embedded multi-valued field at " + mmd.getFullFieldName() + " with Excel");
    }
  }
  return fetchObjectFieldInternal(fieldNumber, mmd, clr, relationType);
}

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

@Override
public Object fetchObjectField(int fieldNumber)
{
  ClassLoaderResolver clr = ec.getClassLoaderResolver();
  AbstractMemberMetaData mmd = cmd.getMetaDataForManagedMemberAtAbsolutePosition(fieldNumber);
  RelationType relationType = mmd.getRelationType(clr);
  // Special cases
  if (relationType != RelationType.NONE && MetaDataUtils.getInstance().isMemberEmbedded(ec.getMetaDataManager(), clr, mmd, relationType, null))
  {
    // Embedded field
    if (RelationType.isRelationSingleValued(relationType))
    {
      // TODO Null detection
      List<AbstractMemberMetaData> embMmds = new ArrayList<AbstractMemberMetaData>();
      embMmds.add(mmd);
      AbstractClassMetaData embCmd = ec.getMetaDataManager().getMetaDataForClass(mmd.getType(), clr);
      ObjectProvider embOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, embCmd, op, fieldNumber);
      FieldManager fetchEmbFM = new FetchEmbeddedFieldManager(embOP, row, embMmds, table);
      embOP.replaceFields(embCmd.getAllMemberPositions(), fetchEmbFM);
      return embOP.getObject();
    }
    else if (RelationType.isRelationMultiValued(relationType))
    {
      throw new NucleusUserException("Dont support embedded multi-valued field at " + mmd.getFullFieldName() + " with ODF");
    }
  }
  return fetchObjectFieldInternal(fieldNumber, mmd, clr, relationType);
}

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

ObjectProvider op = ec.getNucleusContext().getObjectProviderFactory().newForDetached(ec, pc, getObjectId(pc), null);
pc.dnReplaceStateManager(op);
op.retrieveDetachState(op);

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

ObjectProvider op = ec.getNucleusContext().getObjectProviderFactory().newForDetached(ec, pc, getObjectId(pc), null);
pc.dnReplaceStateManager(op);
op.retrieveDetachState(op);

相关文章