diff options
| -rw-r--r-- | altoslib/AltosRecord.java | 12 | ||||
| -rw-r--r-- | altoslib/AltosRecordMM.java | 10 | ||||
| -rw-r--r-- | altoslib/AltosRecordNone.java | 4 | ||||
| -rw-r--r-- | altoslib/AltosRecordTM.java | 8 | 
4 files changed, 18 insertions, 16 deletions
diff --git a/altoslib/AltosRecord.java b/altoslib/AltosRecord.java index 09169515..2c4b6fa5 100644 --- a/altoslib/AltosRecord.java +++ b/altoslib/AltosRecord.java @@ -126,6 +126,8 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable  		return tick - o.tick;  	} +	abstract public AltosRecord clone(); +  	public void copy(AltosRecord old) {  		seen = old.seen;  		version = old.version; @@ -144,16 +146,6 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable  		kalman_height = old.kalman_height;  	} -	public AltosRecord clone() { -		try { -			AltosRecord n = (AltosRecord) super.clone(); -			n.copy(this); -			return n; -		} catch (CloneNotSupportedException e) { -			return null; -		} -	} -  	public AltosRecord() {  		seen = 0;  		version = 0; diff --git a/altoslib/AltosRecordMM.java b/altoslib/AltosRecordMM.java index 9f529234..546f3055 100644 --- a/altoslib/AltosRecordMM.java +++ b/altoslib/AltosRecordMM.java @@ -131,10 +131,10 @@ public class AltosRecordMM extends AltosRecord {  		mag = old.mag;  	} + +  	public AltosRecordMM clone() { -		AltosRecordMM n = (AltosRecordMM) super.clone(); -		n.copy(this); -		return n; +		return new AltosRecordMM(this);  	}  	void make_missing() { @@ -167,6 +167,10 @@ public class AltosRecordMM extends AltosRecord {  		make_missing();  	} +	public AltosRecordMM(AltosRecordMM old) { +		copy(old); +	} +  	public AltosRecordMM() {  		super();  		make_missing(); diff --git a/altoslib/AltosRecordNone.java b/altoslib/AltosRecordNone.java index ca0a5fe3..d4ea305f 100644 --- a/altoslib/AltosRecordNone.java +++ b/altoslib/AltosRecordNone.java @@ -28,6 +28,10 @@ public class AltosRecordNone extends AltosRecord {  		super.copy(old);  	} +	public AltosRecordNone clone() { +		return new AltosRecordNone(this); +	} +  	public AltosRecordNone() {  		super();  	} diff --git a/altoslib/AltosRecordTM.java b/altoslib/AltosRecordTM.java index 9530be31..f6ed4966 100644 --- a/altoslib/AltosRecordTM.java +++ b/altoslib/AltosRecordTM.java @@ -149,9 +149,7 @@ public class AltosRecordTM extends AltosRecord {  	}  	public AltosRecordTM clone() { -		AltosRecordTM	n = (AltosRecordTM) super.clone(); -		n.copy(this); -		return n; +		return new AltosRecordTM(this);  	}  	void make_missing() { @@ -177,6 +175,10 @@ public class AltosRecordTM extends AltosRecord {  		make_missing();  	} +	public AltosRecordTM(AltosRecordTM old) { +		copy(old); +	} +	  	public AltosRecordTM() {  		super();  		make_missing();  | 
