code: public synchronized static boolean validate(Context context, Object target, IValidationCallback callback) throws FormsValidationException {
  		if (context == null) {
  			throw new IllegalArgumentException("context cannot ben null");
  		}
  		if (target == null) {
  			throw new IllegalArgumentException("target cannot be null");
  		}
  
  		final List<ValidationFail> failedValidations = new ArrayList<>();
  		final List<View> passedValidations = new ArrayList<>();
  		boolean result = true;
  
  		final Map<View, FieldInfo> infoMap = FieldFinder.getFieldsForTarget(target);
  		for (Map.Entry<View, FieldInfo> entry : infoMap.entrySet()) {
  			final FieldInfo fieldInfo = entry.getValue();
  			final View view = entry.getKey();
  
  			if (view.getVisibility() == View.GONE || view.getVisibility() == View.INVISIBLE) {
  				// don't run validation on views that are not visible
  				continue;
  			}
  
  			ValidationFail fieldResult = performFieldValidations(context, fieldInfo, view);
  			if (fieldResult != null) {
  				failedValidations.add(fieldResult);
  				result = false;
  			} else {
                  passedValidations.add(view);
              }
  
  		}
  
  		if (callback != null) {
  			Collections.sort(failedValidations, new Comparator<ValidationFail>() {
  				@Override
  				public int compare(ValidationFail lhs, ValidationFail rhs) {
  					return lhs.order < rhs.order ? -1 : (lhs.order == rhs.order ? 0 : 1);
  				}
  			});
  			callback.validationComplete(result, Collections.unmodifiableList(failedValidations), Collections.unmodifiableList(passedValidations));
  		}
  		return result;
  	}
docs: Perform validation over all fields on the target object. <br/>
  Please note that if you have used joined validations (see {@link eu.inmite.android.lib.validations.form.annotations.Joined} over several fields at the same time,
  target needs to be of type {@link Activity}, {@link Fragment} or {@link android.view.ViewGroup}. Exception will be thrown otherwise.
  
  @return whether the validation succeeded
  
  @throws FormsValidationException if there is problem in validation process
  @throws IllegalArgumentException if context or target is null