class BeanLayer implements VectorLayer, VectorLayerAssociationSupport, VectorLayerLazyFeatureConversionSupport {

	public List<Attribute<?>> getAttributes(String attributeName, Filter filter) throws LayerException {
		log.debug("creating iterator for attribute {} and filter: {}", attributeName, filter);
		AbstractAttributeInfo attributeInfo = null;
		for (AbstractAttributeInfo info : getFeatureInfo().getAttributes()) {
			if (info.getName().equals(attributeName)) {
				attributeInfo = info;
				break;
			}
		}

		List<?> values = null;
		if (attributeInfo instanceof AssociationAttributeInfo) {
			AssociationAttributeInfo associationInfo = (AssociationAttributeInfo) attributeInfo;
			if (associationInfo.getType().equals(AssociationType.MANY_TO_ONE)) {
				values = ManyToOneAttributeBean.manyToOneValues();
			}
		}

		List<Attribute<?>> attributes = new ArrayList<Attribute<?>>();
		if (null != values) {
			for (Object object : values) {
				try {
					attributes.add(converterService.toDto(object, attributeInfo));
				} catch (LayerException le) {
					throw le; // NOSONAR assure LayerException is not wrapped unnecessarily
				} catch (GeomajasException e) {
					throw new LayerException(e, ExceptionCode.CONVERSION_PROBLEM, attributeName);
				}
			}
		}
		return attributes;
	}

}