code: public static boolean areTagMaskEquals(TagMask tagMask1, TagMask tagMask2) {
  		if ((tagMask1 == null && tagMask2 != null)
  				|| (tagMask1 != null && tagMask2 == null)) {
  			return false;
  		} else if (tagMask1 != null && tagMask2 != null) {
  			if (tagMask1.getCase() != tagMask2.getCase()) {
  				return false;
  			} else if (tagMask1.getClazz() != tagMask2.getClazz()) {
  				return false;
  			} else if (tagMask1.getGender() != tagMask2.getGender()) {
  				return false;
  			} else if (tagMask1.getMood() != tagMask2.getMood()) {
  				return false;
  			} else if (tagMask1.getNumber() != tagMask2.getNumber()) {
  				return false;
  			} else if (tagMask1.getPerson() != tagMask2.getPerson()) {
  				return false;
  			} else if (tagMask1.getPunctuation() != tagMask2.getPunctuation()) {
  				return false;
  			} else if (tagMask1.getSyntacticFunction() != tagMask2.getSyntacticFunction()) {
  				return false;
  			} else if (tagMask1.getTense() != tagMask2.getTense()) {
  				return false;
  			}
  			// TODO complete with the rest of the tag masks (if any)
  		}
  		return true;
  	}
docs: Checks if two tag masks are equals.
  The tag masks can be both null, one of them null or none of them null.
  
  @param tagMask1 from tree element {@link TagMask}
  @param tagMask2 from rule element {@link TagMask}
  @return true if equals, otherwise