AbstractRndMonitor.java
/*
* License : The MIT License
* Copyright(c) 2022 Olyutorskii
*/
package io.github.olyutorskii.aletojio.idling;
/**
* Abstract {@link RndMonitor} implements.
*/
public abstract class AbstractRndMonitor implements RndMonitor {
private boolean meet = false;
/**
* Constructor.
*/
protected AbstractRndMonitor() {
super();
return;
}
/**
* {@inheritDoc}
*/
@Override
public void reset() {
this.meet = false;
resetImpl();
return;
}
/**
* Implement of {@link #reset()}.
*/
protected abstract void resetImpl();
/**
* {@inheritDoc}
*
* @param iVal {@inheritDoc}
* @return {@inheritDoc}
*/
@Override
public boolean probe(int iVal) {
if (this.meet) {
return true;
}
if (probeImpl(iVal)) {
this.meet = true;
}
return this.meet;
}
/**
* Implement of {@link #probe(int)}.
*
* @param iVal int value
* @return true if
*/
protected abstract boolean probeImpl(int iVal);
/**
* {@inheritDoc}
*
* @return {@inheritDoc}
*/
@Override
public boolean hasMet() {
return this.meet;
}
}