// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.core.database;
import org.openstreetmap.osmosis.core.store.StoreClassRegister;
import org.openstreetmap.osmosis.core.store.StoreReader;
import org.openstreetmap.osmosis.core.store.StoreWriter;
import org.openstreetmap.osmosis.core.store.Storeable;
/**
* A data class for representing a way node database record. This extends a way
* node with fields relating it to the owning way.
*
* @author Brett Henderson
* @param <T>
* The feature type to be encapsulated.
*/
public class DbOrderedFeature<T extends Storeable> extends DbFeature<T> {
private int sequenceId;
/**
* Creates a new instance.
*
* @param entityId
* The owning entity id.
* @param feature
* The feature being referenced.
* @param sequenceId
* The order of this feature within the entity.
*/
public DbOrderedFeature(long entityId, T feature, int sequenceId) {
super(entityId, feature);
this.sequenceId = sequenceId;
}
/**
* Creates a new instance.
*
* @param sr
* The store to read state from.
* @param scr
* Maintains the mapping between classes and their identifiers
* within the store.
*/
public DbOrderedFeature(StoreReader sr, StoreClassRegister scr) {
super(sr, scr);
this.sequenceId = sr.readInteger();
}
/**
* {@inheritDoc}
*/
@Override
public void store(StoreWriter sw, StoreClassRegister scr) {
super.store(sw, scr);
sw.writeInteger(sequenceId);
}
/**
* @return The sequence id.
*/
public int getSequenceId() {
return sequenceId;
}
}