public String representVariable() {

		Map<?, ?> map = (Map<?, ?>) getVariable();
		int maximum = getMaximum();

		Set<?> mapEntrySet = map.entrySet();

		Iterator<?> mapIterator = mapEntrySet.iterator();

		StringBuilder representation = new StringBuilder();
		representation.append('{');

		while (mapIterator.hasNext()) {

			Map.Entry<?, ?> entry = (Map.Entry<?, ?>) mapIterator.next();

			Object entryKey = entry.getKey();
			Object entryValue = entry.getValue();

			VariableDecorator entryKeyDecorator = VariableDecoratorStrategy
					.createDecoratorForVariableType(entryKey, maximum);

			String entryKeyRepresentation = entryKeyDecorator
					.representVariable();

			VariableDecorator entryValueDecorator = VariableDecoratorStrategy
					.createDecoratorForVariableType(entryValue, maximum);

			String entryValueRepresentation = entryValueDecorator
					.representVariable();

			representation.append(entryKeyRepresentation);
			representation.append(" => ");
			representation.append(entryValueRepresentation);

			if (mapIterator.hasNext()) {

				representation.append(", ");

			}

			if (representation.length() > maximum) {

				return representation.toString();

			}

		}

		representation.append('}');

		return representation.toString();

	}