diff --git a/core/src/net/sf/openrocket/rocketcomponent/AxialStage.java b/core/src/net/sf/openrocket/rocketcomponent/AxialStage.java index 77fcc5c05..a5607615e 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/AxialStage.java +++ b/core/src/net/sf/openrocket/rocketcomponent/AxialStage.java @@ -145,7 +145,7 @@ public class AxialStage extends ComponentAssembly implements FlightConfigurableC public void setStageNumber(final int newStageNumber) { this.stageNumber = newStageNumber; } - + @Override protected StringBuilder toDebugDetail() { StringBuilder buf = super.toDebugDetail(); diff --git a/core/src/net/sf/openrocket/rocketcomponent/ComponentAssembly.java b/core/src/net/sf/openrocket/rocketcomponent/ComponentAssembly.java index f6bb62b95..16c40b0ac 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/ComponentAssembly.java +++ b/core/src/net/sf/openrocket/rocketcomponent/ComponentAssembly.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import net.sf.openrocket.rocketcomponent.position.AxialMethod; +import net.sf.openrocket.rocketcomponent.position.AxialPositionable; import net.sf.openrocket.util.BugException; import net.sf.openrocket.util.Coordinate; @@ -21,7 +22,7 @@ import net.sf.openrocket.util.Coordinate; * * @author Sampo Niskanen */ -public abstract class ComponentAssembly extends RocketComponent { +public abstract class ComponentAssembly extends RocketComponent implements AxialPositionable { private static final Logger log = LoggerFactory.getLogger(ComponentAssembly.class); /** @@ -131,17 +132,18 @@ public abstract class ComponentAssembly extends RocketComponent { super.setAxialOffset(this.axialMethod, _pos); fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } - - public void setRelativePositionMethod(final AxialMethod _newPosition) { + + @Override + public void setAxialMethod( final AxialMethod newMethod ) { if (null == this.parent) { throw new NullPointerException(" a Stage requires a parent before any positioning! "); } if ((this instanceof ParallelStage ) || ( this instanceof PodSet )){ - if (AxialMethod.AFTER == _newPosition) { + if (AxialMethod.AFTER == newMethod) { log.warn("Stages (or Pods) cannot be relative to other stages via AFTER! Ignoring."); super.setAxialMethod(AxialMethod.TOP); } else { - super.setAxialMethod(_newPosition); + super.setAxialMethod(newMethod); } }else if( this.getClass().equals( AxialStage.class)){ // Centerline stages must be set via AFTER-- regardless of what was requested: diff --git a/core/test/net/sf/openrocket/rocketcomponent/ParallelStageTest.java b/core/test/net/sf/openrocket/rocketcomponent/ParallelStageTest.java index 965b07f3c..ccd83a88a 100644 --- a/core/test/net/sf/openrocket/rocketcomponent/ParallelStageTest.java +++ b/core/test/net/sf/openrocket/rocketcomponent/ParallelStageTest.java @@ -173,7 +173,7 @@ public class ParallelStageTest extends BaseTestCase { // without making the rocket 'external' and the Stage should be restricted to AFTER positioning. - sustainer.setRelativePositionMethod(AxialMethod.ABSOLUTE); + sustainer.setAxialMethod(AxialMethod.ABSOLUTE); assertThat("Setting a centerline stage to anything other than AFTER is ignored.", sustainer.isAfter(), equalTo(true)); assertThat("Setting a centerline stage to anything other than AFTER is ignored.", sustainer.getAxialMethod(), equalTo(AxialMethod.AFTER)); @@ -613,7 +613,7 @@ public class ParallelStageTest extends BaseTestCase { boosterA.setAxialOffset(AxialMethod.TOP, targetOffset); - boosterB.setRelativePositionMethod(AxialMethod.TOP); + boosterB.setAxialMethod(AxialMethod.TOP); boosterB.setAxialOffset(targetOffset); String treeDump = rocket.toDebugTree();