本文整理匯總了Java中java.util.function.BooleanSupplier類的典型用法代碼示例。如果您正苦於以下問題:Java BooleanSupplier類的具體用法?Java BooleanSupplier怎麽用?Java BooleanSupplier使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
BooleanSupplier類屬於java.util.function包,在下文中一共展示了BooleanSupplier類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: awaitBusy
import java.util.function.BooleanSupplier; //導入依賴的package包/類
public static boolean awaitBusy(BooleanSupplier breakSupplier, long maxWaitTime, TimeUnit unit) throws InterruptedException {
long maxTimeInMillis = TimeUnit.MILLISECONDS.convert(maxWaitTime, unit);
long timeInMillis = 1;
long sum = 0;
while (sum + timeInMillis < maxTimeInMillis) {
if (breakSupplier.getAsBoolean()) {
return true;
}
Thread.sleep(timeInMillis);
sum += timeInMillis;
timeInMillis = Math.min(AWAIT_BUSY_THRESHOLD, timeInMillis * 2);
}
timeInMillis = maxTimeInMillis - sum;
Thread.sleep(Math.max(timeInMillis, 0));
return breakSupplier.getAsBoolean();
}
示例2: doVisitAttribuut
import java.util.function.BooleanSupplier; //導入依賴的package包/類
private void doVisitAttribuut(final MetaAttribuut attribuut, final Onderzoekbundel onderzoekbundel) {
final BooleanSupplier ontbrekendGegeven = () -> onderzoekbundel.isOntbrekend()
&& attribuut.getAttribuutElement().equals(onderzoekbundel.getElement());
final BooleanSupplier voorkomenGegeven = () -> onderzoekbundel.getElementVoorkomensleutel() != null
&& attribuut.getParentRecord().getVoorkomensleutel() == onderzoekbundel.getElementVoorkomensleutel();
final BooleanSupplier objectGegeven = () -> onderzoekbundel.getElementObjectsleutel() != null
&& attribuut.getParentRecord().getParentGroep().getParentObject()
.getObjectsleutel() == onderzoekbundel.getElementObjectsleutel();
if (ontbrekendGegeven.getAsBoolean() || voorkomenGegeven.getAsBoolean() || objectGegeven.getAsBoolean()) {
//voor bepaalde attributen in onderzoek moet het object in onderzoek geplaatst worden
if (onderzoekbundel.getElementObjectsleutel() != null) {
gegevensInOnderzoekTemp.put(onderzoekbundel, attribuut.getParentRecord().getParentGroep().getParentObject());
} else {
gegevensInOnderzoekTemp.put(onderzoekbundel, attribuut);
}
}
}
示例3: doConditionalAction
import java.util.function.BooleanSupplier; //導入依賴的package包/類
private void doConditionalAction(final BooleanSupplier condition, final Action action, ExceptionBehaviour exceptionBehaviour) {
if (condition.getAsBoolean()) {
switch (exceptionBehaviour) {
case CATCH:
try {
action.doWork();
} catch (Exception e) {
logger.error("Error performing action", e);
}
break;
case THROW:
action.doWork();
break;
}
}
}
示例4: test
import java.util.function.BooleanSupplier; //導入依賴的package包/類
@Override
public boolean test(final MetaAttribuut metaAttribuut) {
//actieinhoud, actieverval, actie aanpassing geldigheid
final BooleanSupplier isToekomstigVerantwoordingAttribuut = () -> metaAttribuut.getAttribuutElement().isVerantwoording()
&& toekomstigeHandelingen.contains(metaAttribuut.<Actie>getWaarde().getAdministratieveHandeling());
//ts verval, nadere aanduiding verval. Voor afnemerindicaties is alleen nu van belang bij bepaling actueel.
final BooleanSupplier isToekomstigVervalGerelateerdAttribuut = () ->
metaAttribuut.getAttribuutElement().isDatumTijdVerval()
&& (metaAttribuut.getParentRecord().getParentGroep().getGroepElement().getVerantwoordingCategorie() == VerantwoordingCategorie.D
|| toekomstigeHandelingen.contains(metaAttribuut.getParentRecord().getActieVerval().getAdministratieveHandeling()));
//verwijder actieverval indien actievervalmutlev gevuld is EN niet in tot toekomstige handeling behoort (actieverval is in dit geval leidend)
final BooleanSupplier isVervalMetMutLevVervalGevuld = () -> metaAttribuut.getAttribuutElement().isActieVerval()
&& metaAttribuut.getParentRecord().getActieVervalTbvLeveringMutaties() != null
&& toekomstigeHandelingen.contains(metaAttribuut.getParentRecord().getActieVervalTbvLeveringMutaties().getAdministratieveHandeling());
//true is behouden
return !Lists.newArrayList(isToekomstigVerantwoordingAttribuut, isToekomstigVervalGerelateerdAttribuut,
isVervalMetMutLevVervalGevuld).stream().anyMatch(BooleanSupplier::getAsBoolean);
}
示例5: attempt
import java.util.function.BooleanSupplier; //導入依賴的package包/類
/** Attempt to wait the given condition to return true multiple times. */
static void attempt(
BooleanSupplier condition, int numAttempts, long sleepMs, String name, Logger log)
throws InterruptedException {
Objects.requireNonNull(condition, "condition == null");
Preconditions.assertTrue(numAttempts > 0, () -> "numAttempts = " + numAttempts + " <= 0");
Preconditions.assertTrue(sleepMs >= 0L, () -> "sleepMs = " + sleepMs + " < 0");
for(int i = 1; i <= numAttempts; i++) {
if (condition.getAsBoolean()) {
return;
}
if (log != null && log.isWarnEnabled()) {
log.warn("FAILED " + name + " attempt #" + i + "/" + numAttempts
+ ": sleep " + sleepMs + "ms and then retry.");
}
if (sleepMs > 0) {
Thread.sleep(sleepMs);
}
}
if (!condition.getAsBoolean()) {
throw new IllegalStateException("Failed " + name + " for " + numAttempts + " attempts.");
}
}
示例6: waitUntil
import java.util.function.BooleanSupplier; //導入依賴的package包/類
protected boolean waitUntil(final BooleanSupplier supplier, final long timeout) {
final long start = System.currentTimeMillis();
while (true) {
if (supplier.getAsBoolean()) {
return true;
}
try {
Thread.sleep(10);
} catch (final InterruptedException ignore) {
}
final long now = System.currentTimeMillis();
if (now - start > timeout) {
return false;
}
}
}
示例7: runTimerOnEDT
import java.util.function.BooleanSupplier; //導入依賴的package包/類
/**
* Allow to run method at specified interval on EDT
* <p>
* Inside boolean supplier, return false to stop timer
*
* @param interval
* @param run
*/
public static void runTimerOnEDT(int interval, BooleanSupplier run) {
ActionListener action = (e) -> {
if (SwingUtilities.isEventDispatchThread() == false) {
throw new IllegalStateException("Do not run this method on Event Dispatch Thread");
}
// perform action and get return value
boolean continueTimer = run.getAsBoolean();
// if return false, stop timer
if (continueTimer == false) {
((Timer) e.getSource()).stop();
}
};
// launch timer
Timer timer = new Timer(interval, action);
timer.start();
}
示例8: getPeriodicPredicate
import java.util.function.BooleanSupplier; //導入依賴的package包/類
private static BooleanSupplier getPeriodicPredicate(long periodInMillis) {
return new BooleanSupplier() {
private long lastRun = INIT_TIME;
@Override
public boolean getAsBoolean() {
long now = System.currentTimeMillis();
boolean result = now - lastRun >= periodInMillis;
if (result) {
lastRun = now;
}
return result;
}
};
}
示例9: isGeldigOp
import java.util.function.BooleanSupplier; //導入依賴的package包/類
/**
* Geeft aan of deze Autorisatiebundel geldig is op de opgegeven datum. Checkt dat toegangleveringautorisatie geldig en niet geblokkeerd is. Checkt dat
* leveringautorisatie geldig en niet geblokkeerd is. Checkt dat dienstbundel hij niet geblokkeerd is (check op geldigheid niet nodig) Checkt dat dienst
* geldig en niet geblokkeerd is. Checkt dat partijrol geldig is. Checkt dat partij geldig is.
* @param datum de datum
* @param tla de ToegangLeveringsAutorisatie
* @param dienst @return true als deze geldig is op de gegeven datum, anders false
*/
@Bedrijfsregel(Regel.R1261)
@Bedrijfsregel(Regel.R1265)
@Bedrijfsregel(Regel.R2056)
@Bedrijfsregel(Regel.R1263)
@Bedrijfsregel(Regel.R1264)
@Bedrijfsregel(Regel.R1258)
@Bedrijfsregel(Regel.R2239)
@Bedrijfsregel(Regel.R2242)
@Bedrijfsregel(Regel.R2245)
private static boolean isGeldigOp(final Integer datum, final ToegangLeveringsAutorisatie tla, final Dienst dienst) {
final PartijRol geautoriseerde = tla.getGeautoriseerde();
final List<BooleanSupplier> predicateList = Lists.newArrayList(
() -> AutAutUtil.isGeldigEnNietGeblokkeerdInclusiefLeveringsautorisatie(tla, datum),
() -> AutAutUtil.isGeldigEnNietGeblokkeerd(dienst, datum),
() -> AutAutUtil.isGeldigEnNietGeblokkeerd(dienst.getDienstbundel(), datum),
() -> AutAutUtil.isGeldigOp(datum, geautoriseerde.getDatumIngang(), geautoriseerde.getDatumEinde()),
() -> AutAutUtil.isGeldigOp(datum, geautoriseerde.getPartij().getDatumIngang(), geautoriseerde.getPartij().getDatumEinde())
);
return predicateList.stream().allMatch(BooleanSupplier::getAsBoolean);
}
示例10: getDag
import java.util.function.BooleanSupplier; //導入依賴的package包/類
private static Datumdeel getDag(final BRPExpressietaalParser.DayContext dagCtx, final Datumdeel jaar,
final Datumdeel maand) {
final Datumdeel datumdeel;
if (DatumLiteral.ONBEKEND_DATUMDEEL_STRING.equals(dagCtx.getText())) {
datumdeel = Datumdeel.ONBEKEND_DATUMDEEL;
} else {
final int dagWaarde = Integer.parseInt(dagCtx.getText());
if (dagWaarde != 0) {
final BooleanSupplier geldigBinnenRange = () ->
ChronoField.DAY_OF_MONTH.range().isValidIntValue(dagWaarde);
final BooleanSupplier jaarEnMaandBekend = () ->
jaar != Datumdeel.ONBEKEND_DATUMDEEL && jaar.getWaarde() != 0
&& maand != Datumdeel.ONBEKEND_DATUMDEEL && maand.getWaarde() != 0;
final BooleanSupplier geldigBinnenMaandRange = () ->
DatumLiteral.dagenInMaand(jaar.getWaarde(), maand.getWaarde()) >= dagWaarde;
if (!geldigBinnenRange.getAsBoolean() || jaarEnMaandBekend.getAsBoolean() && !geldigBinnenMaandRange.getAsBoolean()) {
throw new ExpressieParseException("Dag incorrect: " + dagWaarde);
}
}
datumdeel = Datumdeel.valueOf(dagWaarde);
}
return datumdeel;
}
示例11: gcAwait
import java.util.function.BooleanSupplier; //導入依賴的package包/類
static void gcAwait(BooleanSupplier s) {
for (int i = 0; i < 10; i++) {
if (s.getAsBoolean())
return;
forceFullGc();
}
throw new AssertionError("failed to satisfy condition");
}
示例12: spinWaitUntil
import java.util.function.BooleanSupplier; //導入依賴的package包/類
static void spinWaitUntil(BooleanSupplier predicate, long timeoutMillis) {
long startTime = -1L;
while (!predicate.getAsBoolean()) {
if (startTime == -1L)
startTime = System.nanoTime();
else if (millisElapsedSince(startTime) > timeoutMillis)
throw new AssertionError(
String.format("timed out after %s ms", timeoutMillis));
Thread.yield();
}
}
示例13: parse
import java.util.function.BooleanSupplier; //導入依賴的package包/類
@Override
public BooleanSupplier parse(JsonContext context, JsonObject json) {
if (json.has("value") && CustomConfiguration.configValues.containsKey(json.get("value").getAsString())) {
return () -> CustomConfiguration.configValues.get(json.get("value").getAsString());
}
return () -> false;
}
示例14: HysteresisPollingTrigger
import java.util.function.BooleanSupplier; //導入依賴的package包/類
public HysteresisPollingTrigger(BooleanSupplier risingCheck, BooleanSupplier fallingCheck,
Runnable risingAction, Runnable fallingAction,
State initialState,
Duration interval) {
this.risingCheck = risingCheck;
this.fallingCheck = fallingCheck;
this.risingAction = risingAction;
this.fallingAction = fallingAction;
this.interval = interval;
this.state = initialState;
}
示例15: waitForDocs
import java.util.function.BooleanSupplier; //導入依賴的package包/類
/**
* Waits until at least a give number of document is visible for searchers
*
* @param numDocs number of documents to wait for
* @param maxWaitTime if not progress have been made during this time, fail the test
* @param maxWaitTimeUnit the unit in which maxWaitTime is specified
* @param indexer a {@link org.elasticsearch.test.BackgroundIndexer}. If supplied it will be first checked for documents indexed.
* This saves on unneeded searches.
* @return the actual number of docs seen.
*/
public long waitForDocs(final long numDocs, int maxWaitTime, TimeUnit maxWaitTimeUnit, @Nullable final BackgroundIndexer indexer)
throws InterruptedException {
final AtomicLong lastKnownCount = new AtomicLong(-1);
long lastStartCount = -1;
BooleanSupplier testDocs = () -> {
if (indexer != null) {
lastKnownCount.set(indexer.totalIndexedDocs());
}
if (lastKnownCount.get() >= numDocs) {
try {
long count = client().prepareSearch().setSize(0).setQuery(matchAllQuery()).execute().actionGet().getHits().getTotalHits();
if (count == lastKnownCount.get()) {
// no progress - try to refresh for the next time
client().admin().indices().prepareRefresh().get();
}
lastKnownCount.set(count);
} catch (Exception e) { // count now acts like search and barfs if all shards failed...
logger.debug("failed to executed count", e);
return false;
}
logger.debug("[{}] docs visible for search. waiting for [{}]", lastKnownCount.get(), numDocs);
} else {
logger.debug("[{}] docs indexed. waiting for [{}]", lastKnownCount.get(), numDocs);
}
return lastKnownCount.get() >= numDocs;
};
while (!awaitBusy(testDocs, maxWaitTime, maxWaitTimeUnit)) {
if (lastStartCount == lastKnownCount.get()) {
// we didn't make any progress
fail("failed to reach " + numDocs + "docs");
}
lastStartCount = lastKnownCount.get();
}
return lastKnownCount.get();
}