Ice.Optional Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ice Show documentation
Show all versions of ice Show documentation
Ice is a comprehensive RPC framework that helps you build distributed applications with minimal effort using familiar object-oriented idioms
// **********************************************************************
//
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
package Ice;
/**
* Generic class for optional parameters.
**/
public class Optional
{
/**
* The value defaults to unset.
**/
public Optional()
{
_isSet = false;
}
/**
* Sets the value to the given argument.
*
* @param v The initial value.
**/
public Optional(T v)
{
_value = v;
_isSet = true;
}
/**
* Sets the value to a shallow copy of the given optional.
*
* @param opt The source value.
**/
public Optional(Optional opt)
{
_value = opt._value;
_isSet = opt._isSet;
}
/**
* Obtains the current value.
*
* @return The current value.
* @throws IllegalStateException If the value is not set.
**/
public T get()
{
if(!_isSet)
{
throw new IllegalStateException("no value is set");
}
return _value;
}
/**
* Sets the value to the given argument.
*
* @param v The new value.
**/
public void set(T v)
{
_value = v;
_isSet = true;
}
/**
* If the given argument is set, this optional is set to a shallow copy of the argument,
* otherwise this optional is unset.
*
* @param opt The source value.
**/
public void set(Optional opt)
{
_value = opt._value;
_isSet = opt._isSet;
}
/**
* Determines whether the value is set.
*
* @return True if the value is set, false otherwise.
**/
public boolean isSet()
{
return _isSet;
}
/**
* Unsets this value.
**/
public void clear()
{
_isSet = false;
_value = null;
}
/**
* Helper function for creating Optional instances.
*
* @param v The initial value of the Optional.
*
* @return A new Optional instance set to the given value.
**/
public static Optional O(T v)
{
return new Optional(v);
}
/**
* Helper function for creating BooleanOptional instances.
*
* @param v The initial value of the Optional.
*
* @return A new BooleanOptional instance set to the given value.
**/
public static BooleanOptional O(boolean v)
{
return new BooleanOptional(v);
}
/**
* Helper function for creating ByteOptional instances.
*
* @param v The initial value of the Optional.
*
* @return A new ByteOptional instance set to the given value.
**/
public static ByteOptional O(byte v)
{
return new ByteOptional(v);
}
/**
* Helper function for creating ShortOptional instances.
*
* @param v The initial value of the Optional.
*
* @return A new ShortOptional instance set to the given value.
**/
public static ShortOptional O(short v)
{
return new ShortOptional(v);
}
/**
* Helper function for creating IntOptional instances.
*
* @param v The initial value of the Optional.
*
* @return A new IntOptional instance set to the given value.
**/
public static IntOptional O(int v)
{
return new IntOptional(v);
}
/**
* Helper function for creating LongOptional instances.
*
* @param v The initial value of the Optional.
*
* @return A new LongOptional instance set to the given value.
**/
public static LongOptional O(long v)
{
return new LongOptional(v);
}
/**
* Helper function for creating FloatOptional instances.
*
* @param v The initial value of the Optional.
*
* @return A new FloatOptional instance set to the given value.
**/
public static FloatOptional O(float v)
{
return new FloatOptional(v);
}
/**
* Helper function for creating DoubleOptional instances.
*
* @param v The initial value of the Optional.
*
* @return A new DoubleOptional instance set to the given value.
**/
public static DoubleOptional O(double v)
{
return new DoubleOptional(v);
}
private T _value;
private boolean _isSet;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy