LightJason - AgentSpeak(L++)
CConstant.java
Go to the documentation of this file.
1 /*
2  * @cond LICENSE
3  * ######################################################################################
4  * # LGPL License #
5  * # #
6  * # This file is part of the LightJason AgentSpeak(L++) #
7  * # Copyright (c) 2015-19, LightJason (info@lightjason.org) #
8  * # This program is free software: you can redistribute it and/or modify #
9  * # it under the terms of the GNU Lesser General Public License as #
10  * # published by the Free Software Foundation, either version 3 of the #
11  * # License, or (at your option) any later version. #
12  * # #
13  * # This program is distributed in the hope that it will be useful, #
14  * # but WITHOUT ANY WARRANTY; without even the implied warranty of #
15  * # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
16  * # GNU Lesser General Public License for more details. #
17  * # #
18  * # You should have received a copy of the GNU Lesser General Public License #
19  * # along with this program. If not, see http://www.gnu.org/licenses/ #
20  * ######################################################################################
21  * @endcond
22  */
23 
24 package org.lightjason.agentspeak.language.variable;
25 
29 
30 import javax.annotation.Nonnull;
31 import javax.annotation.Nullable;
32 import java.util.Objects;
33 
34 
40 public final class CConstant<T> extends CVariable<T>
41 {
45  private static final long serialVersionUID = -8207552612082585231L;
46 
53  public CConstant( @Nonnull final String p_functor, @Nullable final T p_value )
54  {
55  super( p_functor, p_value );
56  }
57 
64  public CConstant( @Nonnull final IPath p_functor, @Nullable final T p_value )
65  {
66  super( p_functor, p_value );
67  }
68 
69  @Nonnull
70  @Override
71  public final IVariable<T> set( final T p_value )
72  {
73  throw new CIllegalStateException( CCommon.languagestring( this, "set", m_functor ) );
74  }
75 
76  @Nonnull
77  @Override
78  public final IVariable<T> shallowcopy( final IPath... p_prefix )
79  {
80  return ( Objects.isNull( p_prefix ) ) || ( p_prefix.length == 0 )
81  ? new CConstant<>( m_functor, m_value )
82  : new CConstant<>( p_prefix[0].append( m_functor ), m_value );
83  }
84 
85 
86  @Nonnull
87  @Override
89  {
90  return new CConstant<>( m_functor.suffix(), m_value );
91  }
92 
93 }
static< T > String languagestring(final T p_source, final String p_label, final Object... p_parameter)
returns the language depend string on any object
final IPath m_functor
variable / functor name
Definition: CVariable.java:55
final IVariable< T > shallowcopysuffix()
clones the object (shallow-copy) without full-qualified path, only suffix is used ...
Definition: CConstant.java:88
CConstant( @Nonnull final String p_functor, @Nullable final T p_value)
ctor
Definition: CConstant.java:53
String suffix()
returns the last part of the path
final IVariable< T > shallowcopy(final IPath... p_prefix)
Definition: CConstant.java:78
CConstant( @Nonnull final IPath p_functor, @Nullable final T p_value)
ctor
Definition: CConstant.java:64