public void validate(PreflightContext context) throws ValidationException { PreflightPath vPath = context.getValidationPath(); if (vPath.isEmpty()) { return; } else if (!vPath.isExpectedType(PDFont.class)) { context.addValidationError( new ValidationError( PreflightConstants.ERROR_FONTS_INVALID_DATA, "Font validation process needs at least one PDFont object")); } else { PDFont font = (PDFont) vPath.peek(); FontContainer fontContainer = context.getFontContainer(font.getCOSObject()); if (fontContainer == null) { // if fontContainer isn't null the font is already checked FontValidator<? extends FontContainer> validator = getFontValidator(context, font); if (validator != null) validator.validate(); } } }