Revision 33378 branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/impl/DefaultFeatureReferenceSelection.java

View differences:

DefaultFeatureReferenceSelection.java
44 44
import org.gvsig.tools.dispose.impl.AbstractDisposable;
45 45
import org.gvsig.tools.dynobject.DynStruct;
46 46
import org.gvsig.tools.exception.BaseException;
47
import org.gvsig.tools.lang.Cloneable;
47 48
import org.gvsig.tools.observer.Observable;
48 49
import org.gvsig.tools.observer.Observer;
49 50
import org.gvsig.tools.observer.impl.BaseWeakReferencingObservable;
......
346 347
        return helper.getFeatureStoreCommandsStack();
347 348
    }
348 349

  
349
    public static class SelectionData {
350
	public static class SelectionData implements Cloneable {
350 351
        private Set selected = new HashSet();
351 352

  
352 353
        /**
......
430 431
        }
431 432

  
432 433
        public Object clone() throws CloneNotSupportedException {
433
            SelectionData clone = new SelectionData();
434
            clone.setReversed(isReversed());
435
            clone.setTotalSize(getTotalSize());
436
            clone.setSelected(new HashSet(getSelected()));
434
			SelectionData clone = (SelectionData) super.clone();
435
			// reversed and totalSize already cloned by parent.
436
			// clone the selected Set
437
			clone.selected = new HashSet(selected);
437 438
            return clone;
438 439
        }
439 440
    }
......
534 535
	public void notifyObservers(Object arg) {
535 536
		delegateObservable.notifyObservers(arg);
536 537
	}
538

  
539
	public Object clone() throws CloneNotSupportedException {
540
		DefaultFeatureReferenceSelection clone = (DefaultFeatureReferenceSelection) super
541
				.clone();
542
		// Original observers aren't cloned
543
		clone.delegateObservable = new DelegateWeakReferencingObservable(clone);
544
		// Clone internal data
545
		clone.selectionData = (SelectionData) selectionData.clone();
546
		// featureStore and helper are already swallow cloned by our parent
547
		return clone;
548
	}
537 549
}

Also available in: Unified diff