test_class.declarator: LAYER_ID = "beans"
test_class.modifier: private static final
test_class.original_string: private static final String LAYER_ID = "beans";
test_class.type: String
test_class.var_name: LAYER_ID
test_class.declarator: dispatcher
test_class.modifier: @Autowired
  	private
test_class.original_string: @Autowired
  	private CommandDispatcher dispatcher;
test_class.type: CommandDispatcher
test_class.var_name: dispatcher
test_class.file: command/src/test/java/org/geomajas/command/feature/SearchAttributesCommandTest.java
test_class.identifier: SearchAttributesCommandTest
test_case.body: @Test
  	public void testSearchAttributes() throws Exception {
  		SearchAttributesRequest request = new SearchAttributesRequest();
  		request.setLayerId(LAYER_ID);
  		request.setAttributePath("manyToOneAttr");
  		SearchAttributesResponse response = (SearchAttributesResponse) dispatcher.execute(
  				SearchAttributesRequest.COMMAND, request, null, "en");
  		if (response.isError()) {
  			response.getErrors().get(0).printStackTrace();
  		}
  		Assert.assertFalse(response.isError());
  		List<Attribute<?>> attributes = response.getAttributes();
  		Assert.assertNotNull(attributes);
  		Assert.assertEquals(2, attributes.size());
  	}
test_case.class_method_signature: SearchAttributesCommandTest.testSearchAttributes()
test_case.full_signature: @Test public void testSearchAttributes()
test_case.identifier: testSearchAttributes
test_case.invocations: setLayerId setAttributePath execute isError printStackTrace get getErrors assertFalse isError getAttributes assertNotNull assertEquals size
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSearchAttributes()
focal_class.declarator: filterService
focal_class.modifier: @Autowired
  	private
focal_class.original_string: @Autowired
  	private FilterService filterService;
focal_class.type: FilterService
focal_class.var_name: filterService
focal_class.declarator: layerService
focal_class.modifier: @Autowired
  	private
focal_class.original_string: @Autowired
  	private VectorLayerService layerService;
focal_class.type: VectorLayerService
focal_class.var_name: layerService
focal_class.file: command/src/main/java/org/geomajas/command/feature/SearchAttributesCommand.java
focal_class.identifier: SearchAttributesCommand
focal_class.interfaces: implements CommandHasRequest<SearchAttributesRequest, SearchAttributesResponse>
focal_class.class_method_signature: SearchAttributesCommand.getEmptyCommandRequest()
focal_class.full_signature: @Override public SearchAttributesRequest getEmptyCommandRequest()
focal_class.identifier: getEmptyCommandRequest
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SearchAttributesRequest
focal_class.signature: SearchAttributesRequest getEmptyCommandRequest()
focal_class.class_method_signature: SearchAttributesCommand.getEmptyCommandResponse()
focal_class.full_signature: @Override public SearchAttributesResponse getEmptyCommandResponse()
focal_class.identifier: getEmptyCommandResponse
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SearchAttributesResponse
focal_class.signature: SearchAttributesResponse getEmptyCommandResponse()
focal_class.class_method_signature: SearchAttributesCommand.execute(SearchAttributesRequest request, SearchAttributesResponse response)
focal_class.full_signature: @Override public void execute(SearchAttributesRequest request, SearchAttributesResponse response)
focal_class.identifier: execute
focal_class.modifiers: @Override public
focal_class.parameters: (SearchAttributesRequest request, SearchAttributesResponse response)
focal_class.return: void
focal_class.signature: void execute(SearchAttributesRequest request, SearchAttributesResponse response)
focal_method.body: @Override
  	public void execute(SearchAttributesRequest request, SearchAttributesResponse response) throws Exception {
  		String layerId = request.getLayerId();
  		if (null == layerId) {
  			throw new GeomajasException(ExceptionCode.PARAMETER_MISSING, "layer");
  		}
  
  		Filter filter = Filter.INCLUDE;
  		if (request.getFilter() != null) {
  			filter = filterService.parseFilter(request.getFilter());
  		}
  
  		List<Attribute<?>> attributes = layerService.getAttributes(layerId, request.getAttributePath(), filter);
  		response.setAttributes(attributes);
  	}
focal_method.class_method_signature: SearchAttributesCommand.execute(SearchAttributesRequest request, SearchAttributesResponse response)
focal_method.full_signature: @Override public void execute(SearchAttributesRequest request, SearchAttributesResponse response)
focal_method.identifier: execute
focal_method.invocations: getLayerId getFilter parseFilter getFilter getAttributes getAttributePath setAttributes
focal_method.modifiers: @Override public
focal_method.parameters: (SearchAttributesRequest request, SearchAttributesResponse response)
focal_method.return: void
focal_method.signature: void execute(SearchAttributesRequest request, SearchAttributesResponse response)