Refactor messages to have priority
This commit is contained in:
		
							parent
							
								
									70717c3d17
								
							
						
					
					
						commit
						ce507a6656
					
				@ -2148,11 +2148,11 @@ Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING =
 | 
			
		||||
Warning.FILE_INVALID_PARAMETER = Invalid parameter encountered, ignoring.
 | 
			
		||||
Warning.PARALLEL_FINS = Too many parallel fins
 | 
			
		||||
Warning.SUPERSONIC = Body calculations may not be entirely accurate at supersonic speeds.
 | 
			
		||||
Warning.RECOVERY_LAUNCH_ROD = Recovery device device deployed while on the launch guide.
 | 
			
		||||
Warning.RECOVERY_LAUNCH_ROD = Recovery device deployed while on the launch guide.
 | 
			
		||||
Warning.RECOVERY_HIGH_SPEED = Recovery device deployment at high speed
 | 
			
		||||
Warning.NO_RECOVERY_DEVICE = No recovery device defined in the simulation.
 | 
			
		||||
Warning.TUMBLE_UNDER_THRUST = Stage began to tumble under thrust.
 | 
			
		||||
Warning.EVENT_AFTER_LANDING = Flight Event occurred after landing:  
 | 
			
		||||
Warning.EVENT_AFTER_LANDING = Flight Event occurred after landing: 
 | 
			
		||||
Warning.ZERO_VOLUME_BODY = Zero-volume bodies may not simulate accurately
 | 
			
		||||
Warning.TUBE_SEPARATION = Space between tube fins may not simulate accurately.
 | 
			
		||||
Warning.TUBE_OVERLAP = Overlapping tube fins may not simulate accurately.
 | 
			
		||||
 | 
			
		||||
@ -10,12 +10,7 @@ public abstract class Message implements Cloneable {
 | 
			
		||||
    /** The rocket component(s) that are the source of this message **/
 | 
			
		||||
    private RocketComponent[] sources = null;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return a Message with the specific text.
 | 
			
		||||
     */
 | 
			
		||||
    public static Message fromString(String text) {
 | 
			
		||||
        return new Warning.Other(text);
 | 
			
		||||
    }
 | 
			
		||||
    private MessagePriority priority = MessagePriority.NORMAL;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns the message text + message source objects.
 | 
			
		||||
@ -75,6 +70,21 @@ public abstract class Message implements Cloneable {
 | 
			
		||||
        this.sources = sources;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Return the priority of this message.
 | 
			
		||||
     * @return the priority of this message.
 | 
			
		||||
     */
 | 
			
		||||
    public MessagePriority getPriority() {
 | 
			
		||||
        return priority;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Set the priority of this message.
 | 
			
		||||
     * @param priority the priority of this message.
 | 
			
		||||
     */
 | 
			
		||||
    public void setPriority(MessagePriority priority) {
 | 
			
		||||
        this.priority = priority;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Two <code>Message</code>s are by default considered equal if they are of
 | 
			
		||||
@ -84,7 +94,8 @@ public abstract class Message implements Cloneable {
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean equals(Object o) {
 | 
			
		||||
        return o != null && (o.getClass() == this.getClass() && sourcesEqual(((Message) o).sources, sources));
 | 
			
		||||
        return o != null && (o.getClass() == this.getClass() && sourcesEqual(((Message) o).sources, sources))
 | 
			
		||||
                && ((Message) o).priority == priority;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@ -109,6 +120,7 @@ public abstract class Message implements Cloneable {
 | 
			
		||||
    protected Object clone() throws CloneNotSupportedException {
 | 
			
		||||
        Message clone = (Message) super.clone();
 | 
			
		||||
        clone.sources = this.sources;
 | 
			
		||||
        clone.priority = this.priority;
 | 
			
		||||
        return clone;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								core/src/net/sf/openrocket/logging/MessagePriority.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								core/src/net/sf/openrocket/logging/MessagePriority.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
package net.sf.openrocket.logging;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The priority of a message.
 | 
			
		||||
 */
 | 
			
		||||
public enum MessagePriority {
 | 
			
		||||
	LOW,
 | 
			
		||||
	NORMAL,
 | 
			
		||||
	HIGH
 | 
			
		||||
}
 | 
			
		||||
@ -16,10 +16,17 @@ public abstract class Warning extends Message {
 | 
			
		||||
	private static final Translator trans = Application.getTranslator();
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @return a Warning with the specific text.
 | 
			
		||||
	 * @return a Message with the specific text and priority.
 | 
			
		||||
	 */
 | 
			
		||||
	public static Warning fromString(String text, MessagePriority priority) {
 | 
			
		||||
		return new Warning.Other(text, priority);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @return a Message with the specific text.
 | 
			
		||||
	 */
 | 
			
		||||
	public static Warning fromString(String text) {
 | 
			
		||||
		return new Warning.Other(text);
 | 
			
		||||
		return fromString(text, MessagePriority.NORMAL);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -42,6 +49,7 @@ public abstract class Warning extends Message {
 | 
			
		||||
		 */
 | 
			
		||||
		public LargeAOA(double aoa) {
 | 
			
		||||
			this.aoa = aoa;
 | 
			
		||||
			setPriority(MessagePriority.NORMAL);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		@Override
 | 
			
		||||
@ -93,6 +101,7 @@ public abstract class Warning extends Message {
 | 
			
		||||
		 */
 | 
			
		||||
		public HighSpeedDeployment(double speed) {
 | 
			
		||||
			this.recoverySpeed = speed;
 | 
			
		||||
			setPriority(MessagePriority.NORMAL);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		@Override
 | 
			
		||||
@ -135,6 +144,7 @@ public abstract class Warning extends Message {
 | 
			
		||||
		 */
 | 
			
		||||
		public EventAfterLanding(FlightEvent _event)  {
 | 
			
		||||
			this.event = _event;
 | 
			
		||||
			setPriority(MessagePriority.HIGH);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// I want a warning on every event that occurs after we land,
 | 
			
		||||
@ -172,7 +182,11 @@ public abstract class Warning extends Message {
 | 
			
		||||
		private double diameter = Double.NaN;
 | 
			
		||||
		private double length = Double.NaN;
 | 
			
		||||
		private double delay = Double.NaN;
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
		public MissingMotor() {
 | 
			
		||||
			setPriority(MessagePriority.HIGH);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getMessageDescription() {
 | 
			
		||||
			String str = "No motor with designation '" + designation + "'";
 | 
			
		||||
@ -345,8 +359,13 @@ public abstract class Warning extends Message {
 | 
			
		||||
	public static class Other extends Warning {
 | 
			
		||||
		private String description;
 | 
			
		||||
		
 | 
			
		||||
		public Other(String description) {
 | 
			
		||||
		public Other(String description, MessagePriority priority) {
 | 
			
		||||
			this.description = description;
 | 
			
		||||
			setPriority(priority);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public Other(String description) {
 | 
			
		||||
			this(description, MessagePriority.NORMAL);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		@Override
 | 
			
		||||
@ -379,68 +398,75 @@ public abstract class Warning extends Message {
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	/** A <code>Warning</code> that the body diameter is discontinuous. */
 | 
			
		||||
	////Discontinuity in rocket body diameter.
 | 
			
		||||
	public static final Warning DIAMETER_DISCONTINUITY = new Other(trans.get("Warning.DISCONTINUITY"));
 | 
			
		||||
	public static final Warning DIAMETER_DISCONTINUITY = new Other(trans.get("Warning.DISCONTINUITY"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** A <code>Warning</code> that a ComponentAssembly has an open forward end */	
 | 
			
		||||
	public static final Warning OPEN_AIRFRAME_FORWARD = new Other(trans.get("Warning.OPEN_AIRFRAME_FORWARD"));
 | 
			
		||||
	public static final Warning OPEN_AIRFRAME_FORWARD = new Other(trans.get("Warning.OPEN_AIRFRAME_FORWARD"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** A <code>Warning</code> that there is a gap in the airframe */
 | 
			
		||||
	public static final Warning AIRFRAME_GAP = new Other(trans.get("Warning.AIRFRAME_GAP"));
 | 
			
		||||
	public static final Warning AIRFRAME_GAP = new Other(trans.get("Warning.AIRFRAME_GAP"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** A <code>Warning</code> that there are overlapping airframe components */
 | 
			
		||||
	public static final Warning AIRFRAME_OVERLAP = new Other(trans.get("Warning.AIRFRAME_OVERLAP"));
 | 
			
		||||
	public static final Warning AIRFRAME_OVERLAP = new Other(trans.get("Warning.AIRFRAME_OVERLAP"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** A <code>Warning</code> that an inline podset is completely forward of its parent component */
 | 
			
		||||
	public static final Warning PODSET_FORWARD = new Other(trans.get("Warning.PODSET_FORWARD"));
 | 
			
		||||
	public static final Warning PODSET_FORWARD = new Other(trans.get("Warning.PODSET_FORWARD"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** A <code>Warning</code> that an inline podset overlaps its parent component */
 | 
			
		||||
	public static final Warning PODSET_OVERLAP = new Other(trans.get("Warning.PODSET_OVERLAP"));
 | 
			
		||||
	public static final Warning PODSET_OVERLAP = new Other(trans.get("Warning.PODSET_OVERLAP"), MessagePriority.NORMAL);
 | 
			
		||||
	
 | 
			
		||||
	/** A <code>Warning</code> that the fins are thick compared to the rocket body. */
 | 
			
		||||
	////Thick fins may not be modeled accurately.
 | 
			
		||||
	public static final Warning THICK_FIN = new Other(trans.get("Warning.THICK_FIN"));
 | 
			
		||||
	public static final Warning THICK_FIN = new Other(trans.get("Warning.THICK_FIN"), MessagePriority.NORMAL);
 | 
			
		||||
	
 | 
			
		||||
	/** A <code>Warning</code> that the fins have jagged edges. */
 | 
			
		||||
	////Jagged-edged fin predictions may be inaccurate.
 | 
			
		||||
	public static final Warning JAGGED_EDGED_FIN = new Other(trans.get("Warning.JAGGED_EDGED_FIN"));
 | 
			
		||||
	public static final Warning JAGGED_EDGED_FIN = new Other(trans.get("Warning.JAGGED_EDGED_FIN"), MessagePriority.NORMAL);
 | 
			
		||||
	
 | 
			
		||||
	/** A <code>Warning</code> that the fins have a zero area. */
 | 
			
		||||
	////Fins with no area will not affect aerodynamics
 | 
			
		||||
	public static final Warning ZERO_AREA_FIN = new Other(trans.get("Warning.ZERO_AREA_FIN"));
 | 
			
		||||
	public static final Warning ZERO_AREA_FIN = new Other(trans.get("Warning.ZERO_AREA_FIN"), MessagePriority.NORMAL);
 | 
			
		||||
	
 | 
			
		||||
	/** A <code>Warning</code> that simulation listeners have affected the simulation */
 | 
			
		||||
	////Listeners modified the flight simulation
 | 
			
		||||
	public static final Warning LISTENERS_AFFECTED = new Other(trans.get("Warning.LISTENERS_AFFECTED"));
 | 
			
		||||
	public static final Warning LISTENERS_AFFECTED = new Other(trans.get("Warning.LISTENERS_AFFECTED"), MessagePriority.LOW);
 | 
			
		||||
	
 | 
			
		||||
	////No recovery device for simulation
 | 
			
		||||
	public static final Warning NO_RECOVERY_DEVICE = new Other(trans.get("Warning.NO_RECOVERY_DEVICE"));
 | 
			
		||||
	/** No recovery device defined in the simulation. */
 | 
			
		||||
	public static final Warning NO_RECOVERY_DEVICE = new Other(trans.get("Warning.NO_RECOVERY_DEVICE"), MessagePriority.HIGH);
 | 
			
		||||
	
 | 
			
		||||
	//// Invalid parameter encountered, ignoring.
 | 
			
		||||
	public static final Warning FILE_INVALID_PARAMETER = new Other(trans.get("Warning.FILE_INVALID_PARAMETER"));
 | 
			
		||||
	
 | 
			
		||||
	public static final Warning PARALLEL_FINS = new Other(trans.get("Warning.PARALLEL_FINS"));
 | 
			
		||||
	/** Invalid parameter encountered, ignoring. */
 | 
			
		||||
	public static final Warning FILE_INVALID_PARAMETER = new Other(trans.get("Warning.FILE_INVALID_PARAMETER"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	public static final Warning SUPERSONIC = new Other(trans.get("Warning.SUPERSONIC"));
 | 
			
		||||
	
 | 
			
		||||
	public static final Warning RECOVERY_LAUNCH_ROD = new Other(trans.get("Warning.RECOVERY_LAUNCH_ROD"));
 | 
			
		||||
	
 | 
			
		||||
	public static final Warning TUMBLE_UNDER_THRUST = new Other(trans.get("Warning.TUMBLE_UNDER_THRUST"));
 | 
			
		||||
	/** Too many parallel fins */
 | 
			
		||||
	public static final Warning PARALLEL_FINS = new Other(trans.get("Warning.PARALLEL_FINS"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	public static final Warning EVENT_AFTER_LANDING = new Other(trans.get("Warning.EVENT_AFTER_LANDING"));
 | 
			
		||||
	/** Body calculations may not be entirely accurate at supersonic speeds. */
 | 
			
		||||
	public static final Warning SUPERSONIC = new Other(trans.get("Warning.SUPERSONIC"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	public static final Warning ZERO_VOLUME_BODY = new Other(trans.get("Warning.ZERO_VOLUME_BODY"));
 | 
			
		||||
	/** Recovery device deployed while on the launch guide. */
 | 
			
		||||
	public static final Warning RECOVERY_LAUNCH_ROD = new Other(trans.get("Warning.RECOVERY_LAUNCH_ROD"), MessagePriority.HIGH);
 | 
			
		||||
 | 
			
		||||
	public static final Warning TUBE_SEPARATION = new Other(trans.get("Warning.TUBE_SEPARATION"));
 | 
			
		||||
	public static final Warning TUBE_OVERLAP = new Other(trans.get("Warning.TUBE_OVERLAP"));
 | 
			
		||||
	/** Stage began to tumble under thrust. */
 | 
			
		||||
	public static final Warning TUMBLE_UNDER_THRUST = new Other(trans.get("Warning.TUMBLE_UNDER_THRUST"), MessagePriority.HIGH);
 | 
			
		||||
 | 
			
		||||
	public static final Warning OBJ_ZERO_THICKNESS = new Other(trans.get("Warning.OBJ_ZERO_THICKNESS"));
 | 
			
		||||
	/** Flight Event occurred after landing:  */
 | 
			
		||||
	public static final Warning EVENT_AFTER_LANDING = new Other(trans.get("Warning.EVENT_AFTER_LANDING"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** Zero-volume bodies may not simulate accurately */
 | 
			
		||||
	public static final Warning ZERO_VOLUME_BODY = new Other(trans.get("Warning.ZERO_VOLUME_BODY"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** Space between tube fins may not simulate accurately. */
 | 
			
		||||
	public static final Warning TUBE_SEPARATION = new Other(trans.get("Warning.TUBE_SEPARATION"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** Overlapping tube fins may not simulate accurately. */
 | 
			
		||||
	public static final Warning TUBE_OVERLAP = new Other(trans.get("Warning.TUBE_OVERLAP"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** Zero-thickness component can cause issues for 3D printing */
 | 
			
		||||
	public static final Warning OBJ_ZERO_THICKNESS = new Other(trans.get("Warning.OBJ_ZERO_THICKNESS"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** A <code>Warning</code> that stage separation occurred at other than the last stage */
 | 
			
		||||
	public static final Warning SEPARATION_ORDER = new Other(trans.get("Warning.SEPARATION_ORDER"));
 | 
			
		||||
	public static final Warning SEPARATION_ORDER = new Other(trans.get("Warning.SEPARATION_ORDER"), MessagePriority.NORMAL);
 | 
			
		||||
 | 
			
		||||
	/** A <code>Warning</code> that stage separation occurred before the rocket cleared the launch rod or rail */
 | 
			
		||||
	public static final Warning EARLY_SEPARATION = new Other(trans.get("Warning.EARLY_SEPARATION"));
 | 
			
		||||
	public static final Warning EARLY_SEPARATION = new Other(trans.get("Warning.EARLY_SEPARATION"), MessagePriority.HIGH);
 | 
			
		||||
 | 
			
		||||
	public static final Warning EMPTY_BRANCH = new Other(trans.get("Warning.EMPTY_BRANCH"));
 | 
			
		||||
	/** Simulation branch contains no data */
 | 
			
		||||
	public static final Warning EMPTY_BRANCH = new Other(trans.get("Warning.EMPTY_BRANCH"), MessagePriority.HIGH);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user