// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.data.osm;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* GWT
*
* changelog
* missing method: getFilteredList
*/
/**
*
* This class can be used to save properties of OsmPrimitive. The main difference between PrimitiveData
* and OsmPrimitive is that PrimitiveData is not part of the dataset and changes in PrimitiveData are not
* reported by events
*
*/
public abstract class PrimitiveData extends AbstractPrimitive {
public PrimitiveData() {
id = OsmPrimitive.generateUniqueId();
}
public PrimitiveData(PrimitiveData data) {
cloneFrom(data);
}
public void setId(long id) {
this.id = id;
}
public void setVersion(int version) {
this.version = version;
}
/**
* override to make it public
*/
@Override
public void setIncomplete(boolean incomplete) {
super.setIncomplete(incomplete);
}
public abstract PrimitiveData makeCopy();
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append(id).append(keys).append(getFlagsAsString());
return builder.toString();
}
// @SuppressWarnings("unchecked")
// static public <T extends PrimitiveData> List<T> getFilteredList(Collection<T> list, OsmPrimitiveType type) {
// List<T> ret = new ArrayList<T>();
// for(PrimitiveData p: list) {
// if (type.getDataClass().isInstance(p)) {
// ret.add((T)p);
// }
// }
// return ret;
// }
@Override
protected final void keysChangedImpl(Map<String, String> originalKeys) {
}
@Override
public abstract OsmPrimitiveType getType();
}