001/*
002 * ============================================================================
003 *  Copyright © 2002-2021 by Thomas Thrien.
004 *  All Rights Reserved.
005 * ============================================================================
006 *  Licensed to the public under the agreements of the GNU Lesser General Public
007 *  License, version 3.0 (the "License"). You may obtain a copy of the License at
008 *
009 *       http://www.gnu.org/licenses/lgpl.html
010 *
011 *  Unless required by applicable law or agreed to in writing, software
012 *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
013 *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
014 *  License for the specific language governing permissions and limitations
015 *  under the License.
016 */
017
018package org.tquadrat.foundation.config.ap.impl.specialprops;
019
020import static org.apiguardian.api.API.Status.STABLE;
021import static org.tquadrat.foundation.config.SpecialPropertyType.CONFIG_PROPERTY_SESSION;
022
023import java.util.Optional;
024
025import org.apiguardian.api.API;
026import org.tquadrat.foundation.annotation.ClassVersion;
027import org.tquadrat.foundation.config.SpecialPropertyType;
028import org.tquadrat.foundation.javacomposer.ClassName;
029import org.tquadrat.foundation.javacomposer.TypeName;
030
031/**
032 *  The implementation of
033 *  {@link SpecialPropertySpecBase}
034 *  for
035 *  {@link SpecialPropertyType#CONFIG_PROPERTY_SESSION}.
036 *
037 *  @version $Id: SessionKeyProperty.java 943 2021-12-21 01:34:32Z tquadrat $
038 *  @extauthor Thomas Thrien - thomas.thrien@tquadrat.org
039 *  @UMLGraph.link
040 *  @since 0.1.0
041 */
042@ClassVersion( sourceVersion = "$Id: SessionKeyProperty.java 943 2021-12-21 01:34:32Z tquadrat $" )
043@API( status = STABLE, since = "0.1.0" )
044public final class SessionKeyProperty extends SpecialPropertySpecBase
045{
046        /*--------------*\
047    ====** Constructors **=====================================================
048        \*--------------*/
049    /**
050     *  Creates a new instance of {@code SessionKeyProperty}.
051     */
052    public SessionKeyProperty()
053    {
054        super( CONFIG_PROPERTY_SESSION );
055    }   //  SessionKeyProperty()
056
057        /*---------*\
058    ====** Methods **==========================================================
059        \*---------*/
060    /**
061     *  {@inheritDoc}
062     */
063    @Override
064    public final Optional<TypeName> getCLIValueHandlerClass() { return Optional.empty(); }
065
066    /**
067     *  {@inheritDoc}
068     */
069    @Override
070    public final Optional<TypeName> getPrefsAccessorClass() { return Optional.empty(); }
071
072    /**
073     *  {@inheritDoc}
074     */
075    @Override
076    public final TypeName getPropertyType() { return ClassName.from( String.class ); }
077
078    /**
079     *  {@inheritDoc}
080     */
081    @Override
082    public final Optional<TypeName> getStringConverterClass() { return Optional.empty(); }
083}
084//  class SessionKeyProperty
085
086/*
087 *  End of File
088 */