Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright 2016-17, OpenCensus Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.opencensus.trace;
import com.google.auto.value.AutoValue;
import io.opencensus.common.Function;
import io.opencensus.internal.Utils;
import javax.annotation.concurrent.Immutable;
/**
* A class that represents all the possible values for an attribute. An attribute can have 3 types
* of values: {@code String}, {@code Boolean} or {@code Long}.
*
* @since 0.5
*/
@Immutable
public abstract class AttributeValue {
/**
* Returns an {@code AttributeValue} with a string value.
*
* @param stringValue The new value.
* @return an {@code AttributeValue} with a string value.
* @throws NullPointerException if {@code stringValue} is {@code null}.
* @since 0.5
*/
public static AttributeValue stringAttributeValue(String stringValue) {
return AttributeValueString.create(stringValue);
}
/**
* Returns an {@code AttributeValue} with a boolean value.
*
* @param booleanValue The new value.
* @return an {@code AttributeValue} with a boolean value.
* @since 0.5
*/
public static AttributeValue booleanAttributeValue(boolean booleanValue) {
return AttributeValueBoolean.create(booleanValue);
}
/**
* Returns an {@code AttributeValue} with a long value.
*
* @param longValue The new value.
* @return an {@code AttributeValue} with a long value.
* @since 0.5
*/
public static AttributeValue longAttributeValue(long longValue) {
return AttributeValueLong.create(longValue);
}
/**
* Returns an {@code AttributeValue} with a double value.
*
* @param doubleValue The new value.
* @return an {@code AttributeValue} with a double value.
* @since 0.17
*/
public static AttributeValue doubleAttributeValue(double doubleValue) {
return AttributeValueDouble.create(doubleValue);
}
AttributeValue() {}
/**
* Applies a function to the underlying value. The function that is called depends on the value's
* type, which can be {@code String}, {@code Long}, or {@code Boolean}.
*
* @param stringFunction the function that should be applied if the value has type {@code String}.
* @param longFunction the function that should be applied if the value has type {@code Long}.
* @param booleanFunction the function that should be applied if the value has type {@code
* Boolean}.
* @param defaultFunction the function that should be applied if the value has a type that was
* added after this {@code match} method was added to the API. See {@link
* io.opencensus.common.Functions} for some common functions for handling unknown types.
* @return the result of the function applied to the underlying value.
* @since 0.5
* @deprecated in favor of {@link #match(Function, Function, Function, Function, Function)}.
*/
@Deprecated
public abstract T match(
Function super String, T> stringFunction,
Function super Boolean, T> booleanFunction,
Function super Long, T> longFunction,
Function