private void verifyTemplate(Template<?> template, LinkedHashSet<String> templates) {
		String id = template.getKey();

		// Sprawdzanie, czy w gałęzi wywołań szablonów nie ma zapętlenia:
		if(templates.contains(id)) {
			// Wyświetlanie gałęzi z zapętleniem i wyrzucanie wyjątku:
			Iterator<String> t = templates.iterator();
			System.out.print(t.next());
			while(t.hasNext()) {
				System.out.print("->" + t.next());
			}
			System.out.println("->" + id);

			throw new IllegalStateException("Zapętlenie wywołań szablonu '" + id + "'");
		}

		// Szablon OK. Dodawanie do zbioru szablonów gałęzi:
		templates.add(id);

//		// Sprawdzanie każdego z podszablonów szablonu:
//		if(template.getReferences() != null) {
//			for(TemplateReference reference : template.getReferences()) {
//				verifyTemplate(reference, templates);
//			}
//		}
	}
private void verifyTemplate ( Template < ? > template , LinkedHashSet < String > templates ) { String id = template . getKey ( ) ; if ( templates . contains ( id ) ) { Iterator < String > t = templates . iterator ( ) ; System . out . print ( t . next ( ) ) ; while ( t . hasNext ( ) ) { System . out . print ( "->" + t . next ( ) ) ; } System . out . println ( "->" + id ) ; throw new IllegalStateException ( "Zapętlenie wywołań szablonu '" + id + "'" ) ; } templates . add ( id ) ; }
Weryfikuje poprawność szablonu, szablonu nadrzędnego i rekurencyjne
sprawdza wszystkie szablony używane. Kontroluje, czy drzewie wywołań
szablonów nie występuje zapętlenie.

@param template Szablon do weryfikacji.
@param templates Zbiór identyfikatorów szablonów gałęzi. Wykorzystywany
do wykrywania zapętleń wywołań.