/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.function; import java.util.Map; import java.util.Set; import org.threeten.bp.Instant; import com.opengamma.engine.ComputationTarget; import com.opengamma.engine.target.ComputationTargetType; import com.opengamma.engine.value.ComputedValue; import com.opengamma.engine.value.ValueRequirement; import com.opengamma.engine.value.ValueSpecification; /** * A special case of function with special meaning to the engine. */ public abstract class IntrinsicFunction implements FunctionDefinition, CompiledFunctionDefinition, FunctionInvoker { private final String _uid; protected IntrinsicFunction(String uid) { _uid = uid; } // FunctionDefinition @Override public void init(final FunctionCompilationContext context) { // No-op } @Override public CompiledFunctionDefinition compile(final FunctionCompilationContext context, final Instant atInstant) { return this; } @Override public String getUniqueId() { return _uid; } @Override public String getShortName() { return _uid; } // CompiledFunctionDefinition @Override public FunctionDefinition getFunctionDefinition() { return this; } /** * Special case, always returns null. * * @return null */ @Override public ComputationTargetType getTargetType() { return null; } @Override public boolean canApplyTo(final FunctionCompilationContext context, final ComputationTarget target) { throw new UnsupportedOperationException(); } @Override public Set<ValueSpecification> getResults(final FunctionCompilationContext context, final ComputationTarget target) { throw new UnsupportedOperationException(); } @Override public Set<ValueRequirement> getRequirements(final FunctionCompilationContext context, final ComputationTarget target, final ValueRequirement desiredValue) { throw new UnsupportedOperationException(); } @Override public boolean canHandleMissingRequirements() { throw new UnsupportedOperationException(); } @Override public Set<ValueSpecification> getResults(final FunctionCompilationContext context, final ComputationTarget target, final Map<ValueSpecification, ValueRequirement> inputs) { throw new UnsupportedOperationException(); } @Override public Set<ValueRequirement> getAdditionalRequirements(final FunctionCompilationContext context, final ComputationTarget target, final Set<ValueSpecification> inputs, final Set<ValueSpecification> outputs) { throw new UnsupportedOperationException(); } @Override public Instant getEarliestInvocationTime() { return null; } @Override public Instant getLatestInvocationTime() { return null; } @Override public FunctionInvoker getFunctionInvoker() { return this; } @Override public FunctionParameters getDefaultParameters() { return EmptyFunctionParameters.INSTANCE; } // FunctionInvoker @Override public boolean canHandleMissingInputs() { return true; } @Override public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) { throw new UnsupportedOperationException(); } }