/*
 * Java-Gnome Bindings Library
 *
 * Copyright 1998-2004 the Java-Gnome Team, all rights reserved.
 *
 * The Java-Gnome bindings library is free software distributed under
 * the terms of the GNU Library General Public License version 2.
 */

package org.gnu.gdk;
import org.gnu.glib.Flags;
public class DragAction extends Flags 
{
    /****************************************
     * BEGINNING OF GENERATED CODE
     ****************************************/
    static final private int _DEFAULT = 1 << 0;
    static final public org.gnu.gdk.DragAction DEFAULT = new org.gnu.gdk.DragAction (_DEFAULT);
    static final private int _COPY = 1 << 1;
    static final public org.gnu.gdk.DragAction COPY = new org.gnu.gdk.DragAction (_COPY);
    static final private int _MOVE = 1 << 2;
    static final public org.gnu.gdk.DragAction MOVE = new org.gnu.gdk.DragAction (_MOVE);
    static final private int _LINK = 1 << 3;
    static final public org.gnu.gdk.DragAction LINK = new org.gnu.gdk.DragAction (_LINK);
    static final private int _PRIVATE = 1 << 4;
    static final public org.gnu.gdk.DragAction PRIVATE = new org.gnu.gdk.DragAction (_PRIVATE);
    static final private int _ASK = 1 << 5;
    static final public org.gnu.gdk.DragAction ASK = new org.gnu.gdk.DragAction (_ASK);
    static final private org.gnu.gdk.DragAction[] theInterned = new org.gnu.gdk.DragAction[] 
    {
        new org.gnu.gdk.DragAction (0), DEFAULT, COPY, new org.gnu.gdk.DragAction (3), MOVE, new 
        org.gnu.gdk.DragAction (5), new org.gnu.gdk.DragAction (6), new org.gnu.gdk.DragAction (7), 
        LINK, new org.gnu.gdk.DragAction (9), new org.gnu.gdk.DragAction (10), new 
        org.gnu.gdk.DragAction (11), new org.gnu.gdk.DragAction (12), new org.gnu.gdk.DragAction (
            13), new org.gnu.gdk.DragAction (14), new org.gnu.gdk.DragAction (15), PRIVATE, new 
        org.gnu.gdk.DragAction (17), new org.gnu.gdk.DragAction (18), new org.gnu.gdk.DragAction (
            19), new org.gnu.gdk.DragAction (20), new org.gnu.gdk.DragAction (21), new 
        org.gnu.gdk.DragAction (22), new org.gnu.gdk.DragAction (23), new org.gnu.gdk.DragAction (
            24), new org.gnu.gdk.DragAction (25), new org.gnu.gdk.DragAction (26), new 
        org.gnu.gdk.DragAction (27), new org.gnu.gdk.DragAction (28), new org.gnu.gdk.DragAction (
            29), new org.gnu.gdk.DragAction (30), new org.gnu.gdk.DragAction (31), ASK 
    }

;
    static private java.util.Hashtable theInternedExtras;
    static final private org.gnu.gdk.DragAction theSacrificialOne = new org.gnu.gdk.DragAction (0);
    static public org.gnu.gdk.DragAction intern (int value) 
    {
        if (value < theInterned.length) 
        {
            return theInterned[value];
        }
        theSacrificialOne.value_ = value;
        if (theInternedExtras == null) 
        {
            theInternedExtras = new java.util.Hashtable();
        }
        org.gnu.gdk.DragAction already = (org.gnu.gdk.DragAction) theInternedExtras.get (
            theSacrificialOne);
        if (already == null) 
        {
            already = new org.gnu.gdk.DragAction(value);
            theInternedExtras.put(already, already);
        }
        return already;
    }

    private DragAction (int value) 
    {
        value_ = value;
    }

    public org.gnu.gdk.DragAction or (org.gnu.gdk.DragAction other) 
    {
        return intern(value_ | other.value_);
    }

    public org.gnu.gdk.DragAction and (org.gnu.gdk.DragAction other) 
    {
        return intern(value_ & other.value_);
    }

    public org.gnu.gdk.DragAction xor (org.gnu.gdk.DragAction other) 
    {
        return intern(value_ ^ other.value_);
    }

    public boolean test (org.gnu.gdk.DragAction other) 
    {
        return (value_ & other.value_) == other.value_;
    }

    /****************************************
     * END OF GENERATED CODE
     ****************************************/
}

