test_class.declarator: layer
test_class.modifier: private
test_class.original_string: private GeoToolsLayer layer;
test_class.type: GeoToolsLayer
test_class.var_name: layer
test_class.declarator: filter
test_class.modifier: private
test_class.original_string: private Filter filter;
test_class.type: Filter
test_class.var_name: filter
test_class.file: plugin/layer-geotools/geotools/src/test/java/org/geomajas/layer/geotools/GeoToolsLayerTest.java
test_class.identifier: GeoToolsLayerTest
test_class.superclass: extends AbstractGeoToolsTest
test_case.body: @Test
  	public void testUpdate() throws Exception {
  		SimpleFeature f = (SimpleFeature) layer.read(LAYER_NAME + ".3"); // id always starts with layer id
  		f.setAttribute("NAME", "Luxembourg2");
  		layer.update(f);
  		Assert.assertEquals("Luxembourg2", f.getAttribute(ATTRIBUTE_NAME));
  	}
test_case.class_method_signature: GeoToolsLayerTest.testUpdate()
test_case.full_signature: @Test public void testUpdate()
test_case.identifier: testUpdate
test_case.invocations: read setAttribute update assertEquals getAttribute
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testUpdate()
focal_class.declarator: log = LoggerFactory.getLogger(GeoToolsLayer.class)
focal_class.modifier: private final
focal_class.original_string: private final Logger log = LoggerFactory.getLogger(GeoToolsLayer.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: DEFAULT_COOLDOWN_TIME = 60000
focal_class.modifier: private static final
focal_class.original_string: private static final long DEFAULT_COOLDOWN_TIME = 60000;
focal_class.type: long
focal_class.var_name: DEFAULT_COOLDOWN_TIME
focal_class.declarator: MAGIC_STRING_LIBRARY_MISSING = "No datastore found. Possible causes are "
  			+ "missing factory or missing library for your datastore (e.g. database driver)."
focal_class.modifier: private static final
focal_class.original_string: private static final String MAGIC_STRING_LIBRARY_MISSING = "No datastore found. Possible causes are "
  			+ "missing factory or missing library for your datastore (e.g. database driver).";
focal_class.type: String
focal_class.var_name: MAGIC_STRING_LIBRARY_MISSING
focal_class.declarator: featureModel
focal_class.modifier: private
focal_class.original_string: private FeatureModel featureModel;
focal_class.type: FeatureModel
focal_class.var_name: featureModel
focal_class.declarator: layerInfo
focal_class.modifier: private
focal_class.original_string: private VectorLayerInfo layerInfo;
focal_class.type: VectorLayerInfo
focal_class.var_name: layerInfo
focal_class.declarator: url
focal_class.modifier: private
focal_class.original_string: private String url;
focal_class.type: String
focal_class.var_name: url
focal_class.declarator: dbtype
focal_class.modifier: private
focal_class.original_string: private String dbtype;
focal_class.type: String
focal_class.var_name: dbtype
focal_class.declarator: parameters
focal_class.modifier: private
focal_class.original_string: private List<Parameter> parameters;
focal_class.type: List<Parameter>
focal_class.var_name: parameters
focal_class.declarator: dataSource
focal_class.modifier: private
focal_class.original_string: private DataSource dataSource;
focal_class.type: DataSource
focal_class.var_name: dataSource
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: geoService
focal_class.modifier: @Autowired
  	private
focal_class.original_string: @Autowired
  	private GeoService geoService;
focal_class.type: GeoService
focal_class.var_name: geoService
focal_class.declarator: converterService
focal_class.modifier: @Autowired
  	private
focal_class.original_string: @Autowired
  	private DtoConverterService converterService;
focal_class.type: DtoConverterService
focal_class.var_name: converterService
focal_class.declarator: transactionSynchronization
focal_class.modifier: @Autowired
  	private
focal_class.original_string: @Autowired
  	private GeoToolsTransactionSynchronization transactionSynchronization;
focal_class.type: GeoToolsTransactionSynchronization
focal_class.var_name: transactionSynchronization
focal_class.declarator: crs
focal_class.modifier: private
focal_class.original_string: private CoordinateReferenceSystem crs;
focal_class.type: CoordinateReferenceSystem
focal_class.var_name: crs
focal_class.declarator: id
focal_class.modifier: private
focal_class.original_string: private String id;
focal_class.type: String
focal_class.var_name: id
focal_class.declarator: featureModelUsable
focal_class.modifier: private
focal_class.original_string: private boolean featureModelUsable;
focal_class.type: boolean
focal_class.var_name: featureModelUsable
focal_class.declarator: lastInitFeaturesRetry
focal_class.modifier: private
focal_class.original_string: private long lastInitFeaturesRetry;
focal_class.type: long
focal_class.var_name: lastInitFeaturesRetry
focal_class.declarator: cooldownTimeBetweenInitializationRetries = DEFAULT_COOLDOWN_TIME
focal_class.modifier: private
focal_class.original_string: private long cooldownTimeBetweenInitializationRetries = DEFAULT_COOLDOWN_TIME;
focal_class.type: long
focal_class.var_name: cooldownTimeBetweenInitializationRetries
focal_class.file: plugin/layer-geotools/geotools/src/main/java/org/geomajas/layer/geotools/GeoToolsLayer.java
focal_class.identifier: GeoToolsLayer
focal_class.interfaces: implements VectorLayer
focal_class.class_method_signature: GeoToolsLayer.getId()
focal_class.full_signature: @Override public String getId()
focal_class.identifier: getId
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getId()
focal_class.class_method_signature: GeoToolsLayer.setId(String id)
focal_class.full_signature: @Api public void setId(String id)
focal_class.identifier: setId
focal_class.modifiers: @Api public
focal_class.parameters: (String id)
focal_class.return: void
focal_class.signature: void setId(String id)
focal_class.class_method_signature: GeoToolsLayer.setUrl(String url)
focal_class.full_signature: @Api public void setUrl(String url)
focal_class.identifier: setUrl
focal_class.modifiers: @Api public
focal_class.parameters: (String url)
focal_class.return: void
focal_class.signature: void setUrl(String url)
focal_class.class_method_signature: GeoToolsLayer.setDbtype(String dbtype)
focal_class.full_signature: @Api public void setDbtype(String dbtype)
focal_class.identifier: setDbtype
focal_class.modifiers: @Api public
focal_class.parameters: (String dbtype)
focal_class.return: void
focal_class.signature: void setDbtype(String dbtype)
focal_class.class_method_signature: GeoToolsLayer.getDataSource()
focal_class.full_signature: @Api public DataSource getDataSource()
focal_class.identifier: getDataSource
focal_class.modifiers: @Api public
focal_class.parameters: ()
focal_class.return: DataSource
focal_class.signature: DataSource getDataSource()
focal_class.class_method_signature: GeoToolsLayer.setDataSource(DataSource dataSource)
focal_class.full_signature: @Api public void setDataSource(DataSource dataSource)
focal_class.identifier: setDataSource
focal_class.modifiers: @Api public
focal_class.parameters: (DataSource dataSource)
focal_class.return: void
focal_class.signature: void setDataSource(DataSource dataSource)
focal_class.class_method_signature: GeoToolsLayer.setParameters(List<Parameter> parameters)
focal_class.full_signature: @Api public void setParameters(List<Parameter> parameters)
focal_class.identifier: setParameters
focal_class.modifiers: @Api public
focal_class.parameters: (List<Parameter> parameters)
focal_class.return: void
focal_class.signature: void setParameters(List<Parameter> parameters)
focal_class.class_method_signature: GeoToolsLayer.setCooldownTimeBetweenInitializationRetries(long cooldownTimeBetweenInitializationRetries)
focal_class.full_signature: @Api public void setCooldownTimeBetweenInitializationRetries(long cooldownTimeBetweenInitializationRetries)
focal_class.identifier: setCooldownTimeBetweenInitializationRetries
focal_class.modifiers: @Api public
focal_class.parameters: (long cooldownTimeBetweenInitializationRetries)
focal_class.return: void
focal_class.signature: void setCooldownTimeBetweenInitializationRetries(long cooldownTimeBetweenInitializationRetries)
focal_class.class_method_signature: GeoToolsLayer.getCrs()
focal_class.full_signature: @Override public CoordinateReferenceSystem getCrs()
focal_class.identifier: getCrs
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: CoordinateReferenceSystem
focal_class.signature: CoordinateReferenceSystem getCrs()
focal_class.class_method_signature: GeoToolsLayer.setLayerInfo(VectorLayerInfo layerInfo)
focal_class.full_signature: @Api public void setLayerInfo(VectorLayerInfo layerInfo)
focal_class.identifier: setLayerInfo
focal_class.modifiers: @Api public
focal_class.parameters: (VectorLayerInfo layerInfo)
focal_class.return: void
focal_class.signature: void setLayerInfo(VectorLayerInfo layerInfo)
focal_class.class_method_signature: GeoToolsLayer.getLayerInfo()
focal_class.full_signature: @Override public VectorLayerInfo getLayerInfo()
focal_class.identifier: getLayerInfo
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: VectorLayerInfo
focal_class.signature: VectorLayerInfo getLayerInfo()
focal_class.class_method_signature: GeoToolsLayer.isCreateCapable()
focal_class.full_signature: @Override public boolean isCreateCapable()
focal_class.identifier: isCreateCapable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isCreateCapable()
focal_class.class_method_signature: GeoToolsLayer.isUpdateCapable()
focal_class.full_signature: @Override public boolean isUpdateCapable()
focal_class.identifier: isUpdateCapable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isUpdateCapable()
focal_class.class_method_signature: GeoToolsLayer.isDeleteCapable()
focal_class.full_signature: @Override public boolean isDeleteCapable()
focal_class.identifier: isDeleteCapable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isDeleteCapable()
focal_class.class_method_signature: GeoToolsLayer.setDataStore(DataStore dataStore)
focal_class.full_signature: @Override @Deprecated public void setDataStore(DataStore dataStore)
focal_class.identifier: setDataStore
focal_class.modifiers: @Override @Deprecated public
focal_class.parameters: (DataStore dataStore)
focal_class.return: void
focal_class.signature: void setDataStore(DataStore dataStore)
focal_class.class_method_signature: GeoToolsLayer.initFeatures()
focal_class.full_signature: @PostConstruct protected void initFeatures()
focal_class.identifier: initFeatures
focal_class.modifiers: @PostConstruct protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void initFeatures()
focal_class.class_method_signature: GeoToolsLayer.create(Object feature)
focal_class.full_signature: @Override @Transactional(rollbackFor = { Throwable.class }) public Object create(Object feature)
focal_class.identifier: create
focal_class.modifiers: @Override @Transactional(rollbackFor = { Throwable.class }) public
focal_class.parameters: (Object feature)
focal_class.return: Object
focal_class.signature: Object create(Object feature)
focal_class.class_method_signature: GeoToolsLayer.update(Object feature)
focal_class.full_signature:  void update(Object feature)
focal_class.identifier: update
focal_class.parameters: (Object feature)
focal_class.return: void
focal_class.signature: void update(Object feature)
focal_class.class_method_signature: GeoToolsLayer.delete(String featureId)
focal_class.full_signature: @Override @Transactional(rollbackFor = { Throwable.class }) public void delete(String featureId)
focal_class.identifier: delete
focal_class.modifiers: @Override @Transactional(rollbackFor = { Throwable.class }) public
focal_class.parameters: (String featureId)
focal_class.return: void
focal_class.signature: void delete(String featureId)
focal_class.class_method_signature: GeoToolsLayer.saveOrUpdate(Object feature)
focal_class.full_signature: @Override @Transactional(rollbackFor = { Throwable.class }) public Object saveOrUpdate(Object feature)
focal_class.identifier: saveOrUpdate
focal_class.modifiers: @Override @Transactional(rollbackFor = { Throwable.class }) public
focal_class.parameters: (Object feature)
focal_class.return: Object
focal_class.signature: Object saveOrUpdate(Object feature)
focal_class.class_method_signature: GeoToolsLayer.read(String featureId)
focal_class.full_signature: @Override public Object read(String featureId)
focal_class.identifier: read
focal_class.modifiers: @Override public
focal_class.parameters: (String featureId)
focal_class.return: Object
focal_class.signature: Object read(String featureId)
focal_class.class_method_signature: GeoToolsLayer.getBounds()
focal_class.full_signature: @Override public Envelope getBounds()
focal_class.identifier: getBounds
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Envelope
focal_class.signature: Envelope getBounds()
focal_class.class_method_signature: GeoToolsLayer.getBounds(Filter filter)
focal_class.full_signature: @Override public Envelope getBounds(Filter filter)
focal_class.identifier: getBounds
focal_class.modifiers: @Override public
focal_class.parameters: (Filter filter)
focal_class.return: Envelope
focal_class.signature: Envelope getBounds(Filter filter)
focal_class.class_method_signature: GeoToolsLayer.getElements(Filter filter, int offset, int maxResultSize)
focal_class.full_signature: @Transactional(readOnly = true) public Iterator<?> getElements(Filter filter, int offset, int maxResultSize)
focal_class.identifier: getElements
focal_class.modifiers: @Transactional(readOnly = true) public
focal_class.parameters: (Filter filter, int offset, int maxResultSize)
focal_class.return: Iterator<?>
focal_class.signature: Iterator<?> getElements(Filter filter, int offset, int maxResultSize)
focal_class.class_method_signature: GeoToolsLayer.getFeatureModel()
focal_class.full_signature: @Override public FeatureModel getFeatureModel()
focal_class.identifier: getFeatureModel
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: FeatureModel
focal_class.signature: FeatureModel getFeatureModel()
focal_class.class_method_signature: GeoToolsLayer.exists(String featureId)
focal_class.full_signature: private boolean exists(String featureId)
focal_class.identifier: exists
focal_class.modifiers: private
focal_class.parameters: (String featureId)
focal_class.return: boolean
focal_class.signature: boolean exists(String featureId)
focal_class.class_method_signature: GeoToolsLayer.getDataStore()
focal_class.full_signature: @Override public DataStore getDataStore()
focal_class.identifier: getDataStore
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: DataStore
focal_class.signature: DataStore getDataStore()
focal_class.class_method_signature: GeoToolsLayer.retryInitFeatures()
focal_class.full_signature: private void retryInitFeatures()
focal_class.identifier: retryInitFeatures
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void retryInitFeatures()
focal_class.class_method_signature: GeoToolsLayer.getFeatureSource()
focal_class.full_signature: @Override public SimpleFeatureSource getFeatureSource()
focal_class.identifier: getFeatureSource
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SimpleFeatureSource
focal_class.signature: SimpleFeatureSource getFeatureSource()
focal_class.superclass: extends FeatureSourceRetriever
focal_method.body: void update(Object feature) throws LayerException {
  		SimpleFeatureSource source = getFeatureSource();
  		if (source instanceof SimpleFeatureStore) {
  			SimpleFeatureStore store = (SimpleFeatureStore) source;
  			String featureId = getFeatureModel().getId(feature);
  			Filter filter = filterService.createFidFilter(new String[] { featureId });
  			transactionSynchronization.synchTransaction(store);
  			List<Name> names = new ArrayList<Name>();
  			Map<String, Attribute> attrMap = getFeatureModel().getAttributes(feature);
  			List<Object> values = new ArrayList<Object>();
  			for (Map.Entry<String, Attribute> entry : attrMap.entrySet()) {
  				String name = entry.getKey();
  				names.add(store.getSchema().getDescriptor(name).getName());
  				values.add(entry.getValue().getValue());
  			}
  
  			try {
  				store.modifyFeatures(names.toArray(new Name[names.size()]), values.toArray(), filter);
  				store.modifyFeatures(store.getSchema().getGeometryDescriptor().getName(), getFeatureModel()
  						.getGeometry(feature), filter);
  				log.debug("Updated feature {} in {}", featureId, getFeatureSourceName());
  			} catch (IOException ioe) {
  				featureModelUsable = false;
  				throw new LayerException(ioe, ExceptionCode.LAYER_MODEL_IO_EXCEPTION);
  			}
  		} else {
  			log.error("Don't know how to create or update " + getFeatureSourceName() + ", class "
  					+ source.getClass().getName() + " does not implement SimpleFeatureStore");
  			throw new LayerException(ExceptionCode.CREATE_OR_UPDATE_NOT_IMPLEMENTED, getFeatureSourceName(), source
  					.getClass().getName());
  		}
  	}
focal_method.class_method_signature: GeoToolsLayer.update(Object feature)
focal_method.full_signature:  void update(Object feature)
focal_method.identifier: update
focal_method.invocations: getFeatureSource getId getFeatureModel createFidFilter synchTransaction getAttributes getFeatureModel entrySet getKey add getName getDescriptor getSchema add getValue getValue modifyFeatures toArray size toArray modifyFeatures getName getGeometryDescriptor getSchema getGeometry getFeatureModel debug getFeatureSourceName error getFeatureSourceName getName getClass getFeatureSourceName getName getClass
focal_method.parameters: (Object feature)
focal_method.return: void
focal_method.signature: void update(Object feature)