private <T> void updateCore( TraitableBean inner, Object core, Class<T> trait, boolean logical ) {
FactHandle handle = lookupFactHandle( inner );
InternalFactHandle h = (InternalFactHandle) handle;
if ( handle != null ) {
TraitFieldTMS fieldTMS = inner._getFieldTMS();
BitMask mask = fieldTMS == null ? onlyTraitBitSetMask() : fieldTMS.getModificationMask();
((NamedEntryPoint) h.getEntryPoint()).update( h,
h.getEqualityKey() != null && h.getEqualityKey().getStatus() == EqualityKey.JUSTIFIED,
((InternalFactHandle)handle).getObject(),
mask,
core.getClass(),