view src/luan/impl/Pointer.java @ 1802:ca98dee04e08 default tip

add Parsers.json_null
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 21 Apr 2024 21:25:15 -0600
parents c922446f53aa
children
line wrap: on
line source

package luan.impl;

import luan.LuanMutable;
import luan.LuanException;


public final class Pointer implements LuanMutable {
	private Object o;
	private boolean immutable = false;

	public Pointer() {}

	public Pointer(Object o) {
		this.o = o;
	}

	@Override public boolean isImmutable() {
		return immutable;
	}

	@Override public void makeImmutable() {
		if(immutable)
			return;
		immutable = true;
		LuanMutable.makeImmutable(o);
	}

	public Object get() {
		return o;
	}

	public void set(Object o) throws LuanException {
		if( immutable )
			throw new LuanException("variable is immutable");
		this.o = o;
	}
}