io.github.sinri.drydock.naval.carrier.AircraftCarrier Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of DryDock Show documentation
Show all versions of DryDock Show documentation
Prototype Library for Keel Based Java Projects.
package io.github.sinri.drydock.naval.carrier;
import io.github.sinri.drydock.air.Bomber;
import io.github.sinri.drydock.air.Drone;
import io.github.sinri.drydock.air.Fighter;
import io.github.sinri.drydock.common.health.HealthMonitor;
import io.github.sinri.drydock.common.health.HealthMonitorMixin;
import io.github.sinri.drydock.common.health.HealthMonitorWithIssueRecorder;
import io.github.sinri.drydock.common.health.HealthMonitorWithMetricRecorder;
import io.github.sinri.drydock.common.logging.DryDockLogTopics;
import io.github.sinri.drydock.common.logging.adapter.AliyunSLSIssueAdapterImpl;
import io.github.sinri.drydock.common.logging.adapter.AliyunSLSMetricRecorder;
import io.github.sinri.drydock.common.logging.issue.HealthMonitorIssueRecord;
import io.github.sinri.keel.core.TechnicalPreview;
import io.github.sinri.keel.logger.issue.center.KeelIssueRecordCenter;
import io.github.sinri.keel.logger.issue.center.KeelIssueRecordCenterAsAsync;
import io.github.sinri.keel.logger.metric.KeelMetricRecorder;
import io.vertx.core.Future;
import io.vertx.core.VertxOptions;
import io.vertx.core.cli.CommandLine;
import io.vertx.core.cli.Option;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List;
import static io.github.sinri.keel.facade.KeelInstance.Keel;
/**
* @since 1.5.0 Technical Preview
*/
@TechnicalPreview(since = "1.5.0")
public abstract class AircraftCarrier extends AircraftCarrierDeck implements HealthMonitorMixin {
private Bomber bomber;
private Drone drone;
private Fighter fighter;
private KeelMetricRecorder metricRecorder;
protected abstract Bomber constructBomber();
/**
* @since 1.5.2
*/
public Bomber getBomber() {
return bomber;
}
protected abstract Drone constructDrone();
/**
* @since 1.5.2
*/
public Drone getDrone() {
return drone;
}
protected abstract Fighter constructFighter(@Nullable Integer port);
/**
* @since 1.5.2
*/
public Fighter getFighter() {
return this.fighter;
}
@Nullable
@Override
protected List