Ignore:
Timestamp:
2018-02-18T05:02:23+01:00 (7 years ago)
Author:
Don-vip
Message:

see #8039, see #10456 - support read-only data layers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java

    r13420 r13434  
    275275    }
    276276
     277    /**
     278     * Throws exception if primitive is in a read-only dataset
     279     */
     280    protected final void checkDatasetNotReadOnly() {
     281        if (dataSet != null && dataSet.isReadOnly())
     282            throw new DataIntegrityProblemException("Primitive cannot be modified in read-only dataset: " + toString());
     283    }
     284
    277285    protected boolean writeLock() {
    278286        if (dataSet != null) {
     
    305313    @Override
    306314    public void setOsmId(long id, int version) {
     315        checkDatasetNotReadOnly();
    307316        boolean locked = writeLock();
    308317        try {
     
    343352    @Override
    344353    public void setUser(User user) {
     354        checkDatasetNotReadOnly();
    345355        boolean locked = writeLock();
    346356        try {
     
    353363    @Override
    354364    public void setChangesetId(int changesetId) {
     365        checkDatasetNotReadOnly();
    355366        boolean locked = writeLock();
    356367        try {
     
    367378    @Override
    368379    public void setTimestamp(Date timestamp) {
     380        checkDatasetNotReadOnly();
    369381        boolean locked = writeLock();
    370382        try {
     
    534546    @Override
    535547    public void setModified(boolean modified) {
     548        checkDatasetNotReadOnly();
    536549        boolean locked = writeLock();
    537550        try {
     
    548561    @Override
    549562    public void setVisible(boolean visible) {
     563        checkDatasetNotReadOnly();
    550564        boolean locked = writeLock();
    551565        try {
     
    559573    @Override
    560574    public void setDeleted(boolean deleted) {
     575        checkDatasetNotReadOnly();
    561576        boolean locked = writeLock();
    562577        try {
     
    577592    @Override
    578593    protected final void setIncomplete(boolean incomplete) {
     594        checkDatasetNotReadOnly();
    579595        boolean locked = writeLock();
    580596        try {
     
    891907    @Override
    892908    public final void setKeys(TagMap keys) {
     909        checkDatasetNotReadOnly();
    893910        boolean locked = writeLock();
    894911        try {
     
    901918    @Override
    902919    public final void setKeys(Map<String, String> keys) {
     920        checkDatasetNotReadOnly();
    903921        boolean locked = writeLock();
    904922        try {
     
    911929    @Override
    912930    public final void put(String key, String value) {
     931        checkDatasetNotReadOnly();
    913932        boolean locked = writeLock();
    914933        try {
     
    921940    @Override
    922941    public final void remove(String key) {
     942        checkDatasetNotReadOnly();
    923943        boolean locked = writeLock();
    924944        try {
     
    931951    @Override
    932952    public final void removeAll() {
     953        checkDatasetNotReadOnly();
    933954        boolean locked = writeLock();
    934955        try {
     
    966987     */
    967988    protected void addReferrer(OsmPrimitive referrer) {
     989        checkDatasetNotReadOnly();
    968990        if (referrers == null) {
    969991            referrers = referrer;
     
    9861008     */
    9871009    protected void removeReferrer(OsmPrimitive referrer) {
     1010        checkDatasetNotReadOnly();
    9881011        if (referrers instanceof OsmPrimitive) {
    9891012            if (referrers == referrer) {
     
    11481171     */
    11491172    public void mergeFrom(OsmPrimitive other) {
     1173        checkDatasetNotReadOnly();
    11501174        boolean locked = writeLock();
    11511175        try {
     
    12391263     */
    12401264    public void load(PrimitiveData data) {
     1265        checkDatasetNotReadOnly();
    12411266        // Write lock is provided by subclasses
    12421267        setKeys(data.hasKeys() ? data.getKeys() : null);
Note: See TracChangeset for help on using the changeset viewer.