本文整理了Java中org.datanucleus.ExecutionContext.getClassLoaderResolver()
方法的一些代码示例,展示了ExecutionContext.getClassLoaderResolver()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ExecutionContext.getClassLoaderResolver()
方法的具体详情如下:
包路径:org.datanucleus.ExecutionContext
类名称: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);
}
内容来源于网络,如有侵权,请联系作者删除!