> Of course the most famous attribute memory-saving scheme is Michael's > permgen attribute string scheme for dbf files. That one saves a ton > of memory on typically redundant data, until you run out of permgen > memory. Note that I changed the mechanism which now use normal memory through a simple hashmap in DbfFile instead of using permgen which was causing troubles with non-redundant data.
Michaël > > Larry > > On Thu, Apr 23, 2009 at 4:06 PM, Martin Davis <mbda...@refractions.net > <mailto:mbda...@refractions.net>> wrote: > > re Mutating Geometry in-place - JTS discourages this, but does not > prevent it. Sometimes people do this when they are transforming > coordinates (eg. translation or affine transform).. It's quite > possible that all the JUMP code is clean, however. In any case, this > will only be an issue if that particular function is used. > > re tracking modifications - how about providing a method that lets you > clear the modified flag? Then the feature can be constructed as > necessary and then marked as clean. > > It seems heavyweight to carry around a set of data which is only > really > of use during the construction phase of a Feature. To avoid this, I'd > even suggest constructing a Feature as needed, then creating a new > Feature from it via a constructor which sets the modified flag > appropriately. Anything to avoid requiring more storage. > > How does GeoTools handle this? > > Larry Becker wrote: > > The tricky thing about modifications is not to find a record is > > modified just because you set the initial value. It is only > modified > > if you set it more than once, otherwise all records would be set as > > modified as soon as they are loaded. > > > > The next trick is to consider that you call setAttribute multiple > > times with different attribute indexes, so it is necessary to track > > the changes to each one separately. > > > > Mutating Geometries in place is a concern. I have never seen code > > that does this, and certainly none of the edit tools or any plugins > > that use transactions do this, but it may be possible. Could > you just > > modify the Coordinate.x and y values? I'll try to construct a > > Beanshell test for this, but I doubt that this is a serious concern. > > All of the tools and plugins that I have tried so far play by > the rules. > > > > Larry > > > > On Thu, Apr 23, 2009 at 2:12 PM, Martin Davis > <mbda...@refractions.net <mailto:mbda...@refractions.net> > > <mailto:mbda...@refractions.net > <mailto:mbda...@refractions.net>>> wrote: > > > > Larry, why do you use an int rather than a boolean to flag > changed > > attributes? > > > > BTW, In order to track changes to Geometry attributes > correctly, the > > JUMP codebase needs to be scrutinized to make sure it isn't > mutating > > Geometries "in place". > > > > > > > > Larry Becker wrote: > > > Hi, > > > > > > As I mentioned in the other thread, before the problem > of partial > > > database updates can be solved, we must first be able to > > determine if > > > a Feature has been modified. This is not currently > possible in > > all of > > > the JUMP variants that I am familiar with, although Kosmo > may have > > > implemented it. > > > > > > The simplest way of implementing it that I can see is to > modify > > > BasicFeature to include: > > > > > > private int[] attributeModCount; //this is a parallel > array to > > > Object[] attributes > > > > > > Then it would be necessary to allocate the > attributeModCount array > > > when setAttributes(Object[] attributes) is called. > > > > > > In addition each time setAttribute(int attributeIndex, Object > > > newAttribute) is called, add the line of code: > > > > > > attributeModCount[attributeIndex]++ > > > > > > With these modifications we could then define: > > > > > > public boolean isFeatureModified() { > > > for (int i=0; i<attributeModCount.length; i++) { > > > if (attributeModCount[i] > 1) //modified is defined as > > setting > > > an attribute more than once > > > return true; > > > } > > > return false; > > > } > > > > > > Would this work and does this seem like something we should > > consider? > > > > > > regards, > > > Larry > > > -- > > > http://amusingprogrammer.blogspot.com/ > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > ------------------------------------------------------------------------------ > > > > > > > > > ------------------------------------------------------------------------ > > > > > > _______________________________________________ > > > Jump-pilot-devel mailing list > > > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > > <mailto:Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net>> > > > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > > > > -- > > Martin Davis > > Senior Technical Architect > > Refractions Research, Inc. > > (250) 383-3022 > > > > > > > > ------------------------------------------------------------------------------ > > Crystal Reports - New Free Runtime and 30 Day Trial > > Check out the new simplified licensign option that enables > unlimited > > royalty-free distribution of the report engine for > externally > > facing > > server and web deployment. > > http://p.sf.net/sfu/businessobjects > > _______________________________________________ > > Jump-pilot-devel mailing list > > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > > <mailto:Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net>> > > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > > > > > > > -- > > http://amusingprogrammer.blogspot.com/ > > > ------------------------------------------------------------------------ > > > > > > ------------------------------------------------------------------------------ > > Crystal Reports - New Free Runtime and 30 Day Trial > > Check out the new simplified licensign option that enables unlimited > > royalty-free distribution of the report engine for > externally facing > > server and web deployment. > > http://p.sf.net/sfu/businessobjects > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Jump-pilot-devel mailing list > > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > -- > Martin Davis > Senior Technical Architect > Refractions Research, Inc. > (250) 383-3022 > > > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensign option that enables unlimited > royalty-free distribution of the report engine for externally > facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > > -- > http://amusingprogrammer.blogspot.com/ > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensign option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > ------------------------------------------------------------------------ > > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel