2 * JavaInspect - Utility to visualize java software
3 * Copyright (C) 2013-2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 3 of the GNU Lesser General Public License
7 * or later as published by the Free Software Foundation.
10 package eu.svjatoslav.inspector.java.methods;
12 import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
13 import eu.svjatoslav.commons.string.tokenizer.Tokenizer;
15 import java.util.ArrayList;
16 import java.util.List;
18 public class ClassReference {
20 final List<ClassReference> typeParameters = new ArrayList<>();
23 public ClassReference(final Tokenizer tokenizer)
24 throws InvalidSyntaxException {
25 name = tokenizer.getNextToken().token;
27 if (!tokenizer.consumeIfNextToken("<"))
31 final ClassReference parameterType = new ClassReference(tokenizer);
32 typeParameters.add(parameterType);
34 if (!tokenizer.consumeIfNextToken(","))
38 tokenizer.expectAndConsumeNextToken(">");
42 public String toString() {
43 final EnumerationBuffer result = new EnumerationBuffer();
47 if (typeParameters.size() > 0) {
49 for (final ClassReference classReference : typeParameters)
50 result.appendEnumeration(classReference.toString());
54 return result.toString();