001    /*
002     *  Licensed to the Apache Software Foundation (ASF) under one
003     *  or more contributor license agreements.  See the NOTICE file
004     *  distributed with this work for additional information
005     *  regarding copyright ownership.  The ASF licenses this file
006     *  to you under the Apache License, Version 2.0 (the
007     *  "License"); you may not use this file except in compliance
008     *  with the License.  You may obtain a copy of the License at
009     *  
010     *    http://www.apache.org/licenses/LICENSE-2.0
011     *  
012     *  Unless required by applicable law or agreed to in writing,
013     *  software distributed under the License is distributed on an
014     *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     *  KIND, either express or implied.  See the License for the
016     *  specific language governing permissions and limitations
017     *  under the License. 
018     *  
019     */
020    
021    package org.apache.directory.shared.ldap.codec.extended.operations.storedProcedure;
022    
023    
024    import org.apache.directory.shared.asn1.ber.grammar.IGrammar;
025    import org.apache.directory.shared.asn1.ber.grammar.IStates;
026    
027    
028    /**
029     * Constants for StoredProcedureGrammar
030     * 
031     * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
032     * @version $Rev$, $Date$, 
033     */
034    public class StoredProcedureStatesEnum implements IStates
035    {
036        //~ Static fields/initializers -----------------------------------------------------------------
037    
038        //=========================================================================
039        // StoredProcedure
040        //=========================================================================
041        /** starting state */
042        public static final int START_STATE = 0;
043    
044        /** StoredProcedure */
045        public static final int STORED_PROCEDURE_STATE = 1;
046    
047        // Language ---------------------------------------------------------------
048        /** Language */
049        public static final int LANGUAGE_STATE = 2;
050    
051        // Procedure --------------------------------------------------------------
052        /** Procedure */
053        public static final int PROCEDURE_STATE = 3;
054    
055        // Parameters -------------------------------------------------------------
056        /** Parameters */
057        public static final int PARAMETERS_STATE = 4;
058    
059        // Parameter --------------------------------------------------------------
060        /** Parameter */
061        public static final int PARAMETER_STATE = 5;
062    
063        // Parameter type ---------------------------------------------------------
064        /** Parameter type */
065        public static final int PARAMETER_TYPE_STATE = 6;
066    
067        // Parameters value -------------------------------------------------------
068        /** Parameter value */
069        public static final int PARAMETER_VALUE_STATE = 7;
070    
071        public static final int LAST_STORED_PROCEDURE_STATE = 8;
072    
073        //=========================================================================
074        // States debug strings 
075        //=========================================================================
076        /** A string representation of all the states */
077        private static String[] StoredProcedureString = new String[]
078            { 
079            "START_STATE", 
080            "STORED_PROCEDURE_STATE", 
081            "LANGUAGE_STATE", 
082            "PROCEDURE_STATE", 
083            "PARAMETERS_STATE", 
084            "PARAMETER_TYPE_STATE",
085            "PARAMETER_VALUE_STATE" 
086            };
087    
088        /** The instance */
089        private static StoredProcedureStatesEnum instance = new StoredProcedureStatesEnum();
090    
091    
092        //~ Constructors -------------------------------------------------------------------------------
093    
094        /**
095         * This is a private constructor. This class is a singleton
096         *
097         */
098        private StoredProcedureStatesEnum()
099        {
100        }
101    
102    
103        //~ Methods ------------------------------------------------------------------------------------
104    
105        /**
106         * Get an instance of this class
107         * @return An instance on this class
108         */
109        public static IStates getInstance()
110        {
111            return instance;
112        }
113    
114    
115        /**
116         * Get the grammar name
117         * @param grammar The grammar code
118         * @return The grammar name
119         */
120        public String getGrammarName( int grammar )
121        {
122            return "STORED_PROCEDURE_GRAMMAR";
123        }
124    
125    
126        /**
127         * Get the grammar name
128         * @param grammar The grammar class
129         * @return The grammar name
130         */
131        public String getGrammarName( IGrammar grammar )
132        {
133            if ( grammar instanceof StoredProcedureGrammar )
134            {
135                return "STORED_PROCEDURE_GRAMMAR";
136            }
137            else
138            {
139                return "UNKNOWN GRAMMAR";
140            }
141        }
142    
143    
144        /**
145         * Get the string representing the state
146         * 
147         * @param state The state number
148         * @return The String representing the state
149         */
150        public String getState( int state )
151        {
152            return ( ( state == GRAMMAR_END ) ? "STORED_PROCEDURE_END_STATE" : StoredProcedureString[state] );
153        }
154    }