code: private boolean doObjectTypesMatch(byte[] aceObjectType, final String assertionObjectType,
              final AceObjectFlags assertionObjFlags) {
          boolean res = true;
          if (assertionObjFlags == null) {
              return res;
          }
  
          if ((assertionObjFlags.asUInt()
                  & Flag.ACE_OBJECT_TYPE_PRESENT.getValue()) == Flag.ACE_OBJECT_TYPE_PRESENT.getValue()) {
              if (aceObjectType == null || !GUID.getGuidAsString(aceObjectType).equals(assertionObjectType)) {
                  res = false;
              }
          }
          LOG.debug("doObjectTypesMatch, result: {}", res);
          return res;
      }
docs: Checks whether the object type identified by the ACE matches the object type of the AceAssertion given. If the
  {@code assertionObjFlags} are null, or they do not specify ACE_OBJECT_TYPE_PRESENT, a true result is returned.
  
  @param aceObjectType
  byte array containing the ACE objectType GUID
  @param assertionObjectType
  String containing the AceAssertion objectType
  @param assertionObjFlags
  AceObjectFlags from the AceAssertion
  @return true if match, false if not