private boolean checkFullMatch(State current, char[] targetStr, int cur) {
		// looking for the next cases for complete match
		if (current.getCh() == State.ANY || current.getCh() != State.SPLIT) {
			// if first char is not a split state means, first char matched.
			// moving ahead if first char matched.
			current = current.getOut();
			++cur;
		}
		while ((current != null) && (cur < targetStr.length)
				&& (cur = isMatch(current, targetStr, cur)) != -1) {
			if (current.getCh() == State.SPLIT && current.getOut() != null) {
				// moving step ahead if it is a wild card because we
				// already evaluating it in the inner function
				current = current.getOut();
			}
			if (current != null) {
				current = current.getOut();
			}
			++cur;
		}

		// checking if full text is matched or not
		return isFullTextMatched(current, targetStr, cur);
	}