001    /*******************************************************************************
002     * Copyright (C) 2009-2011 FuseSource Corp.
003     * Copyright (c) 2004, 2008 IBM Corporation and others.
004     * 
005     * All rights reserved. This program and the accompanying materials
006     * are made available under the terms of the Eclipse Public License v1.0
007     * which accompanies this distribution, and is available at
008     * http://www.eclipse.org/legal/epl-v10.html
009     *******************************************************************************/
010    package org.fusesource.hawtjni.runtime;
011    
012    /**
013     * 
014     * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
015     */
016    public enum ClassFlag {
017        /** 
018         * Indicate that the item should not be generated. For example, 
019         * custom natives are coded by hand. 
020         */
021        CLASS_SKIP,
022        
023        /**
024         * Indicate that the platform source is in C++
025         */
026        CPP,
027        
028        /**
029         * Indicate that this class will define a structure
030         */
031        STRUCT,
032        
033        /**
034         * Indicate that structure name is a typedef (It should 
035         * not be prefixed with 'struct' to reference it.)
036         */
037        TYPEDEF,
038    
039        /**
040         * Indicate that the struct should get zeroed out before
041         * setting any of it's fields.  Comes in handy when 
042         * you don't map all the struct fields to java fields but
043         * still want the fields that are not mapped initialized. 
044         */
045        ZERO_OUT,
046    }