public boolean matches(Identifier ident) {
		String test = ident.getFullName();
		if (firstStar == -1) {
			if (wildcard.equals(test)) {
				return true;
			}
			return false;
		}
		if (!test.startsWith(wildcard.substring(0, firstStar)))
			return false;

		test = test.substring(firstStar);
		int lastWild = firstStar;
		int nextWild;
		while ((nextWild = wildcard.indexOf('*', lastWild + 1)) != -1) {
			String pattern = wildcard.substring(lastWild + 1, nextWild);
			while (!test.startsWith(pattern)) {
				if (test.length() == 0)
					return false;
				test = test.substring(1);
			}
			test = test.substring(nextWild - lastWild - 1);
			lastWild = nextWild;
		}

		return test.endsWith(wildcard.substring(lastWild + 1));
	}