Example usage for com.google.common.collect Iterables getOnlyElement

List of usage examples for com.google.common.collect Iterables getOnlyElement

Introduction

In this page you can find the example usage for com.google.common.collect Iterables getOnlyElement.

Prototype

public static <T> T getOnlyElement(Iterable<T> iterable) 

Source Link

Document

Returns the single element contained in iterable .

Usage

From source file:com.opengamma.financial.analytics.model.credit.ISDACreditSpreadCurveShiftFunction.java

@Override
public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs,
        final ComputationTarget target, final Set<ValueRequirement> desiredValues)
        throws AsynchronousExecution {
    final ValueRequirement desiredValue = Iterables.getOnlyElement(desiredValues);
    final ValueSpecification input = Iterables.getOnlyElement(inputs.getAllValues()).getSpecification();
    final Object creditSpreadCurveObject = inputs.getValue(ValueRequirementNames.CREDIT_SPREAD_CURVE);
    if (creditSpreadCurveObject == null) {
        throw new OpenGammaRuntimeException("Could not get credit spread curve");
    }/* ww w.j ava 2s .  c  o m*/
    @SuppressWarnings("unchecked")
    final NodalObjectsCurve<Tenor, Double> creditSpreadCurve = (NodalObjectsCurve<Tenor, Double>) creditSpreadCurveObject;
    final String shiftProperty = desiredValue.getConstraint(PROPERTY_SPREAD_CURVE_SHIFT);
    final String shiftTypeProperty = desiredValue.getConstraint(PROPERTY_SPREAD_CURVE_SHIFT_TYPE);
    final double shift = Double.parseDouble(shiftProperty);
    final Tenor[] xs = creditSpreadCurve.getXData();
    final Double[] ys = creditSpreadCurve.getYData();
    final Double[] shiftedYs = new Double[ys.length];
    switch (shiftTypeProperty) {
    case ADDITIVE_SPREAD_CURVE_SHIFT:
        for (int i = 0; i < ys.length; i++) {
            shiftedYs[i] = ys[i] + shift;
        }
        break;
    case MULTIPLICATIVE_SPREAD_CURVE_SHIFT:
        for (int i = 0; i < ys.length; i++) {
            shiftedYs[i] = ys[i] * (1 + shift / 100.);
        }
        break;
    default:
        throw new OpenGammaRuntimeException("Spread curve shift type not recognised" + shiftTypeProperty);
    }
    final String name = PREFIX + creditSpreadCurve.getName();
    final NodalObjectsCurve<Tenor, Double> shiftedCurve = NodalObjectsCurve.from(xs, shiftedYs, name);
    final ValueProperties properties = createValueProperties(input)
            .with(PROPERTY_SPREAD_CURVE_SHIFT, shiftProperty)
            .with(PROPERTY_SPREAD_CURVE_SHIFT_TYPE, shiftTypeProperty).get();
    return Collections.singleton(new ComputedValue(
            new ValueSpecification(input.getValueName(), input.getTargetSpecification(), properties),
            shiftedCurve));
}

From source file:org.apache.beam.runners.direct.WindowEvaluatorFactory.java

private <InputT> TransformEvaluator<InputT> createTransformEvaluator(
        AppliedPTransform<PCollection<InputT>, PCollection<InputT>, Window.Assign<InputT>> transform) {
    WindowFn<? super InputT, ?> fn = transform.getTransform().getWindowFn();
    UncommittedBundle<InputT> outputBundle = evaluationContext
            .createBundle((PCollection<InputT>) Iterables.getOnlyElement(transform.getOutputs().values()));
    if (fn == null) {
        return PassthroughTransformEvaluator.create(transform, outputBundle);
    }//from w  w  w  .j  a  v a2 s. c  o m
    return new WindowIntoEvaluator<>(transform, fn, outputBundle);
}

From source file:com.facebook.presto.connector.dual.DualSplitManager.java

@Override
public Iterable<Split> getPartitionSplits(TableHandle table, List<Partition> partitions) {
    checkNotNull(partitions, "partitions is null");
    if (partitions.isEmpty()) {
        return ImmutableList.of();
    }/*from   w ww.ja v  a  2  s .c  o  m*/

    Partition partition = Iterables.getOnlyElement(partitions);
    checkArgument(partition instanceof DualPartition, "Partition must be a dual partition");

    Split split = new DualSplit(nodeManager.getCurrentNode().getHostAndPort());

    return ImmutableList.of(split);
}

From source file:com.metamx.druid.merger.common.task.KillTask.java

@Override
public TaskStatus run(TaskToolbox toolbox) throws Exception {
    // Confirm we have a lock (will throw if there isn't exactly one element)
    final TaskLock myLock = Iterables
            .getOnlyElement(toolbox.getTaskActionClient().submit(new LockListAction()));

    if (!myLock.getDataSource().equals(getDataSource())) {
        throw new ISE("WTF?! Lock dataSource[%s] != task dataSource[%s]", myLock.getDataSource(),
                getDataSource());/*from  www.  ja va 2 s. c  o m*/
    }

    if (!myLock.getInterval().equals(getImplicitLockInterval().get())) {
        throw new ISE("WTF?! Lock interval[%s] != task interval[%s]", myLock.getInterval(),
                getImplicitLockInterval().get());
    }

    // List unused segments
    final List<DataSegment> unusedSegments = toolbox.getTaskActionClient()
            .submit(new SegmentListUnusedAction(myLock.getDataSource(), myLock.getInterval()));

    // Verify none of these segments have versions > lock version
    for (final DataSegment unusedSegment : unusedSegments) {
        if (unusedSegment.getVersion().compareTo(myLock.getVersion()) > 0) {
            throw new ISE("WTF?! Unused segment[%s] has version[%s] > task version[%s]",
                    unusedSegment.getIdentifier(), unusedSegment.getVersion(), myLock.getVersion());
        }

        log.info("OK to kill segment: %s", unusedSegment.getIdentifier());
    }

    // Kill segments
    for (DataSegment segment : unusedSegments) {
        toolbox.getDataSegmentKiller().kill(segment);
    }

    // Remove metadata for these segments
    toolbox.getTaskActionClient().submit(new SegmentNukeAction(ImmutableSet.copyOf(unusedSegments)));

    return TaskStatus.success(getId());
}

From source file:com.opengamma.financial.analytics.model.equity.varianceswap.EquityVarianceSwapPureImpliedVolPVFunction.java

@Override
public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs,
        final ComputationTarget target, final Set<ValueRequirement> desiredValues)
        throws AsynchronousExecution {
    final Clock snapshotClock = executionContext.getValuationClock();
    final ZonedDateTime now = ZonedDateTime.now(snapshotClock).minusYears(3); //TODO remove me - just for testing
    final ValueRequirement desiredValue = Iterables.getOnlyElement(desiredValues);
    final EquityVarianceSwapSecurity security = (EquityVarianceSwapSecurity) target.getSecurity();
    final EquityVarianceSwapDefinition definition = security.accept(getConverter());
    final Object spotObject = inputs.getValue(MarketDataRequirementNames.MARKET_VALUE);
    if (spotObject == null) {
        throw new OpenGammaRuntimeException("Spot value was null");
    }//  w  w w .j  a  v  a2  s  .c  o  m
    final Object yieldCurveObject = inputs.getValue(ValueRequirementNames.YIELD_CURVE);
    if (yieldCurveObject == null) {
        throw new OpenGammaRuntimeException("Yield curve was null");
    }
    final Object dividendsObject = inputs.getValue(ValueRequirementNames.AFFINE_DIVIDENDS);
    if (dividendsObject == null) {
        throw new OpenGammaRuntimeException("Dividends were null");
    }
    final Object forwardCurveObject = inputs.getValue(ValueRequirementNames.FORWARD_CURVE);
    if (forwardCurveObject == null) {
        throw new OpenGammaRuntimeException("Forward curve was null");
    }
    final Object volatilitiesObject = inputs.getValue(ValueRequirementNames.STANDARD_VOLATILITY_SURFACE_DATA);
    if (volatilitiesObject == null) {
        throw new OpenGammaRuntimeException("Volatility data were null");
    }
    final Object tsObject = inputs.getValue(ValueRequirementNames.HISTORICAL_TIME_SERIES);
    final double spot = (Double) spotObject;
    final YieldAndDiscountCurve yieldCurve = (YieldAndDiscountCurve) yieldCurveObject;
    final AffineDividends dividends = (AffineDividends) dividendsObject;
    final SmileSurfaceDataBundle volatilities = getData(inputs);
    final DoubleTimeSeries<LocalDate> underlyingTS = ((HistoricalTimeSeries) tsObject).getTimeSeries();
    final EquityVarianceSwap swap = definition.toDerivative(now, underlyingTS);
    final EquityVarianceSwapStaticReplicationPricer pricer = EquityVarianceSwapStaticReplicationPricer.builder()
            .create(); //TODO don't just use defaults
    final double pv = pricer.priceFromImpliedVols(swap, spot, yieldCurve, dividends, volatilities);
    final ValueProperties properties = desiredValue.getConstraints().copy()
            .withoutAny(ValuePropertyNames.FUNCTION).with(ValuePropertyNames.FUNCTION, getUniqueId()).get();
    final ValueSpecification spec = new ValueSpecification(getValueRequirementName(), target.toSpecification(),
            properties);
    return Collections.singleton(new ComputedValue(spec, pv));
}

From source file:io.crate.executor.transport.task.elasticsearch.ESClusterUpdateSettingsTask.java

static Settings buildSettingsFrom(Map<String, List<Expression>> settingsMap, Row parameters) {
    Settings.Builder settings = Settings.builder();
    for (Map.Entry<String, List<Expression>> entry : settingsMap.entrySet()) {
        String settingsName = entry.getKey();
        SettingsApplier settingsApplier = CrateSettings.getSettingsApplier(settingsName);
        settingsApplier.apply(settings, parameters, Iterables.getOnlyElement(entry.getValue()));
    }/*  ww  w  .j a  va  2s . com*/
    return settings.build();
}

From source file:com.opengamma.financial.analytics.model.forex.forward.FXForwardPointsMethodCurrencyExposureFunction.java

@Override
protected Set<ComputedValue> getResult(final Forex fxForward, final YieldCurveBundle data,
        final DoublesCurve forwardPoints, final ComputationTarget target,
        final Set<ValueRequirement> desiredValues, final FunctionInputs inputs,
        final FunctionExecutionContext executionContext,
        final FXForwardCurveDefinition fxForwardCurveDefinition) {
    final MultipleCurrencyAmount mca = CALCULATOR.currencyExposure(fxForward, data, forwardPoints);
    final ValueProperties properties = getResultProperties(Iterables.getOnlyElement(desiredValues), target)
            .get();/*from   www.  j  a v a  2 s. co m*/
    final ValueSpecification spec = new ValueSpecification(ValueRequirementNames.FX_CURRENCY_EXPOSURE,
            target.toSpecification(), properties);
    return Collections.singleton(new ComputedValue(spec, mca));
}

From source file:com.android.tools.idea.navigator.nodes.AndroidJniFolderNode.java

@NotNull
@Override// w w w .j  av  a2  s  .co m
public Collection<? extends AbstractTreeNode> getChildren() {
    assert myProject != null;
    Collection<AbstractTreeNode> nativeSourceNodes = getNativeSourceNodes(myProject, getModel(), getSettings());
    if (nativeSourceNodes.size() == 1) {
        AbstractTreeNode sourceNode = Iterables.getOnlyElement(nativeSourceNodes);
        if (sourceNode instanceof NativeAndroidSourceDirectoryNode) {
            return ((NativeAndroidSourceDirectoryNode) sourceNode).getChildren();
        }
    }
    return nativeSourceNodes;
}

From source file:com.opengamma.financial.analytics.model.black.BlackDiscountingValueDeltaIRFutureOptionFunction.java

@Override
public CompiledFunctionDefinition compile(final FunctionCompilationContext context, final Instant atInstant) {
    return new BlackDiscountingCompiledFunction(getTargetToDefinitionConverter(context),
            getDefinitionToDerivativeConverter(context), true) {

        @Override//from  w w w  . j  av a  2 s .c o  m
        protected Set<ComputedValue> getValues(final FunctionExecutionContext executionContext,
                final FunctionInputs inputs, final ComputationTarget target,
                final Set<ValueRequirement> desiredValues, final InstrumentDerivative derivative,
                final FXMatrix fxMatrix) {
            final ValueRequirement desiredValue = Iterables.getOnlyElement(desiredValues);
            final ValueProperties constraints = desiredValue.getConstraints();
            final double positionGamma = (Double) inputs.getValue(POSITION_GAMMA);
            final double futurePrice = (Double) inputs.getValue(FORWARD);
            final double valueGamma = futurePrice * futurePrice * positionGamma / 2;
            final ValueSpecification valueSpecification = new ValueSpecification(VALUE_GAMMA,
                    target.toSpecification(), constraints.copy().get());
            final ComputedValue result = new ComputedValue(valueSpecification, valueGamma);
            return Sets.newHashSet(result);
        }

        @Override
        public Set<ValueRequirement> getRequirements(final FunctionCompilationContext compilationContext,
                final ComputationTarget target, final ValueRequirement desiredValue) {
            if (super.getRequirements(compilationContext, target, desiredValue) == null) {
                return null;
            }
            final ValueProperties properties = desiredValue.getConstraints().copy().get();
            final Set<ValueRequirement> requirements = new HashSet<>();
            requirements.add(new ValueRequirement(POSITION_GAMMA, target.toSpecification(), properties));
            requirements.add(new ValueRequirement(FORWARD, target.toSpecification(), properties));
            return requirements;
        }

    };
}

From source file:com.opengamma.financial.analytics.model.black.BlackDiscountingValueGammaIRFutureOptionFunction.java

@Override
public CompiledFunctionDefinition compile(final FunctionCompilationContext context, final Instant atInstant) {
    return new BlackDiscountingCompiledFunction(getTargetToDefinitionConverter(context),
            getDefinitionToDerivativeConverter(context), true) {

        @Override/*ww w  . ja v a  2s .c  om*/
        protected Set<ComputedValue> getValues(final FunctionExecutionContext executionContext,
                final FunctionInputs inputs, final ComputationTarget target,
                final Set<ValueRequirement> desiredValues, final InstrumentDerivative derivative,
                final FXMatrix fxMatrix) {
            final ValueRequirement desiredValue = Iterables.getOnlyElement(desiredValues);
            final ValueProperties constraints = desiredValue.getConstraints();
            final double positionDelta = (Double) inputs.getValue(POSITION_DELTA);
            final double futurePrice = (Double) inputs.getValue(FORWARD);
            final double valueGamma = futurePrice * positionDelta;
            final ValueSpecification valueSpecification = new ValueSpecification(VALUE_DELTA,
                    target.toSpecification(), constraints.copy().get());
            final ComputedValue result = new ComputedValue(valueSpecification, valueGamma);
            return Sets.newHashSet(result);
        }

        @Override
        public Set<ValueRequirement> getRequirements(final FunctionCompilationContext compilationContext,
                final ComputationTarget target, final ValueRequirement desiredValue) {
            if (super.getRequirements(compilationContext, target, desiredValue) == null) {
                return null;
            }
            final ValueProperties properties = desiredValue.getConstraints().copy().get();
            final Set<ValueRequirement> requirements = new HashSet<>();
            requirements.add(new ValueRequirement(POSITION_DELTA, target.toSpecification(), properties));
            requirements.add(new ValueRequirement(FORWARD, target.toSpecification(), properties));
            return requirements;
        }

    };
}